esterio +
спасибо за наводку, разобрался с диспетчером. просто много раз на него натыкался, но не понимал принципа действия. это то, что надо. благодарю!!!
Теоретически я понимаю, что ко всем методам классов в фреймворке нужно обращаться через особый класс, который бы автоматом уведомлял другие модули об инстанцировании, но не могу четко реализовать это в виде кода. (Добавление) esterio по причине того, что в каждом контроллере придется дописывать кучу кода. а контроллер не один, и, скорее всего, в некоторых из них придется дублировать код.. что уже не хорошо.
Здравствуйте уважаемые форумчане. Постановка задачи такова:
Нужно реализовать систему "событий", или, лучше сказать, "уведомлений", чтобы при вызове определенного экшена определенного контроллера, подключались какие-либо модули (плагины). Паттерн Observer мне не подходит.
Подскажите пожалуйста, какой шаблон программирования мог бы помочь мне решить данную проблему?
Заранее спасибо.
извините, что апаю старую тему.. но вопрос как бы актуален. можно ли считать такое решение говнокодом? Может кто нить подскажет шаблон проектирования, который мог бы решить проблему загрузки контроллеров-модулей в основной контроллер без редактирования исходников последнего...?
Надеюсь не ошибся веткой форума.
Вопрос первый. Как вывести названия и размер всех элементов, хранящихся в кэше?
Вопрос второй. Как полностью отчистить кэш?
Заранее благодарю за ответы.
готовые варианты очень долго изучать если ты новичок в этом деле, пока поймешь логику посторения то уже ничего не захочется =Р
Дык, пока не поймете логику - ничего хорошего не выйдет. Зачем лезть в чужой код, если вы, судя по постам, не понимаете даже логику своего приложения (точнее сказать, вы не можете сформулировать и построить ее).
ИМХО в данном случае необходим Router, который будет получать некие параметры из УРЛ'а, обрабатывать их и передавать в соответствующий Controller.
А вообще, все нужно делать в три шага:
1. Сесть и описать ручкой на бумаге (или клавишами на компьютере) то, что вы хотите реализовать. Описать ядро вашего приложения.
2. Написать ядро приложения.
3. По мере необходимости расширять ядро.
Что нужно? а нужно сделать проверку (в контроллере):
if($private == 1){
//...
}
то, подменить содержимое $data['content'] на нечто подобное: 'Только приватный просмотр!'. Естественно, до непосредственного вывода. Кто-то скажет, что нужно расширить класс Контроллера, и будет не прав. Ибо объект класса Controller уже создан, и заменить его на что-то другое нельзя. Вообще, будем отталкиваться от того, что этот код закрыт. Ну, если только не код контроллера. Как бы вы поступили? Я думаю, что так:
В принципе, все окей! Проблему мы решили. Но что, если исходник контроллера так же не доступен для редактирования? Наследование здесь не поможет, потому что экземпляр класса Controller уже создан и работает. Переопределить его нельзя. Итак, моя идея. Создать к контроллеру конфигурационный файл config.ini следующего содержания:
В этом конфиге описывать методы и классы, экземпляры которых будут автоматически созданы в контроллере. Вот таким образом их подгружать (извините, писал наспех):
Как не сложно догадаться, extensionLoader парсит ини файл, создает на основе параметров экзепляры классов, их методам передает массив данных. Читай, это то же самое:
Здравствуйте уважаемые товарищи. Возник такой вопрос, какой контент целесообразно сбрасывать в кэш, а какой - нет? В принципе, кэшировать можно абсолютно все. Что-то сбрасывать в кэш на несколько секунд, что-то подольше. Кэшировать всякие блоки типа "топ новостей", "последние комментарии" и т.д. А вот стоит ли кэшировать ленту новостей? Или, скажем, стоит ли кэшировать отдельную новость с учетом того, что к ней предполагается доступ большого кол-ва пользователей?
И еще такой вопрос, что подразумевается под "кэшированием шаблона"?
Заранее спасибо за ответы.