<?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>JulioGreff.net &#187; Server-Side</title>
	<atom:link href="http://juliogreff.net/categoria/server-side/feed/" rel="self" type="application/rss+xml" />
	<link>http://juliogreff.net</link>
	<description>A mesma web, um novo estilo de desenvolvimento</description>
	<lastBuildDate>Sat, 07 May 2011 17:07:10 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Spaghetti* Framework Lançado!</title>
		<link>http://juliogreff.net/spaghetti-framework-lancado/</link>
		<comments>http://juliogreff.net/spaghetti-framework-lancado/#comments</comments>
		<pubDate>Sat, 03 Jan 2009 16:06:16 +0000</pubDate>
		<dc:creator>Julio Greff</dc:creator>
				<category><![CDATA[Server-Side]]></category>
		<category><![CDATA[Spaghetti*]]></category>
		<category><![CDATA[frameworks]]></category>
		<category><![CDATA[mvc]]></category>

		<guid isPermaLink="false">http://juliogreff.net/?p=351</guid>
		<description><![CDATA[O ano de 2009 chegou, e com ele trouxemos junto o Spaghetti* Framework 0.1, a primeira versão do nosso framework para PHP. Exatamente na virada do ano, o site do Spaghetti* foi liberado, assim como downloads, documentação, screencasts e tutoriais. E você, já deu uma passada por lá? Recepção Antes de tudo, gostaria de agradecer [...]

<h3>Posts Relacionados</h3><ul><li><a href='http://juliogreff.net/spaghetti-ate-mais-e-obrigado-pelos-peixes/' rel='bookmark' title='Permanent Link: Spaghetti* &#8211; Até mais, e obrigado pelos peixes'>Spaghetti* &#8211; Até mais, e obrigado pelos peixes</a></li>
<li><a href='http://juliogreff.net/forum-do-spaghetti/' rel='bookmark' title='Permanent Link: Fórum do Spaghetti*'>Fórum do Spaghetti*</a></li>
<li><a href='http://juliogreff.net/escolhendo-o-framework-certo/' rel='bookmark' title='Permanent Link: Escolhendo o Framework Certo'>Escolhendo o Framework Certo</a></li>
<li><a href='http://juliogreff.net/frameworks-por-um-php-menos-ruim/' rel='bookmark' title='Permanent Link: Frameworks: Por um PHP Menos Ruim'>Frameworks: Por um PHP Menos Ruim</a></li>
<li><a href='http://juliogreff.net/codecast-5-frameworks/' rel='bookmark' title='Permanent Link: CodeCast #5 &#8211; Frameworks'>CodeCast #5 &#8211; Frameworks</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p class="center"><img src="http://juliogreff.net/wp-uploads/spaghettilogo.gif" alt="Spaghetti* Framework" title="Spaghetti* Framework"/></p>
<p>O ano de 2009 chegou, e com ele trouxemos junto o <strong>Spaghetti* Framework 0.1</strong>, a primeira versão do nosso framework para PHP. Exatamente na virada do ano, o <a href="http://spaghettiphp.org" rel="external" title="Spaghetti* Framework">site do Spaghetti*</a> foi liberado, assim como <a href="http://spaghettiphp.org/download" rel="external" title="Download do Spaghetti*">downloads</a>, <a href="http://spaghettiphp.org/docs" rel="external" title="Documentação do Spaghetti*">documentação</a>, <a href="http://spaghettiphp.org/screencasts" rel="external" title="Screencasts do Spaghetti*">screencasts</a> e <a href="http://spaghettiphp.org/tutorials" rel="external" title="Tutoriais do Spaghetti*">tutoriais</a>. E você, já deu uma passada por lá?</p>
<h3>Recepção</h3>
<p>Antes de tudo, gostaria de agradecer muito a recepção que o Spaghetti* já vem tendo. Em apenas 3 dias de vida, já recebemos vários elogios, agradecimentos, twittadas e sugestões (críticas são muito bem aceitas, estamos esperando elas também!). Vários downloads foram feitos, os screencasts estão gastando uma banda considerável, e pelo jeito o pessoal anda gostando. Se você também gostou (ou não gostou), nos deixe saber! É só entrar em <a href="http://spaghettiphp.org/contact" rel="external" title="Entre em contato com a equipe do Spaghetti*">contato</a> direto com a gente.</p>
<h3>Documentação</h3>
<p>Pelo menos para mim, uma documentação razoável é um dos fatores chave para a adoção de uma nova ferramenta. Por isso, trabalhamos bastante em cima dessa parte, e o resultado é uma documentação que cobre boa parte do que o Spaghetti* faz. Gostamos tanto do resultado que até fizemos um <a href="http://downloads.spaghettiphp.org/books/spaghettiphp.pdf" rel="external" title="Documentação do Spaghetti* em PDF">PDF para download</a>. Quem me segue no <a href="http://twitter.com/juliogreff" rel="external" title="JulioGreff no Twitter">Twitter</a> deve ter notado o quanto falamos dessa documentação.</p>
<p>Além da própria documentação, fomos um pouco mais longe, e também já temos alguns screencasts e tutoriais, especialmente para o pessoal que já quer ver alguma coisa funcionando antes de colocar a mão na massa. Já estou devendo um screencast meu, abordando outros aspectos do framework, deve sair em breve. Ou pelo menos assim espero.</p>
<h3>O que já está por aí</h3>
<p>O Spaghetti* não foi criado em um laboratório fechado, baseado em hipóteses e teorias. Construímos ele em aplicações já em produção. Já existem vários projetos prontos, funcionando, com versões alfa e beta do Spaghetti*. Além disso, o <a href="http://rafaelmarin.net/" rel="external friend" title="RafaelMarin.net">Rafael</a> também criou uma aplicação super legal, uma <a href="http://apps.spaghettiphp.org/tasklist/" rel="external" title="Task List com Spaghetti*">lista de tarefas</a>. Toda a aplicação feita em menos de duas horas de trabalho. Divirta-se!</p>
<h3>E o que vem por aí</h3>
<p>Não estamos parados, e já estamos trabalhando para a próxima versão, programada para primeiro de maio, se tudo der certo. Fomos amadurecendo ainda mais a idéia, e vimos que muito ainda falta no Spaghetti*. Você deve ter sentido falta de suporte a vários bancos de dados, validação, além de vários outros detalhes no próprio core, helpers e componentes. Você pode nos acompanhar pelo <a href="http://trac.spaghettiphp.org" rel="external" title="Trac - Spaghetti*">Trac</a>, ou então pelo nosso <a href="http://twitter.com/spaghettiphp" rel="external" title="Twitter - Spaghetti*">Twitter</a>. Sinta-se livre para se cadastrar no Trac, submeter tickets, anexar sugestões de código, e nos ajudar a melhorar nosso framework.</p>
<p>Espero que o nosso trabalho possa tornar o seu mais fácil e mais divertido. Também espero que você possa usar o Spaghetti* em seus projetos, e adoraria ouvir qualquer coisa sobre a experiência. Assim que alguém já estiver usando o framework em algum projeto internet afora, farei questão de dizer isso aqui ou mesmo no site do Spaghetti*. Até mais!</p>


<h3>Posts Relacionados</h3><ul><li><a href='http://juliogreff.net/spaghetti-ate-mais-e-obrigado-pelos-peixes/' rel='bookmark' title='Permanent Link: Spaghetti* &#8211; Até mais, e obrigado pelos peixes'>Spaghetti* &#8211; Até mais, e obrigado pelos peixes</a></li>
<li><a href='http://juliogreff.net/forum-do-spaghetti/' rel='bookmark' title='Permanent Link: Fórum do Spaghetti*'>Fórum do Spaghetti*</a></li>
<li><a href='http://juliogreff.net/escolhendo-o-framework-certo/' rel='bookmark' title='Permanent Link: Escolhendo o Framework Certo'>Escolhendo o Framework Certo</a></li>
<li><a href='http://juliogreff.net/frameworks-por-um-php-menos-ruim/' rel='bookmark' title='Permanent Link: Frameworks: Por um PHP Menos Ruim'>Frameworks: Por um PHP Menos Ruim</a></li>
<li><a href='http://juliogreff.net/codecast-5-frameworks/' rel='bookmark' title='Permanent Link: CodeCast #5 &#8211; Frameworks'>CodeCast #5 &#8211; Frameworks</a></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://juliogreff.net/spaghetti-framework-lancado/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>Frameworks: Por um PHP Menos Ruim</title>
		<link>http://juliogreff.net/frameworks-por-um-php-menos-ruim/</link>
		<comments>http://juliogreff.net/frameworks-por-um-php-menos-ruim/#comments</comments>
		<pubDate>Sun, 15 Jun 2008 01:04:04 +0000</pubDate>
		<dc:creator>Julio Greff</dc:creator>
				<category><![CDATA[Destaques]]></category>
		<category><![CDATA[Server-Side]]></category>
		<category><![CDATA[frameworks]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://juliogreff.blog.br/?p=157</guid>
		<description><![CDATA[O PHP não é a linguagem mais &#8220;cool&#8221; para se desenvolver para web no momento. Outras linguagens estão tomando o posto por serem mais compatíveis com o ambiente web que temos hoje. Um dos fatores que mais influencia nessa &#8220;tomada de território&#8221; é a agilidade no desenvolvimento que, aliado aos frameworks dessas linguagens, tornam o [...]

<h3>Posts Relacionados</h3><ul><li><a href='http://juliogreff.net/codecast-5-frameworks/' rel='bookmark' title='Permanent Link: CodeCast #5 &#8211; Frameworks'>CodeCast #5 &#8211; Frameworks</a></li>
<li><a href='http://juliogreff.net/json-no-php/' rel='bookmark' title='Permanent Link: JSON no PHP'>JSON no PHP</a></li>
<li><a href='http://juliogreff.net/php-orientado-a-objeto/' rel='bookmark' title='Permanent Link: PHP Orientado a Objeto'>PHP Orientado a Objeto</a></li>
<li><a href='http://juliogreff.net/pense-mais-e-codifique-menos/' rel='bookmark' title='Permanent Link: Pense Mais e Codifique Menos'>Pense Mais e Codifique Menos</a></li>
<li><a href='http://juliogreff.net/por-que-projetos-morrem/' rel='bookmark' title='Permanent Link: Por que projetos &#8220;morrem&#8221;?'>Por que projetos &#8220;morrem&#8221;?</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p class="left">
<img src="http://juliogreff.net/wp-uploads/frameworks-por-um-php-menos-ruim.jpg" title="Frameworks - Por Um PHP Menos Ruim" alt="Frameworks - Por Um PHP Menos Ruim" />
</p>
<p>O PHP não é a linguagem mais &#8220;cool&#8221; para se desenvolver para web no momento. Outras linguagens estão tomando o posto por serem mais compatíveis com o ambiente web que temos hoje. Um dos fatores que mais influencia nessa &#8220;tomada de território&#8221; é a agilidade no desenvolvimento que, aliado aos frameworks dessas linguagens, tornam o PHP quase obsoleto. Há como manter o PHP a pelo menos um nível competitivo com essas linguagens?</p>
<p>Apesar de todos os seus defeitos, o PHP ainda é a linguagem mais usada no mercado, embora venha perdendo espaço para novas tecnologias, como Ruby e Python. Aliadas a poderosos frameworks, essas &#8220;novas&#8221; linguagens (Ruby e Python são muito mais antigas que você imagina) tornam o desenvolvimento muito mais rápido. Só com o PHP, raça e vontade nunca será possível alcançar tais níveis de produtividade. A solução é seguir a mesma idéia: adotar um framework.</p>
<p>Não culpo o PHP por ser uma linguagem bem mais lenta em termos de desenvolvimento, a culpa é dos próprios desenvolvedores. Eles geralmente escolhem o lado mais difícil da coisa, recriando toda a estrutura para cada novo sistema. Poucos se preocupam em pesquisar por novas soluções que resolvam seus problemas de maneira mais rápida e automatizada. Ruby e Python, apesar de serem linguagens mais ágeis em minha opinião, só se tornaram &#8220;modinha&#8221; após o aparecimento dos frameworks. Por que os programadores PHP não escolhem o mesmo caminho?</p>
<p>Apesar de estar migrando, agora passo a acreditar que o que realmente importe talvez não seja somente a linguagem, mas sim as ferramentas que nos auxiliam com elas (leia-se frameworks), além dos próprios programadores. Pra que sofrer? Provavelmente alguém com mais tempo e conhecimento já tenha criado uma solução para determinado problema, bem melhor do que você mesmo poderia fazer, sem tempo e às vezes sem tamanho conhecimento.</p>
<p>Confesso que nunca havia usado um framework para PHP, embora já tenha sentido necessidade. Sempre praguejava a cada sistema iniciado, mas mesmo assim desenvolvia minhas próprias soluções para tornar o desenvolvimento menos doloroso. Isso durou até um mês atrás, quando me vi diante de um sistema bem complexo a ser desenvolvido na agência onde trabalho. Sem um framework, levaríamos meses para acabar. A única solução foi a adoção de um framework para PHP. Agora, o desenvolvimento do sistema flui rapidamente, e de maneira bem menos dolorosa, chata e sem graça.</p>
<p>A solução escolhida por nós foi o <a href="http://cakephp.org" rel="external" title="CakePHP - The Rapid Development PHP Framework">CakePHP</a>, talvez o framework mais conhecido para PHP. Sem dúvida alguma, é uma ferramenta de grande poder na hora de desenvolver, principalmente na versão 1.2 (ainda beta, com documentação escassa até o momento, e que talvez dê algumas dores de cabeça até que esteja completa). Para mim, o tempo de desenvolver em PHP puro se encerrou para sempre.</p>
<p>Talvez você não goste tanto do Cake quanto eu, e prefira outras opções. Opções não faltam, há o <a href="http://codeigniter.com" rel="external" title="Code Igniter">Code Igniter</a>, o <a href="http://framework.zend.com" rel="external" title="Zend Framework">Zend</a>, o <a href="http://www.symfony-project.org" rel="external" title="Symfony">Symfony</a>, entre dezenas de outros. Não importa qual seja o framework, desde que ele traga um ambiente mais rápido e agradável para desenvolvimento. Pra falar bem a verdade, uma das maiores razões para eu ter escolhido um framework em lugar de criar minha própria biblioteca de funções foi a implementação de orientação a objetos nesses frameworks, que pra mim dão muito mais sentido à programação.</p>
<p>Para programadores de outras linguagens, o mesmo princípio se aplica: não importa qual solução se use, desde que ela traga benefícios. Me direcionei para PHP pois é onde mais trabalho no momento e, por ironia, a linguagem que menos gosto. Os frameworks foram algo que me fizeram tomar um pouco mais de gosto pela linguagem. E se você não utiliza nada para ajudar no desenvolvimento, está na hora de rever seus conceitos&#8230;</p>


<h3>Posts Relacionados</h3><ul><li><a href='http://juliogreff.net/codecast-5-frameworks/' rel='bookmark' title='Permanent Link: CodeCast #5 &#8211; Frameworks'>CodeCast #5 &#8211; Frameworks</a></li>
<li><a href='http://juliogreff.net/json-no-php/' rel='bookmark' title='Permanent Link: JSON no PHP'>JSON no PHP</a></li>
<li><a href='http://juliogreff.net/php-orientado-a-objeto/' rel='bookmark' title='Permanent Link: PHP Orientado a Objeto'>PHP Orientado a Objeto</a></li>
<li><a href='http://juliogreff.net/pense-mais-e-codifique-menos/' rel='bookmark' title='Permanent Link: Pense Mais e Codifique Menos'>Pense Mais e Codifique Menos</a></li>
<li><a href='http://juliogreff.net/por-que-projetos-morrem/' rel='bookmark' title='Permanent Link: Por que projetos &#8220;morrem&#8221;?'>Por que projetos &#8220;morrem&#8221;?</a></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://juliogreff.net/frameworks-por-um-php-menos-ruim/feed/</wfw:commentRss>
		<slash:comments>67</slash:comments>
		</item>
		<item>
		<title>JSON no PHP</title>
		<link>http://juliogreff.net/json-no-php/</link>
		<comments>http://juliogreff.net/json-no-php/#comments</comments>
		<pubDate>Fri, 29 Feb 2008 17:22:27 +0000</pubDate>
		<dc:creator>Julio Greff</dc:creator>
				<category><![CDATA[Server-Side]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[json]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://juliogreff.blog.br/135/</guid>
		<description><![CDATA[Não seria ótimo se pudéssemos importar nossos dados em JSON no PHP e tratá-los como no JavaScript? Pois é, a partir do PHP 5.2.0 já temos uma extensão para JSON incluída, e é dela que vou falar nesse post. Com o advento do Ajax, JSON se tornou um formato para intercâmbio de dados bem mais [...]

<h3>Posts Relacionados</h3><ul><li><a href='http://juliogreff.net/php-orientado-a-objeto/' rel='bookmark' title='Permanent Link: PHP Orientado a Objeto'>PHP Orientado a Objeto</a></li>
<li><a href='http://juliogreff.net/json-valido/' rel='bookmark' title='Permanent Link: JSON Válido'>JSON Válido</a></li>
<li><a href='http://juliogreff.net/cookies-em-json/' rel='bookmark' title='Permanent Link: Cookies em JSON'>Cookies em JSON</a></li>
<li><a href='http://juliogreff.net/javascript-object-notation/' rel='bookmark' title='Permanent Link: JavaScript Object Notation'>JavaScript Object Notation</a></li>
<li><a href='http://juliogreff.net/frameworks-por-um-php-menos-ruim/' rel='bookmark' title='Permanent Link: Frameworks: Por um PHP Menos Ruim'>Frameworks: Por um PHP Menos Ruim</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p class="left"><img src="http://juliogreff.net/wp-uploads/json-plus-php.png" alt="JSON com PHP" title="JSON com PHP" /></p>
<p>Não seria ótimo se pudéssemos importar nossos dados em JSON no PHP e tratá-los como no JavaScript? Pois é, a partir do PHP 5.2.0 já temos uma extensão para JSON incluída, e é dela que vou falar nesse post.</p>
<p>Com o advento do Ajax, JSON se tornou um formato para intercâmbio de dados bem mais eficiente e compacto que XML. E nada como tratá-lo como um objeto também no lado do servidor, assim como fazemos no JavaScript. As duas funções que tratam da conversão objeto-string e string-objeto no PHP são <code>json_encode</code> e <code>json_decode</code>, respectivamente.</p>
<h3>Objeto para String</h3>
<p>Quem já não amaldiçoou o PHP transformando manualmente um array em uma string JSON? É uma tarefa fácil, mas extremamente chata, principalmente se precisarmos usar recursão. A função <code>json_encode</code> faz todo o trabalho sujo pra você. Basta passar o array contendo os dados como parâmetro.</p>
<pre><code>$json = array("user" =&gt; "JulioGreff", "action" =&gt; "status", "text" =&gt; "online");
echo json_encode($json);</code></pre>
<p>Além de simples arrays como esse, podemos fazer algo mais complexo, com arrays dentro de arrays, em vários níveis.</p>
<pre><code>$json = array("group" =&gt; "Web", "action" =&gt; "list");
$json["list"] = array("JavaScript", "Ajax", "WebStandards");
$json["users"] = array(array("name" =&gt; "JulioGreff", "status" =&gt; "online"));
echo json_encode($json);</code></pre>
<p>No exemplo, além do sub-membro também coloquei um array comum, criado certinho. Adeus, <code>foreach</code>!</p>
<h3>String para Objeto</h3>
<p>Essa era uma parte complicada, transformar uma string recebida em um objeto, para podermos trabalhar. Com a função <code>json_decode</code> virou moleza.</p>
<pre><code>$json = '{"user_id": 5, "action": "post", "text": "JSON no PHP"}';
$json = json_decode($json);
echo $json-&gt;action; // "post"
echo $json-&gt;text; // "JSON no PHP"</code></pre>
<p>Veja que estamos usando um objeto, e não um array, por isso usamos o <code>-&gt;</code> (equivalente ao ponto em JavaScript). Para que a função retorne um array, passamos um segundo parâmetro (booleano) indicando se o objeto deve ser transformado em um array (<code>true</code>) ou não.</p>
<pre><code>$json = '{"user_id": 5, "action": "post", "text": "JSON no PHP"}';
$json = json_decode($json, true);
echo $json["action"]; // "post"
echo $json["text"]; // "JSON no PHP"</code></pre>
<h3>JSON Válido</h3>
<p><a href="http://juliogreff.net/json-valido/" title="JSON Válido">Lembre-se sempre das aspas no JSON!</a> Caso contrário, <code>json_decode</code> não irá funcionar. As aspas são necessárias em todas as strings, inclusive as chaves.</p>
<p>Também é necessário observar a codificação das strings para a função <code>json_encode</code>, pois a função só funciona com UTF-8.</p>
<p>Vou ficando por aqui. Até a próxima!</p>


<h3>Posts Relacionados</h3><ul><li><a href='http://juliogreff.net/php-orientado-a-objeto/' rel='bookmark' title='Permanent Link: PHP Orientado a Objeto'>PHP Orientado a Objeto</a></li>
<li><a href='http://juliogreff.net/json-valido/' rel='bookmark' title='Permanent Link: JSON Válido'>JSON Válido</a></li>
<li><a href='http://juliogreff.net/cookies-em-json/' rel='bookmark' title='Permanent Link: Cookies em JSON'>Cookies em JSON</a></li>
<li><a href='http://juliogreff.net/javascript-object-notation/' rel='bookmark' title='Permanent Link: JavaScript Object Notation'>JavaScript Object Notation</a></li>
<li><a href='http://juliogreff.net/frameworks-por-um-php-menos-ruim/' rel='bookmark' title='Permanent Link: Frameworks: Por um PHP Menos Ruim'>Frameworks: Por um PHP Menos Ruim</a></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://juliogreff.net/json-no-php/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Desenvolver com Rails não tem graça&#8230;</title>
		<link>http://juliogreff.net/desenvolver-com-rails-nao-tem-graca/</link>
		<comments>http://juliogreff.net/desenvolver-com-rails-nao-tem-graca/#comments</comments>
		<pubDate>Mon, 28 May 2007 22:09:08 +0000</pubDate>
		<dc:creator>Julio Greff</dc:creator>
				<category><![CDATA[Server-Side]]></category>
		<category><![CDATA[filosofia]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://www.juliogreff.blog.br/desenvolver-com-rails-nao-tem-graca/</guid>
		<description><![CDATA[Ontem, depois de uma longa luta para fazer a instalação, comecei a brincar no Rails. Comecei lendo o tutorial &#8220;Rails para Sua Diversão e Lucro&#8220;, de Ronaldo Melo Ferraz (desculpem, perdi o linklink arrumado, valeu Rafael). Lê aqui, codifica um pouco ali, exclui lá, modifica sei lá onde&#8230; Tudo, menei lá onde&#8230; Tudo, menos um [...]

<h3>Posts Relacionados</h3><ul><li><a href='http://juliogreff.net/nao-validou-e-agora/' rel='bookmark' title='Permanent Link: Não validou. E agora?'>Não validou. E agora?</a></li>
<li><a href='http://juliogreff.net/diz-que-ate-nao-e-um-mau-blog/' rel='bookmark' title='Permanent Link: Diz que até não é … um mau blog'>Diz que até não é … um mau blog</a></li>
<li><a href='http://juliogreff.net/backup-um-salvador-de-vidas/' rel='bookmark' title='Permanent Link: Backup: Um Salvador de Vidas'>Backup: Um Salvador de Vidas</a></li>
<li><a href='http://juliogreff.net/comodismo-vs-inovacao/' rel='bookmark' title='Permanent Link: Comodismo vs. Inovação'>Comodismo vs. Inovação</a></li>
<li><a href='http://juliogreff.net/codecast-5-frameworks/' rel='bookmark' title='Permanent Link: CodeCast #5 &#8211; Frameworks'>CodeCast #5 &#8211; Frameworks</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p>Ontem, depois de uma longa luta para fazer a instalação, comecei a brincar no <a href="http://www.rubyonrails.org" rel="external" title="Ruby on Rails">Rails</a>. Comecei lendo o tutorial &#8220;<a href="http://kb.reflectivesurface.com/br/tutoriais/railsDiversaoLucro/" rel="external" title="Rails para Sua Diversão e Lucro">Rails para Sua Diversão e Lucro</a>&#8220;, de Ronaldo Melo Ferraz (<del datetime="2007-05-30T22:21:55+00:00">desculpem, perdi o link</del>link arrumado, valeu Rafael). Lê aqui, codifica um pouco ali, exclui lá, modifica sei lá onde&#8230; Tudo, menei lá onde&#8230; Tudo, menos um simples processo: criar arquivos. Pelo menos foi só esse que notei.</p>
<p>Avançando um pouco mais no tutorial, resolvi começar uma aplicação de teste, seguindo aquilo que eu já havia aprendido. A coisa mais sem graça que poderia existir, acreditem. Por quê? Não tem aquela emoção, sabe&#8230;</p>
<p>Você não precisa criar arquivos (o Rails faz boa parte do trabalho a partir dos geradores), até o momento não vi uma única linha de SQL (é possível usar, segundo o tutorial, mas ainda não vi necessidade), todas as operações no banco de dados são extremamente simples, não precisei nem especificar URLs para os arquivos. Por isso não tem graça, o Rails faz tudo sozinho! Eu quase nem programei!</p>
<p>Agora, falando sério. Gostei do Rails, gostei mesmo. Um framework muito bem pensado e bem feito, tudo automatizado, pouca configuração. Até a programação quase não existe pra fazer coisas mais simples (como minha <acronym title="Aplicação de Testes">apliteste</acronym>). Feito para Ruby, o Rails permite a você se concentrar na parte criativa da programação, e cuida do trabalho pesado. Com apenas algumas horas de trabalho já tenho uma aplicação quase pronta (pra testes, claro), incluindo o layout, que pode ser desenvolvido ao mesmo tempo que a programação sem problemas, pelo menos para mim.</p>
<p>Amigos programadores, recomendo uma olhada no Rails. Dê uma chance a ele, e você vai dizer &#8220;Como não experimentei isso antes?&#8221;. Palavra de alguém que nunca pensou em abandonar o PHP, até porque pra abandonar uma coisa você tem que se aplicar nela, o que não foi o meu caso.</p>
<p><strong>Observação:</strong> tenho um conhecimento mínimo de Rails, e resolvi compartilhar minhas primeiras impressões. Se falei alguma bobagem, me desculpem, e se possível avise nos comentários.</p>


<h3>Posts Relacionados</h3><ul><li><a href='http://juliogreff.net/nao-validou-e-agora/' rel='bookmark' title='Permanent Link: Não validou. E agora?'>Não validou. E agora?</a></li>
<li><a href='http://juliogreff.net/diz-que-ate-nao-e-um-mau-blog/' rel='bookmark' title='Permanent Link: Diz que até não é … um mau blog'>Diz que até não é … um mau blog</a></li>
<li><a href='http://juliogreff.net/backup-um-salvador-de-vidas/' rel='bookmark' title='Permanent Link: Backup: Um Salvador de Vidas'>Backup: Um Salvador de Vidas</a></li>
<li><a href='http://juliogreff.net/comodismo-vs-inovacao/' rel='bookmark' title='Permanent Link: Comodismo vs. Inovação'>Comodismo vs. Inovação</a></li>
<li><a href='http://juliogreff.net/codecast-5-frameworks/' rel='bookmark' title='Permanent Link: CodeCast #5 &#8211; Frameworks'>CodeCast #5 &#8211; Frameworks</a></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://juliogreff.net/desenvolver-com-rails-nao-tem-graca/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>PHP Orientado a Objeto</title>
		<link>http://juliogreff.net/php-orientado-a-objeto/</link>
		<comments>http://juliogreff.net/php-orientado-a-objeto/#comments</comments>
		<pubDate>Wed, 27 Sep 2006 22:27:21 +0000</pubDate>
		<dc:creator>Julio Greff</dc:creator>
				<category><![CDATA[Server-Side]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[poo]]></category>

		<guid isPermaLink="false">http://www.juliogreff.blog.br/?p=11</guid>
		<description><![CDATA[Desde que escrevi esse artigo, aprendi muito sobre programação orientada a objetos. Sugiro que não use esse post como referência. Se desejar, &#8220;JavaScript Orientado a Objetos&#8221; é uma fonte mais correta e atualizada sobre POO. Eu sei que PHP é um tanto fora do contexto do blog, mas pra quem tiver a fim, fica aí [...]

<h3>Posts Relacionados</h3><ul><li><a href='http://juliogreff.net/javascript-orientado-a-objetos-parte-1/' rel='bookmark' title='Permanent Link: JavaScript Orientado a Objetos &#8211; Parte 1'>JavaScript Orientado a Objetos &#8211; Parte 1</a></li>
<li><a href='http://juliogreff.net/javascript-orientado-a-objetos-parte-2/' rel='bookmark' title='Permanent Link: JavaScript Orientado a Objetos &#8211; Parte 2'>JavaScript Orientado a Objetos &#8211; Parte 2</a></li>
<li><a href='http://juliogreff.net/javascript-orientado-a-objetos-parte-3/' rel='bookmark' title='Permanent Link: JavaScript Orientado a Objetos &#8211; Parte 3'>JavaScript Orientado a Objetos &#8211; Parte 3</a></li>
<li><a href='http://juliogreff.net/json-no-php/' rel='bookmark' title='Permanent Link: JSON no PHP'>JSON no PHP</a></li>
<li><a href='http://juliogreff.net/frameworks-por-um-php-menos-ruim/' rel='bookmark' title='Permanent Link: Frameworks: Por um PHP Menos Ruim'>Frameworks: Por um PHP Menos Ruim</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p class="post-hint">Desde que escrevi esse artigo, aprendi muito sobre programação orientada a objetos. Sugiro que não use esse post como referência. Se desejar, &#8220;<a href="http://juliogreff.net/javascript-orientado-a-objetos-parte-1/" title="JavaScript Orientado a Objetos - Parte 1">JavaScript Orientado a Objetos</a>&#8221; é uma fonte mais correta e atualizada sobre POO.</p>
<p>Eu sei que PHP é um tanto fora do contexto do blog, mas pra quem tiver a fim, fica aí a dica. E os conceitos servem também pra <a href="http://juliogreff.net/javascript-orientado-a-objetos-parte-1/" title="JavaScript Orientado a Objetos - Parte 1">JavaScript Orientado a Objeto</a>.</p>
<h3>Que diabos é Programação Orientada a Objeto?</h3>
<p>A Orientação a Objetos é uma maneira de programar que modela os processos de programação de uma maneira próxima a realidade, tratando cada componente de uma aplicação (script) como um objeto,  com suas características e funcionalidades.</p>
<p>Nada impede que se programe dessa maneira na versão 4 do PHP, mas a versão 5 reescreveu o tratamento de objetos, permitindo mais recursos, performance e vantagens no uso deste tipo de programação.</p>
<h3>Classes e Objetos</h3>
<p>Classe é a estrutura fundamental para a criação de um objeto. Uma classe é um conjunto organizado de variáveis (propriedades ou atributos) e métodos (funções), que será utilizada como um novo tipo e instanciará um objeto. Uma classe tem por objetivo criar um objeto, que é uma representação desta classe em uma variável.</p>
<p>Vamos utilizar a seguinte classe:</p>
<pre><code>&lt;?php
// Classe dog
class dog {
	public $nome;
	public $humor;
	function setNome( $nome )
	{
		$this-&gt;nome = $nome;
	}
	function setHumor( $humor )
	{
		$this-&gt;humor = $humor;
	}
	function falar()
	{
		echo $this-&gt;nome . ' está ' . $this-&gt;humor . ' e disse: AUAU!';
	}
}
?&gt;</code></pre>
<p>Aí criamos uma classe que instanciará um objeto, no nosso caso, um cachorro. Ela tem duas propriedades (<code>$nome</code> e <code>$humor</code>), e três métodos (<code>setNome($nome)</code>, <code>setHumor($humor)</code> e <code>falar()</code>). Agora, criando um objeto a partir dessa classe, vamos ver o que podemos fazer com ela:</p>
<pre><code>$cachorro = new dog; // Instanciamos o objeto "cachorro"
$cachorro-&gt;setNome( "Rex" ); // Setamos $cachorro-&gt;nome;
$cachorro-&gt;setHumor( "feliz" ); // Setamos $cachorro-&gt;humor;
$cachorro-&gt;falar(); // Chamamos o método $cachorro-&gt;falar();</code></pre>
<p>Como você deve ter visto, instanciamos um objeto utilizando o operador <code>new</code>. Para utilizarmos as propriedades e métodos da classe, devemos utilizar o operador <code>-&gt;</code>, como vimos acima.</p>
<h3>A variável $this</h3>
<p>Na definição da classe, podemos usar a variável <code>$this</code>, que é o próprio objeto. Quando uma classe é instanciada em um objeto, e utilizamos a variável <code>$this</code>, essa variável se refere ao objeto que estamos utilizando.</p>
<h3>Herança</h3>
<p>Herança é uma forma de reutilização de código em que novas classes são criadas a partir de classes já existentes, herdando atributos e métodos, e incluindo outros que sejam de necessidade. Vamos extender nossa classe <code>dog</code>, suportando também raças.</p>
<pre><code>class raca extends dog
{
	public $raca;
	function setRaca( $raca )
	{
		$this-&gt;raca = $raca;
	}
	function falar()
	{
		echo $this-&gt;nome . ' é da raça ' . $this-&gt;raca . ' e disse: AUAU!';
	}
}</code></pre>
<p>A classe <code>raca</code>, acima, herdou todas as propriedades e métodos da sua classe pai, <code>dog</code>. Além disso, foi adicionado um método <code>setRaca($raca)</code>, e o método <code>falar()</code> foi modificado. Usando sub-classes, é possível redefinir métodos e propriedades, e acrescentar outros, dependendo das necessidades.</p>
<p>Espero que tenha dado uma boa base. Logo entraremos em JavaScript também&#8230;</p>


<h3>Posts Relacionados</h3><ul><li><a href='http://juliogreff.net/javascript-orientado-a-objetos-parte-1/' rel='bookmark' title='Permanent Link: JavaScript Orientado a Objetos &#8211; Parte 1'>JavaScript Orientado a Objetos &#8211; Parte 1</a></li>
<li><a href='http://juliogreff.net/javascript-orientado-a-objetos-parte-2/' rel='bookmark' title='Permanent Link: JavaScript Orientado a Objetos &#8211; Parte 2'>JavaScript Orientado a Objetos &#8211; Parte 2</a></li>
<li><a href='http://juliogreff.net/javascript-orientado-a-objetos-parte-3/' rel='bookmark' title='Permanent Link: JavaScript Orientado a Objetos &#8211; Parte 3'>JavaScript Orientado a Objetos &#8211; Parte 3</a></li>
<li><a href='http://juliogreff.net/json-no-php/' rel='bookmark' title='Permanent Link: JSON no PHP'>JSON no PHP</a></li>
<li><a href='http://juliogreff.net/frameworks-por-um-php-menos-ruim/' rel='bookmark' title='Permanent Link: Frameworks: Por um PHP Menos Ruim'>Frameworks: Por um PHP Menos Ruim</a></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://juliogreff.net/php-orientado-a-objeto/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
		</item>
	</channel>
</rss>

