Smarty преимущества и недостатки
П.С. Желательно аргументировать свои ответы :).
Из недостатков, только одно для себя заметил - сам smarty написан на php, поэтому довольно много времени уходит ещё и на его интерпретацию.
В остальном, он хорош, удобен, позволяет избавиться от мешанины php с html. При грамотном подходе к кэшированию отдельных блоков, разница во времени отдачи страницы браузеру между подходами "традиционным" и "со смарти" для конечного пользователя совсем становится незаметной.
Вобщем, рекомендую.
Подходит и для маленьких и для больших сайтов. Минус: скорость. Плюс: разделение клиентской и серверной частей кода благодаря чему проект остается структурированным.
Советую использовать.
И нужно что-нибудь для установки, и т. д.?
И нужно что-нибудь для установки, и т. д.?
Литература здесь: http://smarty.php.net/docs.php
Для установки нужны только прямые руки :)
Установка заключается в копировании скриптов smarty в нужное место.
Все общеупотребительные библиотеки (Smarty, Zend, PEAR и прочее) ложится куда-нибудь подальше. На сайте же, в конфигурации, просто пути к ним указываешь и всё.
Представь себе, что у тебя не один, а сто сайтов (например, субдоменны, да и не только - просто разные сайты в разных директориях), и у каждого свой корень, свой движок. Ты будешь в каждую Smarty ложить?
// а в файле чтобы проинклюдить
include $config["smarty_path"]."smarty.class.php";
// а в файле чтобы проинклюдить
include $config["smarty_path"]."smarty.class.php";
Я имел в виду в таких функциях как include и require.
перенёс свой движок в другую директорию, а смарти забыл (ну или не стал, так как плодить на каждом поддомене одно и то же, имхо, и как сказано выше, глупость!), а относительный путь остался, ну или с переходами вверх по директориям перемудрил, недописал или написал слишком много. соотвессна он работать не будет. поэтому удобнее будет использовать путь из конфига.
PS: лично я всегда так делаю, указал 1 раз фолдер и всё оке :)
ini_set("include_path", get_include_path().PATH_SEPARATOR."/etc/lib/Smarty");
Вот так, например. И все остальные пути к библиотекам так же. В этом случае, даже при переносе скриптов в другие места, пути нужно будет прописать только в одном месте, а не корячится и переписывать в сотне файлов.
PS Приходи завтра на Новослабодскую к 19, думаю там будет что послушать)))
Просвяти. Я знаю, что есть сепаратор, или как в Win он называется - делимитер, но не знал, что есть константа такая в PHP.
DIRECTORY_SEPARATOR - заменяет слеше в пути на нужные (т.е. "\" или "/")
пример: $path . DIRECTORY_SEPARATOR . $fileName (аналогично $path . "/" . $file, только учитывает особенности ОС)
PATH_SEPARATOR - разделитель директорий (":" или ";", в зависимости от ОС). Реальное применение нашёл только в set_include_path() ))