CyberForum.ru - Форум программистов и сисадминов
Вернуться   Форум программистов и сисадминов CyberForum.ru > Форум web-программистов > Форум PHP > Форум PHP и ООП

Ответ Создать новую тему
 
Старый 04.02.2012, 12:56   #1
Lynch1
Новичок
 
Аватар для Lynch1
 
Регистрация: 23.04.2010
Адрес: Новосибирск
Сообщений: 17
Репутация: 0 (0)
Сообщение __autoload объявленный в классе.

Что делаю: подключение расширений. Расширения содержат в себе классы. Расширений может быть очень много, поэтому генерируется файл (если его нет) ext_cache.php который содержит в себе данные: какие классы есть в каждом расширении (массив данных). Если файл есть - то мы не сканируем расширения, а подключаем только его, чтобы при отсутствующем классе функция __autoload знала в каком расширении (папке) его искать, а не перелопачивать 100+ файлов.

Проблема: все эти махинации с расширениями я делаю в конструкторе класса и все данные хранят свойства этого класса. Мне нужно объявить __autoload внутри класса, чтобы использовать свойства, естественно это не получается, матерится этим: "Fatal error: Using $this when not in object context" когда я пытаюсь внутри функции __autoload обратиться к свойству так: $this->ext.

Как быть? Есть вариант вынесли всю эту штуку с расширениями за класс и все заработает, но хотелось бы вот так, или как будет правильнее. Самая главная проблема - с ооп еще не сталкивался = ) Но рассчитываю на пендюли, достаточные для решения проблемы.
Lynch1 вне форума
Другие темы раздела
getTraceAsString() PHP
Сайт написан по принципу MVC, но без фрэймворка. В логе несколько раз в день стала появляться ошибка: PHP Fatal error: Allowed memory size of 104857600 bytes exhausted (tried to allocate 1064407 bytes) in /home/a/alekst/foodintambov.ru/libs/App/Exception/MySQL.php on line 18 Такое было и.... getTraceAsString()
Подключение файла через метод класса PHP
Оказывается, если инклюдить файл через метод класса, то содержимое подключается как бы в этот самый метод, и видит в своём окружении свойства и методы данного класса, но не видит глобальную среду (например, переменные, созданные в исходном файле (в который мы подключаем другой)). Так же история,.... Подключение файла через метод класса
Старый 06.02.2012, 19:46   #2
Vovan-VE
Модератор
 
Аватар для Vovan-VE
 
Регистрация: 10.01.2008
Адрес: Иркутск
Сообщений: 9,621
Репутация: 5177 (3362)
По умолчанию Re: __autoload объявленный в классе.

spl_autoload_register()
Код PHP
1
spl_autoload_register(array($obj, 'callbackMethod'));
Vovan-VE вне форума
Ответ Создать новую тему

Похожие темы
Тема Автор
C# .NET Помогите реализовать метод закраски, чтобы он был в классе и вызывался в другом классе
Помогите реализовать метод закраски, чтобы он был в классе и вызывался в другом классе
Николай Ленин
PHP Smarty 3 и __autoload()
Здравствуйте столкнулся с проблемой. До этого использовал Smarty 2. Когда захотел перейти на Smarty 3 возникли проблемы с функцией _autoload(). То есть она перестала работать. Я подключаю файлы классов моделей этой функцией. Но перед этим вручную подключаю файл класса Smarty....
oke11o
PHP и ООП __autoload() - Как указать папки в которых нужно искать классы
доброго времени суток! такой вопрос: есть на сайте несколько папок с файлами классов, когда я использую autoload(); для подгрузки классов, функция ищет нужные слассы в той папке в которой находится сам файл откуда мы её вызвали, + то что прописано в php.ini, так вот, как заставить функцию...
Sanu0074
PHP для начинающих Использование магической функции __autoload()
Прочитал здесь: http://phpclub.ru/faq/PHP5/Autoload что в PHP5 перед тем как создать объект несуществующего класса, идёт попытка вызова __autoload(), который должен попытаться подключить такой класс, которого на самом деле нету. Вот в одной директории, у меня лежит 3 файла: index.php ...
romantik
Java метод объявленный вне класса - дерево
Жалуеться на строку - cannot find symbol. Подскажите пожалуйста, как правильно объявить метод insert в main, чтобы он добавлял элементы в дерево insert(root, 1, "anton", "bondarenko", "3", "455678", "Y"); package btree; import java.io.*; public class BinaryTree {
ArniLand
Опции темы

Текущее время: 04:18. Часовой пояс GMT +4.

Компьютерный форум программистов и сисадминов
Powered by vBulletin® Version 3.8.7 PL2
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Рейтинг@Mail.ru