Иногда бывают ситуации когда сложно определить в каком файле объявлен класс, но его исходный код изучить надо, для таких случаев существует класс \ReflectionClass() у которого есть метод getFileName().
Есть 2 варианта использования:
// в конструктор вместо строки можно передавать объект
$a = new \ReflectionClass('ZN\Database\InternalDB');
var_dump($a->getFileName());
//Результат: htdocs/develop/Internal/Database/DB/InternalDB.php
$obj = new MySuperClass();
$a = new \ReflectionClass($obj);
var_dump($a->getFileName());
// Результат: /var/www/project/MySuperClass.php
В случаи если класс не найден, то будет вызвано исключение ReflectionException.
[ReflectionException]
Class MySuperClass does not exist (-1)
Рубрики:
PHP
grep - удобная и быстрая команда, здесь приведены примеры как произвести рекурсивный поиск в каталоге, поиск среди запущенных процессов и другие.
В статье приводится пример кода для получения директории в которой находится файл компонента.
В статье приводится пример кода подключения bitrix без подключения шаблона сайта. Так же описано когда это может пригодится.
В статье приводится пример регистрации собственного события в bitrix и добавления на него обработчика.
Так как bitrix состоит из большого количества различных модулей, знать как их правильно подключать просто необходимо.
В статье приведен пример как выполнить произвольный sql запрос используя стандартные средства Bitrix