<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Tales Augusto &#187; Bootstrap</title>
	<atom:link href="http://www.talesaugusto.com.br/tag/bootstrap/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.talesaugusto.com.br</link>
	<description>Integrando PHP e Javascript</description>
	<lastBuildDate>Thu, 07 Jan 2010 02:05:23 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Bootstrapping Zend Framework 1.8</title>
		<link>http://www.talesaugusto.com.br/bootstrapping-new-zend-framework/</link>
		<comments>http://www.talesaugusto.com.br/bootstrapping-new-zend-framework/#comments</comments>
		<pubDate>Fri, 22 May 2009 19:34:12 +0000</pubDate>
		<dc:creator>Tales</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[Bootstrap]]></category>

		<guid isPermaLink="false">http://www.talesaugusto.com.br/?p=78</guid>
		<description><![CDATA[A nova versão do Zend Framework (1.8) permite fazer as configurações principais da aplicação de uma maneira diferente das outras versões. Até a versão 1.7 não existia um padrão de bootstrapping e cada um fazia do jeito que achar melhor. Acredito que para incentivar os desenvolvedores a seguir um padrão de bootstrapping, a Zend criou [...]]]></description>
			<content:encoded><![CDATA[<p>A nova versão do Zend Framework (1.8) permite fazer as configurações principais da aplicação de uma maneira diferente das outras versões. Até a versão 1.7 não existia um padrão de bootstrapping e cada um fazia do jeito que achar melhor. Acredito que para incentivar os desenvolvedores a seguir um padrão de bootstrapping, a Zend criou classes de inicialização &#8211; bem práticas, por sinal &#8211; que auxiliam nas configurações necessárias do projeto.</p>
<p>Neste post mostrarei como é feito as principais configurações (View, Modulos, IncludePath e etc&#8230;) utilizando a nova versão do poderoso Zend Framework 1.8. Para isso, criarei um novo projeto no eclipse chamado <strong>Tests</strong> no localhost.</p>
<p><span id="more-78"></span>A primeira coisa a ser feita é criar as pastas e arquivos do projeto, como segue a imagem a baixo:</p>
<p style="text-align: center;"><img class="alignnone size-full wp-image-84" title="post-zend-181" src="http://www.talesaugusto.com.br/wp-content/uploads/2009/05/post-zend-181.jpg" alt="post-zend-181" width="240" height="346" /></p>
<p style="text-align: left;">Esta é a estrutura que gosto de usar, mas como o ZF é bem flexível, você pode organizar da maneira que achar mais conveniente. Neste caso, para acessar a aplicação, a url seria: <a href="http://localhost/Tests/httpdocs" target="_blank">http://localhost/Tests/httpdocs.</a></p>
<p style="text-align: left;">Criado os diretórios colocaremos &#8220;conteúdo&#8221; nos arquivos para iniciar a aplicação. O primeiro arquivo arquivo a ser editado é o <strong>.htaccess</strong> que reescreve as url&#8217;s de modo que todo acesso ao projeto seja redirecionado para o arquivo <strong>index.php</strong>.</p>
<pre class="brush: plain;">
SetEnv APPLICATION_ENV development

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
</pre>
<p>Neste momento, qualquer acesso à url <a href="http://localhost/Tests" target="_blank">http://localhost/Tests/httpdocs/</a> será redirecionado para o arquivo index.php. Para testar, digite qualquer coisa depois de httpdocs. Se não der erro de página não encontrada, é porque você está no caminho certo. <img src='http://www.talesaugusto.com.br/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>O próximo passo é criar o arquivo index.php que definirá o ambiente que o a aplicação será rodada.</p>
<pre class="brush: php;">
&lt;?php

/**
* Define o diretorio onde a aplicacao esta rodando.
* Se não tiver definido anteriormente, define usando realpath(dirname(__FILE__) . '/../application').
* O resultado será C:\&lt;caminho_para_localhost&gt;\Tests\application
*/
defined('APPLICATION_PATH') || define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application') . DIRECTORY_SEPARATOR);

/**
* Define o ambiente da aplicacao.
* Assume 'production' como ambiente padrao se a variavel APPLICATION_ENV nao tiver sido setada
*/
defined('APPLICATION_ENV') || define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'production'));

//Zend_Application
require_once 'Zend/Application.php';

/**
* Cria uma instancia de Zend_Application passando o ambiente e o caminho para o arquivo de configuracoes.
* Este componente irá automatizar algumas configurações definidas no config.ini
*/
$application = new Zend_Application(
APPLICATION_ENV,
APPLICATION_PATH . 'config/config.ini'
);

//Faz as configuraçoes basicas (Views, Layout, DB, ...)
$application-&gt;bootstrap();

//Inicia efetivamente a aplicacao. Neste momento é dado o dispatch para instanciar os controllers e chamar os actions
$application-&gt;run();
</pre>
<blockquote>
<p style="text-align: left;">Para setar variáveis de ambiente no Windows basta pressionar as teclas Window+Pause para a abrir a janela de propriedades do computador. Vá na guia Advanced/Avançado clica botão Environment Variables/Variáveis de Ambiente. Na próxima tela, acrescente a variável APPLICATION_ENV no grupo de System Variables/Variáveis de Sistema com o valor &#8216;<strong>development</strong>&#8216;. Para não perder o costume, <span style="text-decoration: line-through;">reinicie o computador</span>. Uma alternativa seria setar a variável no .htaccess, igual ao citado anteriormente.</p>
</blockquote>
<p style="text-align: left;">Agora teremos que criar a classe Bootstrap para iniciar as configurações básicas. Por padrão, o ZF consegue configurar algumas coisas como conexão com banco, diretorios dos modulos/controllers e etc apenas lendo o config.ini. Eu prefiro colocar no config.ini tudo aquilo que varia de ambiente para ambiente, configurando o restante na classe Bootstrap.</p>
<p style="text-align: left;">Um dos grandes benefícios desta classe é a inteligência para chamar os métodos de inicialização. Todo método iniciado por <strong>_init</strong> da classe Zend_Application_Bootstrap_Bootstrap será chamado, assim fica mais organizado o bootstrap onde cada método configura somente uma parte do projeto. No exemplo abaixo, criei somente o método <strong>_initFrontController</strong> para informar ao dispatcher onde está as pastas com os módulos. Nos próximos posts, mostrarei outras configurações como BD, View, IncludePath e etcs&#8230;.</p>
<pre class="brush: php;">

&lt;?php

class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
/**

* Configura o objeto FrontControoler.     *
* @return Zend_Controller_Front
*/
protected function _initFrontController()
{
$front = Zend_Controller_Front::getInstance();
$front
-&gt;addModuleDirectory(APPLICATION_PATH . 'modules')
-&gt;setDefaultModule('default');

return $front;
}
}
</pre>
<p style="text-align: left;">Para o exemplo, defini a pasta modules como o diretorio que conterá todos os modulos do projeto. O Zend automaticamente lê cada diretório de &#8216;modules&#8217; como sendo um módulo do projeto.</p>
<p style="text-align: left;">Agora criaremos os controller, actions e views para fazer a renderização. Edite o arquivo IndexController.php e implemente a classe IndexController como abaixo:</p>
<p style="text-align: left;">
<pre class="brush: php;">

class IndexController extends Zend_Controller_Action
{
/**
* Irá renderizar o arquivo view/scripts/index/index.phtml
*
*/
public function indexAction()
{

}
}
</pre>
<p style="text-align: left;">Código do script index.phtml</p>
<p style="text-align: left;">
<pre class="brush: php;">

&lt;h3&gt;Hello World&lt;/h3&gt;
</pre>
<p style="text-align: left;">Neste momento, ao acessar <a href="http://" target="_blank">http://localhost/Tests/httpdocs</a>, você deverá ver uma página com o texto <strong>Hello World</strong>. No próximo post, mostrarei como configurar o banco de dados e o Zend_Layout, ótimo componente para utilização do MVC.</p>
<p style="text-align: left;">Abraços.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.talesaugusto.com.br/bootstrapping-new-zend-framework/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
	</channel>
</rss>
