PHP получить путь до файла где объявлен класс

Иногда бывают ситуации когда сложно определить в каком файле объявлен класс, но его исходный код изучить надо, для таких случаев существует класс \ReflectionClass() у которого есть метод getFileName().

Есть 2 варианта использования:

Вариант 1 На основе имени класса

// в конструктор вместо строки можно передавать объект
$a = new \ReflectionClass('ZN\Database\InternalDB');
var_dump($a->getFileName());
//Результат:  htdocs/develop/Internal/Database/DB/InternalDB.php

Вариант 2 На основе объекта

$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

Если есть вопросы, что-то в статье не понятно или нашли ошибку, напишите об этом в комментариях, все комментарии читаются и по возможности материал будет доработан.
Популярные статьи

Bitrix запись своих настроек в settings.php

Статья о том как разместить свои настройки не создавая велосипеды и костыли, а используя возможности системы.

Команда grep. Примеры использования

grep - удобная и быстрая команда, здесь приведены примеры как произвести рекурсивный поиск в каталоге, поиск среди запущенных процессов и другие.

Bitrix сбросить буфер вывода

Функция RestartBuffer() в Bitrix используется для сброса буфера вывода. Она позволяет прервать вывод страницы на определенном этапе выполнения скрипта и начать вывод заново. В статье рассмотрим основные сценарии использования данной функции, рассмотрим пример кода.

Bitrix выполнить произвольный sql запрос

В статье приведен пример как выполнить произвольный sql запрос используя стандартные средства Bitrix

Bitrix получить значения списочного поля

В статье приводится пример кода для получения всех вариантов значений пользовательского поля с типом "Список". Так же описано как можно получить конкретный вариант значения поля.

Bitrix получить путь до компонента

В статье приводится пример кода для получения директории в которой находится файл компонента.

Комментарии

Комментариев пока нет
Данный сайт использует файлы cookies. Продолжая просмотр сайта, вы соглашаетесь с использованием файлов cookies.
ОК