<?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>UZED &#187; ZEDDEMO</title>
	<atom:link href="http://uzed.com.br/category/informatica/php/zend-framework/zeddemo/feed/" rel="self" type="application/rss+xml" />
	<link>http://uzed.com.br</link>
	<description>Informação Livre!</description>
	<lastBuildDate>Wed, 14 Jul 2010 06:03:16 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>EX001 &#8211; Como usar Zend_Db_Table Relationships</title>
		<link>http://uzed.com.br/ex001-como-usar-zend_db_table-relationships/</link>
		<comments>http://uzed.com.br/ex001-como-usar-zend_db_table-relationships/#comments</comments>
		<pubDate>Thu, 16 Aug 2007 00:54:48 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[ZEDDEMO]]></category>
		<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[Zend_Db_Table]]></category>

		<guid isPermaLink="false">http://uzed.com.br/zed/?p=20</guid>
		<description><![CDATA[Introdução O conceito básico do relacionamento entre os objetos de dados (objetos extendidos de Zend_Db_Table_Abstract) é o cascateamento de operações como SELECT, UPDATE e DELETE . Consulte: Zend_Db_Table Zend_Db_Table Relationships Objetivo Criar um setor de uma empresa, que possa ter vários funcionários relacionados com ele (um para muitos). Condições Quando selecionar o setor, mostrar os [...]]]></description>
			<content:encoded><![CDATA[<h3>Introdução</h3>
<p>
O conceito básico do relacionamento entre os objetos de dados (objetos extendidos de Zend_Db_Table_Abstract)<br />
é o cascateamento de operações como SELECT, UPDATE e DELETE .
</p>
<p><strong>Consulte:</strong></p>
<ul>
<li><a href="http://framework.zend.com/manual/en/zend.db.table.html">Zend_Db_Table</a></li>
<li><a href="http://framework.zend.com/manual/en/zend.db.table.relationships.html">Zend_Db_Table Relationships</a></li>
</ul>
<p></p>
<h3>Objetivo</h3>
<p>
Criar um setor de uma empresa, que possa ter vários funcionários relacionados com ele (um para muitos).
</p>
<p></p>
<h3>Condições</h3>
<p>
Quando selecionar o setor, mostrar os seus funcionários, sem usar SELECT em tb_funcionarios, tentar usar o relacionamento para apresenta-los.<br />
Quando um setor for apagado, fazer com que o sistema apague todos os funcionários ralacionados.
</p>
<p></p>
<h3>Solução</h3>
<h4>Relacionamento</h4>
<p>Primeiro iremos criar as referências entre as objetos de dados chamados DoSetor e DoFuncionario.
</p>
<p>
Na classe DoSetor inserimos a sua dependencia com o DoFuncionario, usando o parametro $_dependentTables.
</p>
<pre lang="PHP" line="1" >
class DoSetor extends Zend_Db_Table_Abstract
{
	protected $_name = "tb_setor";

	protected $_primary = "cd_setor";

	protected $_dependentTables = array('DoFuncionario');
}
</pre>
<h4>arquivo: DoSetor.php</h4>
<p></p>
<p>
Na classe DoFuncionario use o parametro $_referenceMap, passando um array com o nome da referencia as colunas(no caso cd_setor)  e as operações permitidas (onDelete e onUpdate como self::CASCADE).
</p>
<pre lang="PHP" line="1"  >
class DoFuncionario extends Zend_Db_Table_Abstract
{
	protected $_name = "tb_funcionario";

	protected $_primary = "cd_funcionario";

	protected $_referenceMap    = array(
			'DoSetor' => array(
				'columns'           => array('cd_setor'),
				'refTableClass'     => 'DoSetor',
				'refColumns'        => array('cd_setor'),
				'onDelete'          => self::CASCADE,
				'onUpdate'          => self::CASCADE
				)
			);
}
</pre>
<h4>arquivo: DoFuncionario.php</h4>
<p></p>
<h4>Exibição dos Dados</h4>
<p>
Quando a consulta é pelo o objeto dependente usa-se <em>doObjeto->FindParentRow(&#8220;nome_obj_relacao&#8221;)</em>, no nosso caso seleciona-se o<br />
Funcionário e depois procura-se o seu Setor.<br />
Quando é o objeto que possue dependentes usa-se <em>doObjeto->findDoObjeto_Dependente</em>, no nosso caso coloa-se o Funcionário<br />
como parametro na chamada do método.
</p>
<pre lang="PHP" line="1" >
echo "Listando por Cliente:";
$funcionario = $doFuncionario->fetchAll();
foreach($funcionario as $currentFuncionario)
{
    $setor = $currentFuncionario->FindParentRow("DoSetor");

    echo "{$currentFuncionario->nm_funcionario} - {$setor->nm_setor}\n";
}

echo "Listando por Setor:";
$setor= $doSetor->fetchAll();
foreach($setor as $currentSetor)
{
    $funcionario = $currentSetor->findDoFuncionario();

    foreach($funcionario as $currentFuncionario)
    {
        echo "{$currentSetor->nm_setor} - {$currentFuncionario->nm_funcionario}\n";
    }
}
</pre>
<h4>arquivo Ex0001Controller.php</h4>
<h3>Excluindo Registro</h3>
<p>
Ao apagar um setor, apaga-se todos os funcionários relacionados.
</p>
<pre lang="PHP" line="1" >
echo "Apagando setor: Financeiro.";
$setor = $doSetor->find($cd_setor);
$setor = $setor->current();
$setor->delete();
</pre>
<h4>arquivo Ex0001Controller.php</h4>
<h3>Conclusão</h3>
<p>
A vantagem de usar este tipo de dependência é o fato de não se preocupar com a integridade dos dados, e dexando a responsabilidade para o ZF.<br />
Quando ocorrerem relacionamentos mais complexos, estas referências facilitam a implementação das regras de negócio.</p>
]]></content:encoded>
			<wfw:commentRss>http://uzed.com.br/ex001-como-usar-zend_db_table-relationships/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Instalação do ZEDDEMO v0.1</title>
		<link>http://uzed.com.br/instalacao-do-zeddemo-v01/</link>
		<comments>http://uzed.com.br/instalacao-do-zeddemo-v01/#comments</comments>
		<pubDate>Thu, 16 Aug 2007 00:10:52 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[ZEDDEMO]]></category>
		<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[Apache]]></category>

		<guid isPermaLink="false">http://uzed.com.br/zed/?p=19</guid>
		<description><![CDATA[Estes exemplos visam a demosntrações práticas de objetos e metodologias usados no Zend Framework (de acordo com meus estudos). Ã‰ exigido um nÃ­vel intermediário em PHP e iniciante em Zend Framework e uma boa noção de programação Orientada a Objeto. Caso você não tenha tais conhecimentos, use ferramentas de busca, tutorias, fórums listas etc, para [...]]]></description>
			<content:encoded><![CDATA[<p>Estes exemplos visam a demosntrações práticas de objetos e metodologias usados no Zend Framework (de acordo com meus estudos).</p>
<p>Ã‰ exigido um nÃ­vel intermediário em PHP e iniciante em Zend Framework e uma boa noção de programação Orientada a Objeto. Caso você não tenha tais conhecimentos, use ferramentas de busca, tutorias, fórums listas etc, para manter-se atualizado.</p>
<p>Exemplos:</p>
<ul>
<li><a href="http://uzed.com.br/zed/?p=20">Exemplo 0001</a> (Como usar Zend_Db_Table Relationships)</li>
</ul>
<p></p>
<h3>Arquivo</h3>
<p><a href="http://www.uzed.com.br/zeddemo/zeddemo_v0.1.tar.bz2">zeddemo_v0.1.tar.bz2</a></p>
<p>Desconpacte o arquivo zeddemo_vXXX.tar.bzip2 na sua pasta de hosts (para windows use o <a href="http://sourceforge.net/projects/sevenzip/">7Zip</a>)</p>
<p>ex. /var/www/zeddemo/www (no Linux).</p>
<p></p>
<h3>CONFIGURANDO APACHE</h3>
<p>Verifique se o mod_rewrite esta habilitado no seu APACHE, caso nao esteja, procure na sua ferramenta de pesquisa como que instala.<br />
Primeiramente crie o host no seu APACHE.</p>
<pre>
&lt;VirtualHost *>
    ServerName zeddemo.meudominio.com
    DocumentRoot /var/www/zeddemo/html
&lt;/VirtualHost>
</pre>
<p>Edite o arquivo hosts (/etc/hosts no Linux) adicionando:</p>
<p>127.0.0.1       zeddemo.meudominio.com</p>
<p></p>
<h3>CONFIGURANDO MYSQL</h3>
<p>Crie um usuário e senha no seu banco de dados:<br />
usuário: zeddemo<br />
senha: zeddemo</p>
<p>No diretório suport temos o arquivo db_demo.sql que é a base de dados aonde irei colocar os exemplos que mexem com base de dados.</p>
<p>Use o seguinte comando para importar diretamente a base:</p>
<pre style="overflow: auto;">
linux:/var/www/zeddemo/www/suport# mysql -u zeddemo --password=zeddemo < db_demo.sql
</pre>
<p>Ou use a ferramenta que achar conveniente para importar o arquivo db_demo.sql.</p>
<p></p>
<h3>Baixando o ZF</h3>
<p>Acesse a página http://framework.zend.com/download .<br />
E baixe a última versão do ZendFramework</p>
<p>Descompacte o arquivo e copie a pasta ZendFrameworkXXXX/library/Zend<br />
para a sua estrutura /var/www/zeddemo/library .</p>
<p></p>
<h3>DIVIRTA-SE</h3>
<p>Espero estar contribuindo para o aumento do seu conhecimento e quem sabe trocar algumas idéias.<br />
Que você seja promovido a Diretor e lembre de mim quando abrir uma oportunidade ^^ .</p>
<p>Qualquer dúvida entre em contato com o mantedor deste código.</p>
<p>Alexandre F. Martins - uzedmaster@gmail.com<br />
<a href="http://www.uzed.com.br/zed">http://www.uzed.com.br/zed</a>
</pre>
]]></content:encoded>
			<wfw:commentRss>http://uzed.com.br/instalacao-do-zeddemo-v01/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
