L!MP (22.12.2011/10:45)
Опять таки, затруднен lazy initialization, не явность содержимого.
Неявностью содержимого сртадают практически все патерны.
Чтоб была явность, нам нужно сбацать Monostate класс, где прописать статические переменные для каждого объекта. Тогда и IDE будут хорошо все распознавать гг.
А lazy initialization - это наверно наибольший из идиотизмов, которые я встречал.
Не читай книжки забугорных графоманов.
Они индусские lazy-быдлокодеры и страдают обострением ФГМ.
---
Нормальный кодер практически всегда должен точно знать где и что у него инициализируется.
А такие заморочки типа "а вдруг кто-то еще раз инициализирует класс", я бы такого "кто-то еще" кодера сразу бы уволил из фирмы, если бы он подсунул мне подобную каку.
AlkatraZ,
Неявностью содержимого сртадают практически все патерны.
Чтоб была явность, нам нужно сбацать Monostate класс, где прописать статические переменные для каждого объекта.
Не знаю, смотрел ли ты когда-нибудь на
DooPHP.
Там класс Doo.php сделан в точности так как ты описал
.
Нормальный кодер практически всегда должен точно знать где и что у него инициализируется.
А такие заморочки типа "а вдруг кто-то еще раз инициализирует класс", я бы такого "кто-то еще" кодера сразу бы уволил из фирмы, если бы он подсунул мне подобную каку.
Не, отложенная инициализация бывает полезной, особенно при работе с данными, но дело даже не в этом.
Я упомянул о "затрудненом lazy initialization" при обсуждении Registry скорее из-за не любви к онному
(справедливости ради, lazy initialization - это не работа Registry).
Просто не понимаю зачем городить огороды для того что-бы получить ф-ционал тех же глобальных переменных, со всеми ихними недостатками.
Мне кажется что гораздо эфективней реализовать некий контейнер из которого можно просто вытягивать необходимые инструменты и в котором будит инкапсулированна вся логика по инициализации... хм, похоже я опять о сервис локаторе
Кстати, в данном смысле мне очень понравился
Toolkit из
MZZ, который по сути является сервис локатором.
Ты знаешь, я специально затронул "кляузную" и спорную сторону программирования гг.
Ибо собираюсь немного похоливарить на тему синглтонов, но не в этой теме, чтоб не рассирать, щас создам другую
L!MP (24.12.2011/20:43)
Не знаю, смотрел ли ты когда-нибудь на DooPHP.
Там класс Doo.php сделан в точности так как ты описал .
Не, это не смотрел, но JohnCMS 5.0.0 я вначале начал писать именно так
Там у меня был один глобальный класс Vars в котором были явным образом прописаны статические переменные.
Сам класс был именно Monostate, ибо там была только статика, посему не нужно было никаких синглтонов, класс не нуждался в инициализации.
Но потом, когда решили писать mobiCMS, там уже на классической архитектуре MVC с патерном Registry (последний в Зендовской инкарнации).
SlyDeath (24.12.2011/00:27)
А у Коханы есть русское сообщество в нете?
Хоть и вопрос был задан давно, отвечу
Недавно, и таки совершенно случайно, попался хороший, русско-язычний блог о Kohana 3.2
http://kohanaframework.su/
Инфа там не всеобъемлющая, ибо блог ещё очень молодой, но для старта хватит.
Так как тема скорее мертва чем жива, буду периодически скидывать сюда линки на хорошие статьи и гайдлайны по ООП и фреймворкам в частности
И так: русская дока по фреймворку Symfony2
http://symfony-gu.ru/documenta ... .html
Судя по всему, находится на стадии наполнения (или просто забили), но для того что бы "вьехать" должно хватить.
Тоже подкину кое чего..
http://codeigniter.su/ Русская документация по php фреймворку CodeIgniter 2
На мой взгляд один из самых простейших фреймворков. Занимает мало места. Легок в изучении.
Screamer, Огонёк уже морально устарел, хотя не спорю, в качестве первого фреймворка для изучения он хорошо подойдёт.
Kohana, кстати, то же не самый сложный фреймворк
Работаю на ZendFramwork'е... Пока только положительные ощущения. Всё такое продуманное. Правда API к амазону у них убитое месяц назад было. Мож правда заапдейтили уже, незнаю.