Использование Smarty в CodeIgniter

Как подключить Smarty к проекту на фреймворке Codeigniter 2, а также использование шаблонизатора в выводе и генерации HTML в контроллерах?


Фреймворк CodeIgniter — это прекрасный инструмент для разработки уникального функционала «с нуля». Это «почти чистый php». У него очень низкий порог вхождения, т.е. в том, как эта штука работает, можно разобраться очень быстро. Тем не менее, все мы привыкли работать с тем, что нам удобно и понятно.

Я бы не сказал, что стандартные средства вывода контента на CI плохи или неудобны. Так сложилось, что я много времени провожу, «ковыряя» сайты на CMS, которые используют шаблонизатор Smarty.

Можно много спорить о том, на чем лучше и как лучше разрабатывать интернет-приложения. Не буду вдаваться в подробности, я просто расскажу как использовать Smarty при разработке на CodeIgniter.

Smarty в архитектуре CI — это библиотека, соответственно и

application/libraries/

.

В итоге в этой папке (если конечно у вас чистая установка фреймворка или вы не использовали других библиотек) будут находиться папка со Smarty и файл

Smrt.php

— который будет все подключать.

Конечно можно назвать файл и класс по-другому, не

Smrt

, это уже как удобно. Только не

Smarty

, он уже есть.

require_once "smarty/Smarty.class.php";

class Smrt extends Smarty {
  function __construct() {
    parent::__construct();
    $this->template_dir = "frontend/theme/templates/skin/";
    $this->compile_dir  = "frontend/theme/templates/compile/";
  }
}

Папки должны быть обязательно созданы, а также иметь права на запись.

После этого в контроллерах фреймворка мы можем забыть о выводе шаблонов через

view

.

Теперь для вывода контента можно делать вот так:

class Welcome extends Controller {
  function index() {
    /* 
     * эту строку можно не писать, 
     * если библиотека есть в autoload
     */    $this->load->library("smrt"); 
    $this->smrt->assign("hello", "Hello, world!");
    $this->smrt->display("index.tpl");
  }
}

А содержимое файла

index.tpl

, который как мы помним должен лежать в папке, которую мы прописывали в

template_dir

(

frontend/theme/templates/skin/

), будет такое:

{$hello}

И результатом будет всем известная строка, черным по белому!

И еще один момент. Так как выводить контент придется практически постоянно, то можно библиотеку прописать в

autoload

, в папке с конфигурационными файлами.

Надеюсь материал был полезен! Спасибо!


admin

Share
Published by
admin

Recent Posts

Консоль удаленного рабочего стола(rdp console)

Клиент удаленного рабочего стола (rdp) предоставляет нам возможность войти на сервер терминалов через консоль. Что…

2 месяца ago

Настройка сети в VMware Workstation

В VMware Workstation есть несколько способов настройки сети гостевой машины: 1) Bridged networking 2) Network…

2 месяца ago

Логи брандмауэра Windows

Встроенный брандмауэр Windows может не только остановить нежелательный трафик на вашем пороге, но и может…

2 месяца ago

Правильный способ отключения IPv6

Вопреки распространенному мнению, отключить IPv6 в Windows Vista и Server 2008 это не просто снять…

2 месяца ago

Ключи реестра Windows, отвечающие за параметры экранной заставки

Параметры экранной заставки для текущего пользователя можно править из системного реестра, для чего: Запустите редактор…

2 месяца ago

Как управлять журналами событий из командной строки

В этой статье расскажу про возможность просмотра журналов событий из командной строки. Эти возможности можно…

2 месяца ago