![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| anthonyBoard |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 71 Регистрация: 11.8.2008 Где: Russia, Obninsk Репутация: нет Всего: нет |
Прошу прощения за глупый вопрос, но с таковым никогда не сталкивался, поэтому и спрашиваю:
Каково время жизни переменной, которая была заинклудена из файла в функцию класса? Она проживет пока жив класс, или по окончанию выполнения функции помрет? Просто если она будет жить пока жив класс, то можно инклудить всегда относительно одной и тойже функции класса. |
|||
|
||||
| sTa1kEr |
|
||||||
|
9/10 программиста ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1553 Регистрация: 21.2.2007 Репутация: 11 Всего: 146 |
Если "плохо знающие PHP" не смогут вызвать статический метод, то это не "плохо знающие PHP", а "абсолютно ничего знающие в PHP".
Ну так, а что тут мешает через $this обращаться? Посмотрите как сделаны View-контролеры в Zend Framework-e http://framework.zend.com/manual/en/zend.view.html
А что ему мешает писать Someclass::getInstance()->doit(); ?
Как вы это себе представляете? Функция закончила свою работу, а локальные переменные остались? Хотя, если конкретные переменные объявить статическими, то они действительно будут доступны при следующем вызове функции. Хотя возможно сохранять все локальные переменные и разворачивать их обратно есть (см. мой первый пример), но, повторюсь, это моветон, и может привести к серьезным логическим ошибкам и накладным расходам. |
||||||
|
|||||||
| anthonyBoard |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 71 Регистрация: 11.8.2008 Где: Russia, Obninsk Репутация: нет Всего: нет |
Да, наверное я загнался конечно на какую-то идеальность. Ладно, если ничего хорошего по структуре не придет на ум, то пусть через $this обращаются или пусть global делают вначале include.
Спасибо всем, кто участвовал в дискуссии этого топика! Если у кого-нибудь буду еще какие идеи - буду раз их увидеть здесь! Еще раз спасибо! |
|||
|
||||
| anthonyBoard |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 71 Регистрация: 11.8.2008 Где: Russia, Obninsk Репутация: нет Всего: нет |
Как на счет только чтобы все темплейты обхединять в один и делать потом eval? Т.е. в каждом темплейте будет содержаться какое-то обозначение типа "[TEMPLATE-2]" и будет заменяться кодом соответствующего темплейта из файла, а потом eval'ом все будет выполняться. Получается все переменные будут доступны на одном уровене, что и требовалось.
Как вам такая мысль? Не будет ли это тормознутее, чем это делалось сразу include? ну и другой вариант забить на все переменные, которые могут возникнуть во время выполнения определенного темплейта и заставить пользователя делать их global, если он планирует где-то дальше их использовать. На счет eval еще не уверен вот в чем.. Не поплывет ли дебагер? |
|||
|
||||
| awers |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1465 Регистрация: 22.3.2006 Где: Россия, Таганрог Репутация: нет Всего: 31 |
а как на счет smarty?
Добавлено через 41 секунду И раздел тоже по итогу не верно выбран )) Для профи - это не то что надо ) |
|||
|
||||
| anthonyBoard |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 71 Регистрация: 11.8.2008 Где: Russia, Obninsk Репутация: нет Всего: нет |
Я подумал, что вопрос достоен профессиональных взгядов.
Смарти - тоже не то. Но вопрос можено снять, т.к. я начал перепроектирование и вроде проблем возникнуть не должно, за исключением вопроса о добавлении функции, который я задал в Общем разделе. К сожалению одно единственное предложенное решение - не то что я ожидал. Всем спасибо за участие в этой теме! |
|||
|
||||
| anthonyBoard |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 71 Регистрация: 11.8.2008 Где: Russia, Obninsk Репутация: нет Всего: нет |
К вопросу по теме! Если в php 5.3 будет namespace - то тогда станет возможным реализовать поставленную задачу изначально, я правильно понимаю?
|
|||
|
||||
| sTa1kEr |
|
||||||||
|
9/10 программиста ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1553 Регистрация: 21.2.2007 Репутация: 11 Всего: 146 |
module1.php
module2.php
main.php
Вывод:
|
||||||||
|
|||||||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Для профи | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |