Ver Feed RSS

Splinther

Zend Framework + Smarty Template Engine

Avaliação: 3 votos, 4,67 média.
Olá, este é meu primeiro post aqui e vou mostrar como utilizar a biblioteca Smarty como o View do Zend Framework.

Neste artigo estou partindo do presuposto que vc já tenha o Zend funcionando corretamente. Caso não, procurre sobre tutoriais e/ou fórums a respeito, ou até mesmo no manual do Zend: Zend Framework.

Pra quem ainda não conhece o Smarty, visite a página Smarty : Template Engine. Lá vcs pode conferir a documentação (inclusive em Português Pt-br).

Bom vamos lá, vou utilizar a versão stable (Smarty 2.6.26) Download: Smarty : Download

Depois de baixar extraiam o conteudo da pasta "libs" para a pasta libraries de seu projeto. No meu caso, o nome dessa pasta também é libs.

Agora no seu arquivo responsável por tratar dos controllers no Zend ( no meu caso, main.php ) faça da seguinte maneira:

Código PHP:

// include Smarty Template
include('libs/Smarty.class.php');


//carrega e configura Smarty Template Engine;
    
$smarty = new Smarty();
    
$smarty->debugging false;
    
$smarty->force_compile true;
    
$smarty->caching true;
    
$smarty->compile_check true;
    
$smarty->cache_lifetime = -1;
    
$smarty->template_dir './application/templates/';
    
$smarty->compile_dir './application/templates_c';
    
$smarty->cache_dir './application/templates_cache';


    
//Registra o objeto criado.
    
Zend_Registry::set('smarty'$smarty);



//Cria Controllers
$baseUrl substr($_SERVER['PHP_SELF'], 0strpos($_SERVER['PHP_SELF'], '/index.php'));
$frontController Zend_Controller_Front::getInstance();
$frontController->setbaseUrl($baseUrl);
$frontController->setControllerDirectory('./application/controllers');

//Desabilita o autoViewRenderer
$frontController->setParam('noViewRenderer'true);

//Executa Controlador do Projeto
$frontController->dispatch(); 
Depois, crie as pastas: 'templates', 'templates_c' e 'templates_cache' dentro de 'application'.

Dê CHMOD 777 nas pastas 'templates_c' e 'templates_cache'.

Chamando o Smarty:

No seu Controller:
Código PHP:

public function indexAction()
{

$smarty Zend_Registry::get('smarty');

$smarty->assign('hello''Hello !');
$smarty->display('index.tpl');


Seus arquivos de template ficarão dentro da pasta 'templates' que vc criou anteriormente.

Para nosso teste criaremos um arquivo 'index.tpl' e nele vamos imprimir nossa variavel setada no controller 'hello':

Código :
{$hello}
Simples não ?

Bom, não vou abordar sobre configurações do Smarty, isso pode ser encontrado no manual do Smarty e em breve irei fazer uma explicação detalhada sobre Smarty e algumas funções.

Flw pessoal até a próxima.

Atualizado 30-01-2010 em 21:17 por Splinther

Categorias
Não Categorizado

Comentários


+ Enviar Comentário