<?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>Newton Wagner &#187; code igniter</title>
	<atom:link href="http://www.newtonwagner.net/category/code-igniter/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.newtonwagner.net</link>
	<description>se desenvolvendo na web</description>
	<lastBuildDate>Mon, 21 Nov 2011 17:39:29 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Especializando Controllers no Code Igniter</title>
		<link>http://www.newtonwagner.net/especializando-controllers-no-code-igniter/</link>
		<comments>http://www.newtonwagner.net/especializando-controllers-no-code-igniter/#comments</comments>
		<pubDate>Mon, 11 Jun 2007 14:44:31 +0000</pubDate>
		<dc:creator>Newton Wagner</dc:creator>
				<category><![CDATA[code igniter]]></category>
		<category><![CDATA[frameworks]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.newtonwagner.net/blog/2007/06/11/especializando-controllers-no-code-igniter/</guid>
		<description><![CDATA[A algum tempo atrás eu expliquei aqui como estender a classe Controller no Code Igniter. Na época, eu não me atentei a um detalhe no guia do usuário do framework, que diz que não se deve estender a library Controller usando o load automático, salvando o arquivo na pasta application/libraries e usando o prefixo configurado. [...]]]></description>
			<content:encoded><![CDATA[<div style="height:66px;" class="really_simple_share robots-nocontent snap_nopreview"><div class="really_simple_share_facebook_like" style="width:50px;">
				<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.newtonwagner.net%2Fespecializando-controllers-no-code-igniter%2F&amp;layout=box_count&amp;show_faces=false&amp;width=50&amp;action=like&amp;colorscheme=light&amp;send=false&amp;height=60" 
						scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:50px; height:60px;" allowTransparency="true"></iframe>
				</div><div class="really_simple_share_google1" style="width:50px;">
					<g:plusone size="tall" href="http://www.newtonwagner.net/especializando-controllers-no-code-igniter/" ></g:plusone>
				</div><div class="really_simple_share_linkedin" style="width:px;">
					<script type="IN/Share" data-counter="top" data-url="http://www.newtonwagner.net/especializando-controllers-no-code-igniter/"></script>
				</div><div class="really_simple_share_twitter" style="width:50px;">
					<a href="http://twitter.com/share" class="twitter-share-button" data-count="vertical" 
						data-text="Especializando Controllers no Code Igniter" data-url="http://www.newtonwagner.net/especializando-controllers-no-code-igniter/" 
						data-via="" ></a> 
				</div></div>
		<div style="clear:both;"></div><p>A algum tempo atrás eu expliquei aqui como <a href="http://www.newtonwagner.net/blog/2006/12/15/code-igniter-estendendo-o-controller/">estender a classe Controller no Code Igniter</a>. Na época, eu não me atentei a um detalhe no guia do usuário do framework, que diz que não se deve estender a library Controller usando o load automático, salvando o arquivo na pasta application/libraries e usando o prefixo configurado.</p>
<p>A princípio pensei que era um problema no guia do usuário do CI, mas analisando com mais calma, de fato pode não ser bom estender o Controller dessa forma para incluir lógica aos seus controllers.</p>
<p>Imagine nosso sistema da forma analisada abaixo, onde temos 2 telas de cadastro e 1 relatório:</p>
<p style="text-align: center;"><img src='http://www.newtonwagner.net/wordpress/wp-content/uploads/2007/06/howtonotextendcci.gif' alt='howtonotextendcci.gif' /></p>
<p>Vejam que como usamos o MY_Controller pra adicionar a lógica de Cadastros, nosso Relatório ficou órfão de uma especialização que nos pouparia tempo de desenvolvimento, caso tenhamos que implementar outros relatórios.</p>
<p>Pra resolver este problema, podemos criar nossa especialização na pasta de controllers da aplicação (ao invés da libraries), e incluir este arquivo nas classes que vamos estender. As classes ficariam dessa forma:</p>
<p style="text-align: center;"><img src='http://www.newtonwagner.net/wordpress/wp-content/uploads/2007/06/howtoextendcci.gif' alt='howtoextendcci.gif' /></p>
<p>Dessa forma, podemos criar quantos tipos de controllers quisermos. Pra facilitar ainda mais o trabalho, você ainda pode implementar a <a href="http://www.newtonwagner.net/blog/2006/08/11/php-5-autoload-de-objetos/">função __autoload()</a> para não precisar ficar sempre incluindo a classe nos arquivos que for utilizar.</p>
<h3 class='related_post_title'>Artigos Relacionados:</h3>
<ul class='related_post'>
<li><a href='http://www.newtonwagner.net/lancada-a-primeira-versao-do-zend-framework/' title='Lançada a primeira versão do Zend Framework'>Lançada a primeira versão do Zend Framework</a></li>
<li><a href='http://www.newtonwagner.net/lancado-o-zend-framework-100-rc1/' title='Lançado o Zend Framework 1.0.0 RC1'>Lançado o Zend Framework 1.0.0 RC1</a></li>
<li><a href='http://www.newtonwagner.net/componentes-de-visualizacao-no-zend-framework/' title='Componentes de Visualização no Zend Framework'>Componentes de Visualização no Zend Framework</a></li>
<li><a href='http://www.newtonwagner.net/tutorial-do-zend-framework-em-portugues/' title='Tutorial do Zend Framework em Português'>Tutorial do Zend Framework em Português</a></li>
<li><a href='http://www.newtonwagner.net/visitando-o-zend-framework/' title='Visitando o Zend Framework'>Visitando o Zend Framework</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.newtonwagner.net/especializando-controllers-no-code-igniter/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

