Feb 28th, 2007
Мега-инструмент
Я открыл для себя PEAR…
Множество задач, которые мне приходилось решать в своих проектах самому, уже так или иначе решены в этой библиотеке:
- работа с базой данных;
- кэширование страниц и их частей;
- несколько шаблонных систем - теперь не надо отдельно подключать (и изучать) Smarty;
- есть встроенный пакет для работы с AJAX - тоже теперь не придётся искать что-то на стороне;
- даже есть пакет для работы с облаком тэгов (правда, пока бета).
К плюсам также отношу простоту установки, а также возможность подгрузки нужных пакетов (есть специальная тулза для этого).
Конечно, нет ничего идеального:
- некоторые функции недо-документированы;
- на хостинге, похоже, его придётся ставить отдельно;
- и какие-то вещи кажутся неудобными из-за своей новизны для меня,
но в целом я очень доволен.
По поводу хостинга и “ставить” - я свои проекты держу на одном сервере, так что все они теперь просто будут обращаться к PEAR за нужными функциями, что мне видиться очень удобным нововведением: если раньше я вносил улучшение в какой-то общий плагин в одном проекте, то надо было обновлять его во всех остальных; теперь же все “плагины” будут в одном месте (это, конечно, не чистая заслуга ПЕАРа, а приятное дополнение).
В общем, централизация меня радует.
P.S. К минусам отношу также необходимость иметь PHP в виде exe-файла, что совсем не очевидно (просто ругается на неопределённую переменную окружения) и не совсем удобно. Ну да ладно, поставил и забыл. Надо в настройках переменных окружения (Win+Pause, вкладка “Дополнительно“, кнопка “Переменные среды̶
добавить новую переменную PHP_PEAR_PHP_BIN с путём к php.exe (например, “F:\www\apache\php.exe“). Уф!
Порой возникает необходимость выполнить одно и тоже действие по разным событиям. Например, нужно отследить изменения ввода текста в инпут и соответственно обновить другое поле.
Столкнулся с такой проблемой: юзера в моей веб-системе логиняться с использованием сессий; время жизни сессии я выставил 1 неделю; при этом пользовательская сессия умирает действительно через неделю, но считая от первого логина, а не от последнего, т.е. не важно как часто юзер пользуется системой, время жизни его сессии не сдвигается, что для меня было не очевидно.