Zend Framework + Smarty Template Engine
por
em 30-01-2010 às 03:26 (5644 Visualizações)
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:
Depois, crie as pastas: 'templates', 'templates_c' e 'templates_cache' dentro de 'application'.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'], 0, strpos($_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();
Dê CHMOD 777 nas pastas 'templates_c' e 'templates_cache'.
Chamando o Smarty:
No seu Controller:
Seus arquivos de template ficarão dentro da pasta 'templates' que vc criou anteriormente.Código PHP:
public function indexAction()
{
$smarty = Zend_Registry::get('smarty');
$smarty->assign('hello', 'Hello !');
$smarty->display('index.tpl');
}
Para nosso teste criaremos um arquivo 'index.tpl' e nele vamos imprimir nossa variavel setada no controller 'hello':
Simples não ?Código :{$hello}
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.
Comentários
+ Enviar Comentário