Информация
- В рейтинге
- 786-й
- Откуда
- Санкт-Петербург, Санкт-Петербург и область, Россия
- Дата рождения
- Зарегистрирован
- Активность
Специализация
Генеральный директор
Ведущий
От 3 000 000 ₽
Управление проектами
Ведение переговоров
Разработка ТЗ
Agile
Управление разработкой
Оптимизация бизнес-процессов
Организация бизнес-процессов
Построение команды
Стратегическое планирование
Развитие бизнеса
технология php проверена и обкатана, а изучить синтаксис PHP на уровне вывода переменных не труднее чем выучить синтаксис Smarty
assign($varName,$value, $isProtect=true){
if ($isProtect)
$value = escape($value);
}
Вообще в этих вопросах скорости работает такое правило: смарти (несмотря на всю свою кривизну, громоздкость) популярен потому что на вывод шаблона тратится 2-10% времени редко больше.
из своей практики могу сказать результаты тестирования:
Простые шаблоны
генерация шаблонов:
Q AVG: 0.16 сек
S AVG: 0.18 сек
P AVG: — сек
вывод шаблонов:
Q AVG: 0.0064 сек
S AVG: 0.0065 сек
P AVG: 0.0022 сек
Сложные шаблоны
генерация шаблонов:
Q AVG: 0.19 сек
S AVG: 0.54 сек
P AVG: — сек
вывод шаблонов:
Q AVG: 0.0072 сек
S AVG: 0.0231 сек
P AVG: 0.0038 сек
AVG — среднее время на замере (1000 замеров)
Тестировалось на рабочем сервере FReeBSD Core2Duo 2.0 Ghz, думаю остальные параметры не так важны, да и не помню я их уже.
генерация шаблонов — имеется ввиду компилирование.
S- smarty
Q- Quiky
P — PHP
Нужное выделил
а не привести к коротким тегам, это уж дело вкуса.
второе:
как правило когда нужно выводить «чистые» данные вы знаете это в моделе (практика подтверждает)
и в конце концов вы всегда можете использовать оба механизма.
в большенстве случаев этого хватает, но на всякий случай замечу, что переменная может быть определена и иметь false, потому полезно генерировать стандартное уведомление.
а вообще функции для работы с буферами часто пишут так что они возвращают null:
fucntion __get($k){ if (isset($this->vars[$k])) return $this->vars[$k]; return null; }первое # <?php echo $this->title ?>
такой вызов слишком долг, и не естественнен, если вы будите выводить шаблон в метоlе, то сможете в этом же методе сделать что-то вроде:
foreach $this->allVars as $k=>$v
$$k=$v;
ну фильтры для протекции навернете сами.
тогда запись будет более естественой:
<?=$title ?>
второе: я считаю что экранирование передаваемых в шаблонизатор параметров должно определяться на момент передачи параметра и по умолчанию все экранировать:
$templater->assign($varName,$value, $isProtect=true)
Это что касается критики, а в остальном статья толковая, очень правильно подмечены причины почему нужен шаблонизатор, а не «чистый» нативный подход. Для начинающих однозначно полезный материал!
Квантовое запутывание можно представить себе так:
возмем Атом Дейтерия (радиоактивного водорода), поместим его в рентгеновское излучение (увеличив вероятность распада), ждем когда распадется.
разлетелось 2 частицы: нейтрон и атом водорода (1 нейтрона+1 электрон)
мы можем замерить импульс (что даст нам скорость) нейтрона достаточно точно и можем рассчитать импульс водорода! Теперь берем и замеряем координаты водорода (или одновременно с этим). Таким образом мы как бы нарушаем принцип неопределенности: мы смогли отдельно замерить и координаты и импульс частицы водорода. Но на практике измерив импульс нейтрона мы вносим погрешность и в измерение координат водорода! Это и есть эффект связывания. Видно, что он ведет к уничтожению информации, но не к ее передачи, таким образом постулаты теории относительности не нарушаются, а со сверх световой скоростью распространяется не информация, а ее уничтожение.
по моему очень просто вы там где храните когд апрува там же и храните адрес с котого прошла регистрация и отправляете пользователся потом туда.
activation_key=51hkjl45g6kj
вот когда вы передаете это вы где-то это храните, почему вам бы не храить там же и $_SERVER['REQUEST_URI']