Форум больше не используется. Присоединяйтесь к каналу #community-ru в Slack for TYPO3 community |
05.06.2007, 18:18 | #1 |
Senior Member
Регистрация: 13.12.2006
Адрес: ~msk
Сообщений: 277
|
Многократная инициализация user_ объектов PHP
Случайно набрёл, отлаживая конструктор user_ класса, что он запускается столько же раз, сколько мы имеем вызовов объектов
Код:
lib... = USER lib...{ userFunc = user_view->.... } |
05.06.2007, 21:08 | #2 |
Senior Member
|
И в чем же отсутствие логики?
|
06.06.2007, 09:52 | #3 |
Senior Member
Регистрация: 13.12.2006
Адрес: ~msk
Сообщений: 277
|
Возможно, я не прав, но я бы предпочёл единичную инициализацию класса. Я уже написал - мыслю PHP-категориями, то есть так как привык работать. Не обращайте внимания, мой испуг уже прошёл, главное, что USER кэшируется
Последний раз редактировалось c0d3r; 06.06.2007 в 10:48 |
06.06.2007, 13:40 | #4 | |
Senior Member
|
Цитата:
USER может тоже не кэшироваться при установке no_cache = 1... Вместе со всей страницей. |
|
06.06.2007, 14:56 | #5 |
Senior Member
Регистрация: 13.12.2006
Адрес: ~msk
Сообщений: 277
|
PHP вряд ли другое Инициализация объекта имелась в виду, конечно, извиняюсь. То, что там самостоятельные объекты, я понял, вопрос закрыт.
|
15.06.2007, 12:59 | #6 |
Senior Member
Регистрация: 13.12.2006
Адрес: ~msk
Сообщений: 277
|
Важный вопрос вдогонку - можно как-то прописать запуск синглтона через USER?
Ситуация такая - один метод класса генерит данные, необходимые другому методу. Но при многократной инициализации такой подход можно реализовать только через singleton. Код:
lib.content = USER lib.content { userFunc = user_view->content } lib.pager = USER lib.pager { userFunc = user_view->pager } Передавать через $GLOBALS как-то неэтично, верю, есть более изящный и логичный Typo3-way Последний раз редактировалось c0d3r; 15.06.2007 в 13:14 |
16.06.2007, 09:05 | #8 |
Senior Member
Регистрация: 13.12.2006
Адрес: ~msk
Сообщений: 277
|
Да, логика хромает - жесткий дедлайн, выбора нет, в ход идут любые костыли и т.д. Реальный ужос, я противник такого, но иногда бывает и так. После запуска "любой ценой" будет рефакторинг. За T3_VAR (у Вас опечатка) спасибо, но глобальный массив - это не ООП , а интересует именно работа USER с синглтоном, раз уж о чём-то таком упомянул Павел.
Последний раз редактировалось c0d3r; 16.06.2007 в 11:05 |
16.06.2007, 18:08 | #9 | |
Senior Member
|
Цитата:
Нужен Singleton, ну так делайте! Если PHP4, то без $GLOBALS (или $_SESSION) не обойтись никак. Если дедлайн, то чего бы просто не сделать, а потом уже рассуждать об ООП? |
|
17.06.2007, 11:42 | #10 | |
Senior Member
Регистрация: 13.12.2006
Адрес: ~msk
Сообщений: 277
|
Да, php4, будем пробовать.
А почему Вы решили, что делается иначе? Итак, продолжаем после дедлайна )) Цитата:
Я не понимаю, как можно запускать класс user_view синглтоном (надо полагать, инициализация происходит в ходе парсинга TS). Если Вы поннимаете, подскажите, пожалуйста. ps Классы, которые вызывает user_view вызывать как синглтоны не проблема, это работает. Последний раз редактировалось c0d3r; 20.06.2007 в 10:50 |
|