<?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>Codepass Framework PHP</title>
	<atom:link href="http://framework.codepass.com.br/feed/" rel="self" type="application/rss+xml" />
	<link>http://framework.codepass.com.br</link>
	<description>Para facilitar seu desenvolvimento web</description>
	<lastBuildDate>Sat, 30 Jul 2011 19:15:50 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2</generator>
		<item>
		<title>Versão Atual</title>
		<link>http://framework.codepass.com.br/versao-atual/</link>
		<comments>http://framework.codepass.com.br/versao-atual/#comments</comments>
		<pubDate>Sat, 05 Feb 2011 11:00:04 +0000</pubDate>
		<dc:creator>Marco A. Braghim</dc:creator>
				<category><![CDATA[Destaque]]></category>
		<category><![CDATA[atual]]></category>
		<category><![CDATA[codepass]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[mvc]]></category>
		<category><![CDATA[new]]></category>
		<category><![CDATA[novidades]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[POO]]></category>
		<category><![CDATA[programacao]]></category>
		<category><![CDATA[singleton]]></category>
		<category><![CDATA[versao]]></category>

		<guid isPermaLink="false">http://framework.codepass.com.br/?p=84</guid>
		<description><![CDATA[Agora, um projeto que nasceu de uma pequena idéia, passa a ser uma grande implementação. Codepass Framework chegou a versão 1.0.3. A primeira versão estável, a versão das mudanças, das novidades, da estabilidade, da confiança. Revisamos tudo, corrigimos bugs, implementamos funcionalidades e etc. As mudanças foram drásticas, houve muita coisa alterada e nosso aplicativo está [...]]]></description>
			<content:encoded><![CDATA[<p>Agora, um projeto que nasceu de uma pequena idéia, passa a ser uma grande implementação. Codepass Framework chegou a versão 1.0.3. A primeira versão estável, a versão das mudanças, das novidades, da estabilidade, da confiança. Revisamos tudo, corrigimos bugs, implementamos funcionalidades e etc. As mudanças foram drásticas, houve muita coisa alterada e nosso aplicativo está mais completo e seguro do que nunca.</p>
<p>Participe você também do desenvolvimento de nosso framework, envie-nos suas sugestões, dicas, reclamações, relate bugs, faça parte! Estaremos esperando sua contribuição.</p>
<p>Entre em contato direto conosco! <strong>framework@codepass.com.br</strong></p>
<p>Forte abraço e sucesso sempre é o que deseja a equipe Codepass Framework.</p>
]]></content:encoded>
			<wfw:commentRss>http://framework.codepass.com.br/versao-atual/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Novidades</title>
		<link>http://framework.codepass.com.br/novidades/</link>
		<comments>http://framework.codepass.com.br/novidades/#comments</comments>
		<pubDate>Sat, 05 Feb 2011 10:42:21 +0000</pubDate>
		<dc:creator>Marco A. Braghim</dc:creator>
				<category><![CDATA[Destaque]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[new]]></category>
		<category><![CDATA[novidades]]></category>

		<guid isPermaLink="false">http://megshow.com.br/motore/?p=1</guid>
		<description><![CDATA[Você sabe o que é uma versão beta? Quando algum software está em uma versão de teste dizemos que esta é uma versão beta. Beta porque, de certa forma é uma versão secundária, uma versão lançada que ainda não tem caracteríscas para ser primária, finalizada. Nosso framework está em versão beta. Optamos por lançar uma [...]]]></description>
			<content:encoded><![CDATA[<p>Você sabe o que é uma versão beta?</p>
<p>Quando algum software está em uma versão de teste dizemos que esta é uma versão beta. Beta porque, de certa forma é uma versão secundária, uma versão lançada que ainda não tem caracteríscas para ser primária, finalizada. Nosso framework está em versão beta. Optamos por lançar uma versão 1.0 beta para que esta já vá se popularizando antes que hajam as implementações finais e os últimos ajustes.</p>
<p>Foram feitas grandes implementações para esta versão. Dentre elas está a classe Codepass_Configs que foi alterada e melhorada, agora você pode guardar vários dados dentro dela e recuperar em qualquer lugar de sua aplicação. Codepass_Session foi também uma grande mão na roda que preparamos para esta versão, com ela você verá uma grande facilidade em manipular sessões. Foi interessante também a criação da classe Codepass_Auth, criada para manipular login de usuário, que foi feita por um colaborador, Juan Biscaia, que viu o quanto poderia ser interessante desenvolver um módulo para um framework.</p>
<p>Enfim são muitas novidades, faça o download, experimente e ajude-nos a crescer! Deixem comments aí em baixo&#8230;</p>
<p>Forte abraço e sucesso!</p>
]]></content:encoded>
			<wfw:commentRss>http://framework.codepass.com.br/novidades/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Getting Started</title>
		<link>http://framework.codepass.com.br/getting-started/</link>
		<comments>http://framework.codepass.com.br/getting-started/#comments</comments>
		<pubDate>Sat, 24 Apr 2010 12:47:39 +0000</pubDate>
		<dc:creator>Marco A. Braghim</dc:creator>
				<category><![CDATA[Destaque]]></category>
		<category><![CDATA[atual]]></category>
		<category><![CDATA[codepass]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[mvc]]></category>
		<category><![CDATA[novidades]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[POO]]></category>

		<guid isPermaLink="false">http://megshow.com.br/motore/?p=15</guid>
		<description><![CDATA[Então vamos dar os primeiros passos com nosso framework, está empolgado? É melhor estar... Pelo caminho você vai notar várias e várias semelhanças entre Codepass Framework e Zend Framework. Isso é proposital e nos proporciona, amantes de Zend, uma agilidade a mais para aprender esse novo framework. O que acontece é que Zend é realmente um framework excelente, o que leva a não utilização dele em muitos casos é o fato dele ser muito pesado (cerca de 25Mb – Perfeito para grandes aplicativos), enquanto Codepass é extremamente leve.]]></description>
			<content:encoded><![CDATA[<div style="text-align: justify; color: #2A2A2A;">
<h2 style="text-align: center;">
					Aprendendo a Usar <span style="color: #0177C6;">Code</span>pass Framework<br />
				</h2>
<p>
					Então vamos dar os primeiros passos com nosso framework, está empolgado? É melhor estar&#8230; Pelo caminho você vai notar várias e várias semelhanças entre Codepass Framework e Zend Framework. Isso é proposital e nos proporciona, amantes de Zend, uma agilidade a mais para aprender esse novo framework. O que acontece é que Zend é realmente um framework excelente, o que leva a não utilização dele em muitos casos é o fato dele ser muito pesado (cerca de 25Mb – Perfeito para grandes aplicativos), enquanto Codepass é extremamente leve.
				</p>
<p>
					Ressalto o fato de que <strong>SEMELHANÇA não significa CÓPIA de código</strong>, mas se não confia em minhas humildes palavras, por gentileza abra os códigos Zend e confira by yourself!
				</p>
<p>
					Enfim, vamos ao que interessa&#8230; Nós realmente queremos facilitar o trabalho para você e para isso criamos o que chamamos de <em>BaseProject</em> que nada mais é do que um aplicativo pronto e sem conteúdo. <a href="http://sourceforge.net/projects/codepass/files/CPF_1.0.4_baseproject.zip/download" target="_blank">Clique Aqui</a> para baixar um <em>BaseProject</em> prontinho e com a versão mais nova de Codepass Framework.
				</p>
<p>
					Agora, se o que voce quer mesmo é aprender e entender como funciona a estrutura do negócio continue lendo&#8230;
				</p>
<h2 style="text-align: center;">Entendendo o Framework</h2>
<p>Este post é ENORME, utilize o índice!</p>
<ul>
<li><a href="#structure">Estrutura (pastas e arquivos)</a></li>
<li><a href="#htaccess">htaccess</a></li>
<li><a href="#index">O Arquivo index.php</a></li>
<li><a href="#applicationIni">O arquivo configs/application.ini</a></li>
<li><a href="#controllers">Controladores</a></li>
<li><a href="#models">Models</a></li>
<li><a href="#views">Views</a></li>
</ul>
<h2 id="structure" style="color: #0177C6;">Estrutura</h2>
<p>
					Bem, em primeiro lugar vamos organizar nossas pastas para alocar nossos arquivos. Você verá na sequência que pode alterar essa estrutura a sua necessidade, mas aí é seu critério&#8230;
				</p>
<div style="text-align: center; background color: white;">
					<img src="http://framework.codepass.com.br/wp-content/uploads/2010/02/1.jpg" title="Codepass Framework - Estrutura" alt="Codepass Framework - Estrutura"/>
				</div>
<p>
					Perceba na figura que o arquivo index.php se localiza dentro da pasta public, lhe pergunto meu querido amigo, porque? É muito simples, você vai apontar seu DocumentRoot para cá, ou seja, ninguém no mundo inteiro terá acesso a qualquer outro arquivo que não estiver dentro desta pasta. Se algum espertinho usar um comando do tipo wget para baixar pastas e arquivos desprotegidos baixará apenas o que está aqui, nada que comprometa seu aplicativo&#8230;				</p>
<p>
					- Ohhhh, é verdade! =O<br />
					<br />
					- Já havia pensado nisso? Pois é, o Zend sim! Boas idéias devem ser mantidas meu caro!<br />
					<br />
					Dentro desta pasta (public) você vai colocar todos os arquivos que são, como o próprio nome diz, públicos. Imagens, arquivos de flash, javascripts, stylesheets, enfim&#8230; Perfeito não? ^^<br />
					<br/><br />
					Uma observação interessante a se fazer é que as outras pastas de seu projeto realmente não poderão ser acessadas de forma alguma, mas com um detalhe, <strong>se você permitir em qualquer lugar de seu aplicativo o upload de arquivos PHP não há santo que proteja seu aplicativo, a menos que você tenha premeditado isso.</strong><br />
					<br />
					<span style="font-size: 16pt;"><strong>Fique esperto!</strong></span>
				</p>
<h2 id="htaccess" style="color: #0177C6;">htaccess</h2>
<pre>
public/.htaccess
--
# Esta linha permite acesso a qualquer um
allow from all

# Esta linha esta ativando o modo de sobrescrita
# de url (Url’s amigaveis, precisaremos delas)
RewriteEngine On

# Estamos definindo aqui que tudo que nao for
# arquivo deve-se sobrescrever e direcionar para
# o arquivo index.php
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
				</pre>
<p>
					Bem acho que dispensa comentários não é&#8230; Qualquer coisa pesquise sobre <strong>htaccess</strong> ou <strong>rewrite mod apache</strong> no Papai Google.
				</p>
<h2 id="index" style="color: #0177C6;">O Arquivo index.php</h2>
<p>
					- &#8220;Ok, ok&#8230; Eu já sei a estrutura que preciso, já sei configurar o arquivo .htaccess, mas meu aplicativo ainda nao funciona!&#8221;
				</p>
<p>
					É eu sei&#8230; =S Então vamos por a mão na massa&#8230;<br />
					<br/><br />
					Basicamente, o que você tem que fazer é instanciar a class Codepass_loader, setar as configurações iniciais e rodar seu aplicativo utilizando objeto <em>run</em>&#8230;
				</p>
<p>
					Rápido demais? Tudo bem, eu explico&#8230; Comece incluindo o arquivo Loader.php dentro da biblioteca Codepass e instanciando a classe Codepass_Loader no seu arquivo index.php:
				</p>
<p>public/index.php</p>
<pre name="code" class="php">
	include_once '../library/Codepass/Loader.php';

	$application = new Codepass_Loader();
				</pre>
<p>
					Agora utilize a função get_class_methods() do php para listar os métodos disponíveis na classe Codepass_Loader
				</p>
<p>public/index.php</p>
<pre name="code" class="php">
	include_once '../library/Codepass/Loader.php';

	$application = new Codepass_Loader();

	echo '&lt;pre&gt;';
	var_dump(get_class_methods($application));
				</pre>
<p>
					O resultado será:
				</p>
<pre name="code" class="php">
array(12) {
  [0]=> string(10) "setLibrary"
  [1]=> string(10) "getLibrary"
  [2]=> string(10) "setIniFile"
  [3]=> string(10) "getIniFile"
  [4]=> string(14) "setEnvironment"
  [5]=> string(14) "getEnvironment"
  [6]=> string(12) "setDbConfigs"
  [7]=> string(12) "getDbConfigs"
  [8]=> string(11) "startLayout"
  [9]=> string(17) "setSessionConfigs"
  [10]=> string(17) "getSessionConfigs"
  [11]=> string(3) "run"
}
				</pre>
<p>
					Bom, pelo menos na maioria dos casos acima dispensamos comentários neh!? Não? Então vamos dar uma breve explicação&#8230;
				</p>
<p>
					Para &#8220;dizer&#8221; ao aplicativo onde estão os arquivos Codepass e/ou outras bibliotecas de classes utilize setLibrary(&#8216;string&#8217;), para capturar devolta essa string utilize getLibrary(). Lembre-se que o padrão é &#8216;../library/&#8217;, portanto se você não alterar a estrutura do exemplo não precisará mexer aqui.
				</p>
<p>
					Utilize setIniFile(&#8216;string&#8217;) e getIniFile() para setar e capturar o arquivo de configurações principais. O padrão é &#8216;../configs/application.ini&#8217;, portanto se você não alterar a estrutura do exemplo não precisará mexer aqui.
				</p>
<p>
					setEnvironment(&#8216;string&#8217;) e getEnvironment() para setar e recuperar o	ambiente de desenvolvimento. Por padrão utilizamos a string &#8216;production&#8217;. Entenderemos melhor esse método quando formos configurar o arquivo <a href="#applicationIni">application.ini</a>
				</p>
<p>
					startLayout(&#8216;string&#8217;) é um objeto importantíssimo! É através dele que definimos ao aplicativo qual será o arquivo utilizado para layout geral do sistema&#8230; <strong>Quando este objeto não é setado o sistema não utiliza nenhum layout padrão</strong>. Setando ou não um layout padrão você pode alterá-lo na mão dentro de cada controlador, na ação ou no método init()
				</p>
<p>
					Vejamos então o objeto setSessionConfigs(array) &#8211; Todos os parâmetros do array são opcionais&#8230;
				</p>
<p>public/index.php</p>
<pre name="code" class="php">
$application->setSessionConfigs(
	array(
		// SEGUNDOS de duração das sessões do sistema
		'session_timelife' => 20,

		// Local onde salvar os arquivos de sessão
		'session_save_path' => '../arquivos/sessions/',

		// SEGUNDOS limite para login do usuário expirar
		'auth_expire' => 5
	)
);
				</pre>
<p>
					Caraca! Ta quase pronto, falta apenas explicar como setar as configurações de banco de dados e o objeto run()&#8230; =D
				</p>
<p>
					Muito bem, Codepass Framework trabalha com PHP PDO, ou seja, está preparado para interagir com qualquer tipo de base de dados sem problema nenhum<br />
					<br /> =O
				</p>
<p>
					Para configurar o método setDbConfigs(array $params, $driver = &#8216;PDO_MYSQL&#8217;) precisamos passar o array com as configurações (host, dbname, username, password, port) e o tipo de adaptador que queremos usar (PDO_MYSQL, PDO_DBLIB, PDO_FIREBIRD, PDO_IBM, PDO_INFORMIX, PDO_OCI, PDO_ODBC, PDO_PGSQL, PDO_SQLITE ou PDO_4D), por padrão PDO_MYSQL.
				</p>
<p>
					A seguir o código <strong>NÃO RECOMENDADO</strong> das configurações de banco de dados padrão do sistema.
				</p>
<p>public/index.php</p>
<pre name="code" class="php">
$application->setDbConfigs(
	array(
		'host' =>	'localhost',
		'dbname' =>	'meusite',
		'username' =>	'root',
		'password' =>	'',
		'port' => 3306
	),
	'PDO_MYSQL'
);
				</pre>
<p style="color: red;">
					<strong>Porquê esse código não é recomendado?</strong>
				</p>
<p>
					Em primeiro lugar pq ele vai ficar na pasta public&#8230; Senha numa pasta pública? Acho que não neh!?<br />
					<br />=/
				</p>
<p>
					Em segundo lugar porque você provavelmente vai usar seu aplicativo em outro ambiente (produção, homologação). Assim nesse caso teria que ficar alterando na mão a configuração do banco de dados&#8230;
				</p>
<p>
					Segue agora então o código <span style="color: #0177C6;"><strong>RECOMENDADO!</strong></span>
				</p>
<p>configs/database.ini</p>
<pre name="code" class="php">
[development]
driver = PDO_MYSQL
params.host = localhost
params.username = root
params.password =
params.dbname = mydbname
params.port = 3306

[production]
driver = PDO_MYSQL
params.host = localhost
params.username = root
params.password = mypwd
params.dbname = mydbname
params.port = 3306
				</pre>
<p>
					Note que temos uma chave &#8220;development&#8221; e uma chave &#8220;production&#8221;. Isso é o ambiente de execução que você setou acima, lembra? $application->setEnvironment(&#8216;production&#8217;) ou $application->setEnvironment(&#8216;development&#8217;)&#8230;
				</p>
<p>public/index.php</p>
<pre name="code" class="php">
// Primeiro vamos recuperar a instância da classe Codepass_Configs
// Esta classe tem o poder de armazenar conteudos de arquivos INI
// para serem recuperados em qualquer lugar do aplicativo
$configs = Codepass_Configs::getInstance();

// Adicionamos a ela uma configuração. Para isso basta darmos um nome
// a esta configuração e passarmos o caminho do arquivo onde
// se encontram
$configs->addConfig(
	array('DB' => '../configs/database.ini')
);

// Recuperamos as configurações de banco de dados de acordo com o
// ambiente de desenvolvimento
$db = $configs->getConfigs(
	array('DB', $configs->getEnvironment())
);

// Seta configurações recuperadas no objeto setDbConfigs()
$application->setDbConfigs($db['params'], $db['driver']);
				</pre>
<p>
					Lindo!! Agora é so rodarmos nosso aplicativo utilizando o método <strong>run</strong>! =D
				</p>
<p>
					É isso aí, agradecimentos a equipe técnica&#8230; O que? Não funcionou? Mas&#8230; Como?&#8230; Ahhh é claro, não configuramos os aquivos INI ainda, nem sabemos como fazer isso&#8230; &#8221;/ Ok, ok, suspende o lanche&#8230;
				</p>
<h2 id="applicationIni" style="color: #0177C6;">O arquivo configs/application.ini</h2>
<p>
					Ali em cima você pode notar que utilizamos um arquivo INI para setar as configurações de banco de dados de forma rápida e simples não é mesmo? Pois bem, vamos agora configurar o arquivo application.ini que é o arquivo que comanda a parada&#8230;
				</p>
<p>
					Nele, vamos setar as configurações de pastas de controladores, models, views e layouts além das configurações de erros do sistema de acordo com o ambiente de execução do aplicativo.
				</p>
<pre>
configs/application.ini
--
[paths]
application.controllers = "../application/controllers/"
application.models = "../application/models/"
application.views = "../application/views/scripts/"
layout.path = "../application/views/layouts/"

[development]
errors.reporting = E_ALL
errors.display = 1

[production]
errors.reporting = 0
errors.display = 0
				</pre>
<p>
					O índice &#8220;paths&#8221; dispensa comentários não é? São os caminhos para as camadas MVC e arquivos de layout.
				</p>
<p>
					A parte legal mesmo está um pouquinho mais para baixo, nos índices &#8220;development&#8221; e &#8220;production&#8221;. Esses meu caro, são os ambientes de execução de nosso aplicativo, que são setados através do objeto Codepass_Loader::setEnvironment(&#8216;string&#8217;) no arquivo public/index.php. Você pode criar quantos índices (ambientes) quiser, por exemplo, você pode ter um índice &#8220;homologacao&#8221; que será um ambiente o mais parecido possível com &#8220;production&#8221;, geralmente usado para teste ou para mostrar a um cliente etc&#8230;
				</p>
<p>
					Quando você estiver desenvolvendo seu aplicativo localmente deixará o environment setado como &#8216;development&#8217;, assim os erros do sistema, como setado no arquivo configs/application.ini, aparecerão na tela quando ocorrerem, mas quando for subir seu aplicativo, você setará como &#8216;production&#8217; e os erros ficarão invisíveis para o usuário.
				</p>
<p>
					Além do mais, como utilizamos um arquivo INI específico para banco de dados e também com índices de ambiente de desenvolvimento, Não precisaremos mudar online cada configuração do database, pois através do índice escolhido o próprio aplicativo usará o banco correto.
				</p>
<p>
					Prático não? =D
				</p>
<p>
					Ok, vamos agora rodar nosso aplicativo para ver se funciona!
				</p>
<pre>
Codepass_Exception' with message 'Wrong class name on file
../application/controllers/ErrorController.php, use ErrorController
				</pre>
<p>
					Ops, não configuramos os controladores ainda&#8230; =/
				</p>
<h2 id="controllers" style="color: #0177C6;">Controladores</h2>
<p>
					O primeiro controlador que precisamos configurar é o ErrorController, pois é ele quem gerenciará os erros do sistema como por exemplo um erro de página não encontrada 404. Esse controlador é padrão do sistema, ou seja, obrigatório! O sistema não funcionará sem ele! Alguém tem que fazer o trabalho sujo não é mesmo? =/
				</p>
<p>
					Antes de começarmos a escrever o código vamos entender o que são controladores&#8230; Controladores é uma camada MVC que faz a comunicação entre o banco de dados e os dados que serão exibidos na tela, mais ou menos da seguinte forma&#8230;
				</p>
<p>				<img src="http://framework.codepass.com.br/wp-content/uploads/2010/02/mvc.jpg" title="Estrutura MVC" alt="Estrutura MVC" /></p>
<p>
					O usuário envia um comando através da view para o controlador que vai tratar a &#8220;pergunta&#8221; e &#8220;pedir&#8221; do banco de dados a resposta através da model. Retorna para o controlador que trata esse resultado e então repassa para a view que transforma o dado de linguagem de máquina para algo legível para um ser humano. Simples!
				</p>
<p>
					Segue o básico para qualquer controlador
				</p>
<p>application/controllers/IndexController.php</p>
<pre name="code" class="php">
class IndexController extends Codepass_Controller_Settings
{
	/**
	 *	Este método é executado antes de qualquer ação
	 */
	public function init() {

	}

	/**
	 *	Esta ação é executada ao digitar
	 *	http://seusite.com.br/<strong>index/index</strong>
	 * 	ou nada porque o padrão é index tanto
	 *	para controladores quanto para ações
	 */
	public function indexAction() {

	}

	/**
	 *	Esta ação é executada ao digitar
	 *	http://seusite.com.br/index/test
	 */
	public function testAction() {

	}
}
				</pre>
<p>
					Quem está acostumado com Zend só precisa se ligar que a classe a quem o controlador extende é <strong>Codepass_Controller_Settings</strong>
				</p>
<p>
					Baixando o BaseProject você vai notar que já disponibilizamos um layout pronto para os erros do sistema.
				</p>
<h2 id="models" style="color: #0177C6;">Models</h2>
<p>
					Não vamos falar sobre elas, afinal para começar não precisamos usar models&#8230; =D
				</p>
<p>
					As models são para fazer relacionamento com banco de dados, mas para mostrar o framework funcinando não precisamos de banco de dados&#8230; ^^
				</p>
<h2 id="views" style="color: #0177C6;">Views</h2>
<p>
					Views&#8230; Ta aí um assunto bacana, simples e rápido&#8230;
				</p>
<p>
					As views são praticamente o html do aplicativo! Ou seja, depois que você tratar os dados no controlador esses têm que ter uma saída para o usuário que é o html. Tudo o que você através do objeto $this->view. Vou explicar de uma forma visual.
				</p>
<p>application/controllers/IndexController.php</p>
<pre name="code" class="php">
class IndexController extends Codepass_Controller_Settings
{
	public function init() {}

	public function indexAction() {
		$data = array(
			'value' => 'Dado que quero passar para a view'
		);

		$this->view->data = $data;
	}
}
				</pre>
<p>
					Fazendo isso, é só você recuperar na respectiva view (index/index.php)
				</p>
<p>application/views/scripts/index/index.php</p>
<pre name="code" class="php">
&lt;div&gt;
	&lt;?php echo $this->data['value']; ?&gt;
&lt;/div&gt;
				</pre>
<h2 style="color: #0177C6;">That&#8217;s all folks!</h2>
<p>
					É isso aí pessoal, agora já colocamos o framework para funcionar, usem e abusem, é muito importante para nós, do desenvolvimento, que você nos ajude reportando os bugs&#8230; Sácoméné!
				</p>
<p>
					Abraço a todos e não se esqueçam! Qualquer coisa é só mandar e-mail para <span style="color: #0177C6;">marco@codepass.com.br</span>&#8230; Flw! Vlw!
				</p>
</p></div>
]]></content:encoded>
			<wfw:commentRss>http://framework.codepass.com.br/getting-started/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

