Get Smarty

Donate

Paypal

Smarty Icon

You may use the Smarty logo according to the trademark notice.

Smarty Template Engine Smarty Template Engine

For sponsorship, advertising, news or other inquiries, contact us at:

Sites Using Smarty

Advertisement

Instalação Básica

Instale os arquivos da biblioteca do Smarty que estão no subdiretório /libs/ da distribuição. Estes são os arquivos PHP que você NÃO PRECISA editar. Eles são comuns a todas as aplicações e eles só são atualizados quando você atualiza para uma nova versão do Smarty.

Example 2.1. Arquivos da biblioteca do Smarty necessários

Smarty.class.php
Smarty_Compiler.class.php
Config_File.class.php
debug.tpl
/internals/*.php (all of them)
/plugins/*.php (todos eles para ser seguro, talvés a sua pagina precise de apenas alguns)
     

O Smarty utiliza uma constante do PHP chamada SMARTY_DIR que é o caminho completo para o diretório 'libs/' do Smarty. Basicamente, se sua aplicação puder encontrar o arquivo Smarty.class.php, você não precisa definir SMARTY_DIR, o Smarty irá encontrar por si só. Entretanto, se Smarty.class.php não estiver em seu include_path, ou você não indicar um caminho absoluto para ele em sua aplicação, então você deverá definir SMARTY_DIR manualmente. SMARTY_DIR deve incluir uma barra ao final.

Aqui está um exemplo de como você cria uma instância do Smarty em seus scripts PHP:

Example 2.2. Cria uma instância do Smarty

NOTE: Smarty has a capital 'S'
require_once('Smarty.class.php');
$smarty = new Smarty();
     

Tente rodar o script acima. Se você obtiver um erro dizendo que o arquivo Smarty.class.php não pôde ser encontrado, você tem que fazer uma das coisas a seguir:

Example 2.3. Definir a constante SMARTY_DIR manualmente

// *nix style (note capital 'S')
define('SMARTY_DIR', '/usr/local/lib/php/Smarty-v.e.r/libs/');

// windows style
define('SMARTY_DIR', 'c:/webroot/libs/Smarty-v.e.r/libs/');

// hack version example that works on both *nix and windows
// Smarty is assumend to be in 'includes/' dir under current script
define('SMARTY_DIR',str_replace("\\","/",getcwd()).'/includes/Smarty-v.e.r/libs/');

require_once(SMARTY_DIR . 'Smarty.class.php');
$smarty = new Smarty();
     

Example 2.4. Adicionar o diretório da biblioteca para o include_path do PHP

// Edite o seu arquivo php.ini, adicione o diretório da biblioteca do Smarty
// para o include_path e reinicie o servidor web.
// Então o código a seguir funcionaria:
require('Smarty.class.php');
$smarty = new Smarty;
     

Example 2.5. Defina a constante SMARTY_DIR manualmente

define('SMARTY_DIR','/usr/local/lib/php/Smarty/');
require(SMARTY_DIR.'Smarty.class.php');
$smarty = new Smarty;
     

Agora que os arquivos da biblioteca estão no lugar, é hora de configurar os diretórios do Smarty para a sua aplicação.

O Smarty necessita de quatro diretórios, que são chamados por padrão 'templates/', 'templates_c/', 'configs/' e 'cache/'.

Cada um deles pode ser definido pelas propriedades da classe Smarty $template_dir, $compile_dir, $config_dir, e $cache_dir repectivamente. É altamente recomendado que você configure um conjunto diferente destes diretórios para cada aplicação que for usar o Smarty.

Certifique-se que você sabe a localização do 'document root' do seu servidor web. Em nosso exemplo, o 'document root' é "/web/www.mydomain.com/docs/". Os diretórios do Smarty só são acessados pela biblioteca do Smarty e nunca acessados diretamente pelo navegador. Então para evitar qualquer preocupação com segurança, é recomendado colocar estes diretórios fora do document root.

Para o nosso exemplo de instalação, nós estaremos configurando o ambiente do Smarty para uma aplicação de livro de visitas. Nós escolhemos uma aplicação só para o propósito de uma convenção de nomeação de diretório. Você pode usar o mesmo ambiente para qualquer aplicação, apenas substitua "guestbook" com o nome de sua aplicação. Nós colocaremos nossos diretórios do Smarty dentro de "/web/www.mydomain.com/smarty/guestbook/".

Você precisará pelo menos de um arquivo dentro de seu 'document root', e que seja acessado pelo navegador. Nós chamamos nosso script de "index.php", e o colocamos em um subdiretório dentro do 'document root' chamado "/guestbook/".

Nota Técnica

É conveniente configurar o servidor web para que 'index.php' possa ser idendificado como o índice padrão do diretório, asssim se você acessar http://www.example.com/guestbook/, o script 'index.php' será executado sem adicionar 'index.php' na URL. No Apache você pode configurar isto adicioanando "index.php" ao final da sua configuração DirectoryIndex (separe cada item com um espaço.) como no exemplo de httpd.conf

DirectoryIndex index.htm index.html index.php index.php3 default.html index.cgi

Vamos dar uma olhada na estrutura de arquivos até agora:

Example 2.6. Exemplo de estrutura de arquivo


/usr/local/lib/php/Smarty-v.e.r/libs/Smarty.class.php
/usr/local/lib/php/Smarty-v.e.r/libs/Smarty_Compiler.class.php
/usr/local/lib/php/Smarty-v.e.r/libs/Config_File.class.php
/usr/local/lib/php/Smarty-v.e.r/libs/debug.tpl
/usr/local/lib/php/Smarty-v.e.r/libs/internals/*.php
/usr/local/lib/php/Smarty-v.e.r/libs/plugins/*.php

/web/www.example.com/smarty/guestbook/templates/
/web/www.example.com/smarty/guestbook/templates_c/
/web/www.example.com/smarty/guestbook/configs/
/web/www.example.com/smarty/guestbook/cache/

/web/www.example.com/docs/guestbook/index.php

     

O Smarty irá precisar de acesso de escrita (usuários de windows por favor ignorem) em $compile_dir e $cache_dir, então tenha certesa que o usuário do servidor web possa escrever. Este é geralmente o usuário "nobody" e o grupo "nobody" (ninguém). Para SO com X usuários, o usuário padrão é "www" e o grupo "www". Se você está usando Apache, você pode olhar em seu arquivo httpd.conf (normalmente em "/usr/local/apache/conf/") para ver qual o usuário e grupo estão sendo usados.

Example 2.7. Configurando permissões de arquivos


chown nobody:nobody /web/www.example.com/smarty/guestbook/templates_c/
chmod 770 /web/www.example.com/smarty/guestbook/templates_c/

chown nobody:nobody /web/www.example.com/smarty/guestbook/cache/
chmod 770 /web/www.example.com/smarty/guestbook/cache/

     

Nota Técnica

chmod 770 será a segurança correta suficientemente restrita, só permite ao usuário "nobody" e o grupo "nobody" acesso de leitura/escrita aos diretórios. Se você gostaria de abrir o acesso de leitura para qualquer um (na maioria das vezes para sua própria conveniência de querer ver estes arquivos), você pode usar o 775 ao invés do 770.

Nós precisamos criar o arquivo "index.tpl" que o Smarty vai ler. Ele estará localizado em seu $template_dir.

Example 2.8. Editando /web/www.example.com/smarty/guestbook/templates/index.tpl


{* Smarty *}

Ola! {$name}, bem vindo ao Smarty!
     

Nota Técnica

{* Smarty *} é um comentário de template. Ele não é exigido, mas é uma prática boa iniciar todos os seus arquivos de template com este com este comentário. Isto faz com que o arquivo seja reconhecido sem levar em consideração a sua extensão. Por exemplo, editores de texto poderiam reconhecer o arquivo e habilitar coloração de sintaxe especial.

Agora vamos editar 'index.php'. Nós vamos criar uma instancia do Smarty, assign(definir) uma variável do template e display (mostrar) o arquivo 'index.tpl'.

Example 2.9. Editando /web/www.example.com/docs/guestbook/index.php


<?php

// load Smarty library
require_once(SMARTY_DIR . 'Smarty.class.php');

$smarty = new Smarty();

$smarty->template_dir = '/web/www.example.com/smarty/guestbook/templates/';
$smarty->compile_dir = '/web/www.example.com/smarty/guestbook/templates_c/';
$smarty->config_dir = '/web/www.example.com/smarty/guestbook/configs/';
$smarty->cache_dir = '/web/www.example.com/smarty/guestbook/cache/';

$smarty->assign('name','Ned');

$smarty->display('index.tpl');
?>

     

Nota Técnica

No nosso exemplo, nós estamos definindo caminhos absolutor para todos os diretórios do Smarty. Se /web/www.example.com/smarty/guestbook/ estiver dentro do seu include_path do PHP, então estas definições não são necessárias. Entretando, é mais eficinte e (com experiência) causa menos erros definir como caminhos absolutos. Isto faz ter certeza que o Smarty esta lendo os arquivos dos diretórios que você quer.

Agora carregue o arquivo index.php em seu navegador. Você veria "Olá, Thomas! bem vindo ao Smarty"

Você completou a configuração básica para o Smarty!

Comments
No comments for this page.

Advertisement

Sponsors [info]

Sponsors