Компоненты для PHP

К текущему моменту Smarty ничего не знает о каких-либо компонентах, и нам нам надо научить его работать с ними. Для этого мы добавляем к синтаксису шаблонов новый тег – {component}. Чтобы Smarty научился обрабатывать этот тег – пишем простую функцию:

Давайте разберемся, что делает данная функция. Во-первых, она создает обработчик для нового тега – {component}, во-вторых, достает (get_registered_object()) и делает доступными вызванному компоненту зарегистрированные ранее общие объекты.

Немножко теории. Чтобы вызвать данную функцию к жизни, необходимо в любом шаблоне написать тэг {component}. Поскольку функция не выполняет никаких продуктивных действий, и служит исключительно диспетчером компонентов, просто написать {component} недостаточно, поскольку эта команда неинформативна. Конечно, функция не даст сбоя, и запустит принятый по умолчанию компонент 'site_view'.

Каким образом уточнить, какой именно компонент вам требуется и как передать ему дополнительные параметры? Все очень просто, мы несколько измени вызов компонента в шаблоне:

{component name='имя требуемого компонента' var1='значение параметра' var2='значение другого параметра'}

И так далее, как вы понимаете, name, var1, var2 – это дополнительные параметры для нашего компонента. Name, например, указывает имя компонента, который мы хотим вызвать, а остальные параметры – это дополнительные данные для вызываемого компонента, их количество может быть любым, ровно как и их имена. После того, как в шаблоне встретится указанный выше тег, произойдет вызов нашей функции, которая, в свою очередь, вызовет нужный вам компонент. Все дополнительные параметры будут доступны как в нашей функции так и в вызываемом компоненте, они будут содержаться в массиве $params, где ключ – это название параметра, а значение – соответственно – его значение.

Мы приняли, что файлы наших компонентов именуются следующим образом:

name.component.php где name – это наш параметр name.

Функция ищет в указанной папке файл с именем, сформированным указанным образом и исполняет его. В случае отсутствия параметра name запускает компонент, назначенный по умолчанию, в противном случае – выдает ошибку.

Формула веба

Билл Гейтс, основатель "Майкрософт"
...вскоре нас ожидает новая волна, связанная с освоением «программируемого Интернета», в котором будут участвовать не только персональные компьютеры, но и многие другие устройства — мобильные телефоны, автомобили, телевизоры, игровые приставки и т. д.
готовая строительная фирма, сертификация оборудования ac 600 компрессор
Берзиос Андрей, руководитель межрегиональной группы "Web 2000"
Интегрированные веб-решения создают прочный фундамент для развития Вашего бизнеса...