Обновить
8K+
51
Александр Шульман@developer

Развиваю ИТ

10
Рейтинг
49
Подписчики
Отправить сообщение
с вами не согласен в корне.
технология 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
смотрим документацию и коментарии и видим, что присвоение переменной null эквивалентно уничтожению переменной (фактически данных нет, но есть контейнер).
я б null возвращал, ибо попытка вывода несуществующей переменной — колокольчик о том, что там ошибка в логике (ошибочное предположение существования), опечатка, и вы так получите нотис!
очевидно вы не поняли что имеется в момем первом положении. Суть в том чтоб избавиться от <?php echo $this->title
Нужное выделил
а не привести к коротким тегам, это уж дело вкуса.

второе:
как правило когда нужно выводить «чистые» данные вы знаете это в моделе (практика подтверждает)
и в конце концов вы всегда можете использовать оба механизма.
«Магический» метод __get возвращает значение переданной в шаблон переменной. Если переменная не определена, возвращает false. В зависимости от параметров, переменные перед отдачей могут обрабатываться.


в большенстве случаев этого хватает, но на всякий случай замечу, что переменная может быть определена и иметь 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']
старая идея кстати GRID давно существовал но только у университетов, а бизнес туда не спешит прийти
учитывая что Google Купил Бегуна, а бегун пренадлежал частью рамблеру и учитывая какие-то слухи о связях рамблера с гуглом, а так же то, что еще 2 года назад на хайлоаде они показывали как PR считают, то уверен, что мы все еще удивимся.
настальгия по большим и не уклюжим венцам интелектуально творчества
какие архаичные образы компьютеров еще использовались
спасибо что собрали их как хорошо что есть место куда можно отправить своих друзей учить/читать

Информация

В рейтинге
786-й
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Дата рождения
Зарегистрирован
Активность

Специализация

Генеральный директор
Ведущий
От 3 000 000 ₽
Управление проектами
Ведение переговоров
Разработка ТЗ
Agile
Управление разработкой
Оптимизация бизнес-процессов
Организация бизнес-процессов
Построение команды
Стратегическое планирование
Развитие бизнеса