![]() |
Форум больше не используется. Присоединяйтесь к каналу #community-ru в Slack for TYPO3 community |
![]() |
#1 |
Senior Member
Регистрация: 13.12.2006
Адрес: ~msk
Сообщений: 277
|
![]()
Случайно набрёл, отлаживая конструктор user_ класса, что он запускается столько же раз, сколько мы имеем вызовов объектов
Код:
lib... = USER lib...{ userFunc = user_view->.... } ![]() |
![]() |
![]() |
![]() |
#2 |
Senior Member
|
![]()
И в чем же отсутствие логики?
|
![]() |
![]() |
![]() |
#3 |
Senior Member
Регистрация: 13.12.2006
Адрес: ~msk
Сообщений: 277
|
![]()
Возможно, я не прав, но я бы предпочёл единичную инициализацию класса. Я уже написал - мыслю PHP-категориями, то есть так как привык работать. Не обращайте внимания, мой испуг уже прошёл, главное, что USER кэшируется
![]() Последний раз редактировалось c0d3r; 06.06.2007 в 10:48 |
![]() |
![]() |
![]() |
#4 | |
Senior Member
|
![]() Цитата:
![]() USER может тоже не кэшироваться при установке no_cache = 1... Вместе со всей страницей. |
|
![]() |
![]() |
![]() |
#5 |
Senior Member
Регистрация: 13.12.2006
Адрес: ~msk
Сообщений: 277
|
![]()
PHP вряд ли другое
![]() |
![]() |
![]() |
![]() |
#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 |
![]() |
![]() |
![]() |
#8 |
Senior Member
Регистрация: 13.12.2006
Адрес: ~msk
Сообщений: 277
|
![]()
Да, логика хромает - жесткий дедлайн, выбора нет, в ход идут любые костыли и т.д. Реальный ужос, я противник такого, но иногда бывает и так. После запуска "любой ценой" будет рефакторинг. За T3_VAR (у Вас опечатка) спасибо, но глобальный массив - это не ООП
![]() Последний раз редактировалось c0d3r; 16.06.2007 в 11:05 |
![]() |
![]() |
![]() |
#9 | |
Senior Member
|
![]() Цитата:
Нужен Singleton, ну так делайте! Если PHP4, то без $GLOBALS (или $_SESSION) не обойтись никак. Если дедлайн, то чего бы просто не сделать, а потом уже рассуждать об ООП? |
|
![]() |
![]() |
![]() |
#10 | |
Senior Member
Регистрация: 13.12.2006
Адрес: ~msk
Сообщений: 277
|
![]()
Да, php4, будем пробовать.
А почему Вы решили, что делается иначе? ![]() Итак, продолжаем после дедлайна ![]() Цитата:
Я не понимаю, как можно запускать класс user_view синглтоном (надо полагать, инициализация происходит в ходе парсинга TS). Если Вы поннимаете, подскажите, пожалуйста. ps Классы, которые вызывает user_view вызывать как синглтоны не проблема, это работает. Последний раз редактировалось c0d3r; 20.06.2007 в 10:50 |
|
![]() |
![]() |