PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (1): [1]

> Найдено сообщений: 1
centurion Отправлено: 10 Февраля, 2012 - 11:44:24 • Тема: Подключение файла через метод класса • Форум: Объектно-ориентированное программирование

Ответов: 3
Просмотров: 2634
Оказывается, если инклюдить файл через метод класса, то содержимое подключается как бы в этот самый метод, и видит в своём окружении свойства и методы данного класса, но не видит глобальную среду (например, переменные, созданные в исходном файле (в который мы подключаем другой)).

Так же история, если мы подключим файл изнутри функции (процедурно).

Собственно проблема. Хотела сделать метод класса, который бы "безопасно подключал файл", т.е. делал бы проверку на его существование (file_exists()), например, и в случае ошибки показывал сообщение. Логично было создать для этого метод и прогонять подключение каждого файла через него.

Однако вышеописанная особенность свела хорошее начинание на нет. Теперь в подключенном файле к свойствам и методам класса я могу обратиться исключительно через this->, а к глобальным переменным даже пока и не знаю как (кстати, как?). В мануале в комментариях к статье Variable scope много людей с той же проблемой (только почти все они работали не через класс, а просто через функцию). Все советы сводятся, в основном, к тому, чтобы "смириться и все обращения к глобальным переменным в подключаемых файлах делать через GLOBALS[] ". Вот в этом комментарии описана практически в точности моя проблема (только опять же сделано процедурно): http://ru.php.net/manual/en/lang....scope.php#88689

Однако это создаёт много геморроя. Необходимо переписать все подключаемые файлы, представляя, что всё, что там лежит исполняется изнутри метода класса. Опять же файл уже нельзя будет успешно запустить сам по себе. Да и просто неуниверсально это.

Однако и от идеи с подключением через метод отказываться не хочется, ибо подход в общем-то правильный.

Вопрос: что делать в этой ситуации? Можно ли как-нибудь хитро подключить файл через метод класса и одновременно заставить вписать его в глобальную область видимости?

Если да, то как?

Если нет, как правильнее поступить в данной ситуации, чтобы всё вместе корректно работало?

Страниц (1): [1]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB