Desenvolvimento - PHP
Aprenda PHP e torne-se um bom programador sem gastar quase nada - Revisado e atualizado
Veja aqui a maneira mais eficiente de aprender PHP do zero, e também tornar-se um bom programador da linguagem - tenha empresas atrás de você. E o melhor de tudo: sem gastar quase nada!
por Alfred Reinold BaudischProvavelmente uma das coisas mais difíceis e, digamos, chatas quando queremos aprender algo novo é achar o caminho para o qual devemos iniciar a caminhar. Falando mais claramente: por onde começar quando queremos iniciar algo novo? Quais as fontes que devo ir atrás? Qual livro devo ler? E assim vai... E, com certeza, isso afirma-se melhor quando tratamos de linguagem de programação. Vide os inúmeros livros e tutoriais que existem para cada linguagem, fica difícil escolher um para poder iniciar o estudo em certa linguagem.
Como já passei por isso várias vezes e como tinha muito tempo disponível (comecei com isso aos 13 anos), acabei criando um padrão de aprendizagem eficaz. Nesse artigo mostrarei exatamente o que fiz para aprender PHP. E, posso lhe dizer que é algo muito bom e que funciona. Você verá que terá empresas indo atrás de você, não você atrás delas.
Só que antes de ler esse artigo e querer realmente aprender PHP (ou qualquer linguagem de programação), você terá que ter:
1) Muita vontade. Esqueça que existe algo chamado "preguiça".
2) MUITA persistência. Não adianta tentar 1 ou 2 vezes e desistir caso não consiga. Tente infinitas vezes até achar, pois te garanto que na programação qualquer coisa é possível.
3) Contato com a linguagem, principalmente durante a aprendizagem, pelo menos 1 hora por dia. Ou o que for possível para você.
4) Para tudo nesse mundo capitalista você precisa de dinheiro. E aqui não seria diferente. Mas, no caso, você precisará de dinheiro apenas para a energia que irá gastar com seu PC ligado, conexão de internet e com alimentos, pois isso dá MUITA fome! (Risos)
Para facilitar a leitura, os itens "a se fazer" estão enumerados. Vamos lá!
O que fazer
1) Antes de iniciar seu aprendizado em qualquer linguagem WEB do lado do servidor, você deve saber HTML, principalmente a parte de tabelas e formulários. A minha recomendação é o manual oficial do HTML, com as especificações completas: http://www.w3.org/TR/html4/ (infelizmente não tem em português). Também recomendo: instalar um editor com destaque de sintaxe; entre em sites que contenham formulários, tabelas, etc.., vá em "Exibir Código Fonte" e cole esse código HTML no editor. Assim, observe o HTML da página e veja o que linha por linha faz, alterando e vendo o resultado. Em menos de 2 dias você saberá HTML caso "xerete" em vários sites.
Recomendo logo após aprender HTML, aprender as especificações do XHTML. Os novos conceitos de layout na web são baseados no XHTML + CSS, então, caso você queira estar atualizado para vagas de emprego, recomendo que estude a ambos.
http://www.w3.org/TR/xhtml1/
http://www.w3.org/TR/xhtml11/
http://www.w3.org/TR/REC-CSS2/
http://www.westciv.com/style_master/academy/css_tutorial/index.html
2) Antes de iniciar em qualquer linguagem de programação, você deve saber a lógica de programação. Para isso, existe essa excelente apostila: http://alfred.auriumsoft.com.br/aprendendo/logica.zip.
3) Instale o PHP em sua máquina. Assim, você poderá programar, testar e ver os resultados quase em tempo real. Escrevi um artigo completo sobre como instalar Apache + PHP + MySQL:
http://www.linhadecodigo.com.br/artigos.asp?id_ac=407
4) Instale um editor PHP com destaque de sintaxe. Um dos melhores gratuitos que existe é o PHP Editor (que também tem destaque de sintaxe para o HTML): http://www.phpeditor.kit.net
5) Sabendo HTML, lógica de programação, tendo um editor PHP instalado e o PHP rodando em seu PC, você já pode partir para o aprendizado do PHP! Primeiro, aprenda a sintaxe da linguagem, os tipos de dados, a orientação a objetos do PHP (vai por mim, é importante saber OOP). O melhor lugar para isso é o manual oficial: http://www.php.net/manual/pt_BR/preface.php
Recomendo que vá lendo e copiando os exemplos contidos no manual para o seu editor e os execute no seu PC. Não esqueça também de ir alterando os exemplos e ver o que sua alteração faz.
Leia até o capítulo 20, ignorando o capítulo sobre Instalação, visto que você já tem o PHP instalado. Achando que você já sabe o básico do PHP o suficiente, vá para o próximo passo.
6) Agora, um dos itens mais importantes desse artigo. O que lhe fará realmente aprender a linguagem e aprender técnicas e lógicas.
Acesse http://sourceforge.net/softwaremap/trove_list.php?form_cat=183 efetue o download do eGroupWare, phpMyAdmin, SugarCRM e o phpBB. Extraia todos para o Apache do seu PC. E rode primeiro o phpBB. De início, o phpBB mostra uma tela de instalação. Abra esse arquivo de instalação no editor PHP e analise linha por linha tentando entender o que as mesmas fazem. Execute o script para entender melhor. Após instalá-lo, o fórum aparecerá. Coloque para postar uma mensagem e envie. Após isso abra o arquivo que processa os posts (veja na linha de endereços do navegador) e veja como cada item foi enviado ao PHP, salvo no Banco de Dados e assim sucessivamente. Estude principalmente como os dados são recebidos dos formulários, processados e salvos no banco de dados. Com o phpBB você também poderá aprender completamente sobre sessões e sistemas de usuários.
Execute os demais programas por mim aqui citados. Faça o mesmo com todos: teste, observe o código, altere, veja o resultado e assim vai. Com o eGroupWare você aprenderá praticamente TUDO que o PHP é capaz de fazer e, principalmente, métodos de boa programação. Você verá em funcionamento: upload e manipulação de arquivos, sistemas de login e multiusuários, bancos de dados, manipulação de imagens e assim vai.
Posso lhe garantir: se você observar, alterar e testar cada linha desses scripts exaustivamente, em menos de alguns meses você se tornará um expert em PHP. Abaixo um exemplo de como seguir o que foi explicado nesse item.
7) Não pára por aí. Enquanto você vai estudando os scripts ou em TODO seu momento de programação em PHP, esteja SEMPRE com o manual do PHP aberto. Assim, caso você encontre uma função que você não conheça, esqueça parâmetros de uma função, etc..., digite no manual e aparecerá tudo sobre ela. Sabendo sobre ela.. você saberá como ela funciona realmente, já que ela estará num programa pronto (phpBB, por exemplo).
8) Todos os scripts que você achar, efetue o download, rode em seu computador, tente corrigir defeitos e adaptar novas funcionalidades. Mesmo se você nunca ir a usar isso novamente em sua vida, mas faz parte do aprendizado, você estará aprendendo coisas novas da linguagem ou treinando o que já foi visto.
9) Visite fóruns e listas de discussão e tente ajudar os outros o máximo possível, analisando e corrigindo os scripts deles. Você estará aprendendo mais.
10) Sempre leia artigos e tutoriais que você encontrar.
11) É isso. Não tem mais segredo. Como você pode ver, a comunidade Open-Source (Source Forge) é a maior responsável pelo melhor aprendizado de uma linguagem. Abaixo links com mais scripts e classes PHP para você estudar, bem como sites com artigos, etc.
Sites com Artigos, Tutoriais, Scripts, Sistemas Prontos
www.sourceforge.net (O mais completo de todos!)
www.linhadecodigo.com.br
www.phpkitchen.com
www.phpbuilder.com
www.superphp.com.br
www.hotscripts.com/PHP/index.html
www.phpclasses.org
www.phparena.net
www.programmersheaven.com/zone27/index.htm
http://php.resourceindex.com/
www.devarticles.com/c/b/PHP/
www.devshed.com/c/b/PHP/
www.wmonline.com.br/
Fóruns e Listas de Discussão
http://forums.devshed.com/f5/s (O melhor)
http://br.groups.yahoo.com/group/php-pt/
http://www.php.net/mailing-lists.php
Exemplo de como estudar algo que executa em um sistema pronto
Mostrarei nesse exemplo como você deve estudar o processamento de formulário executado no phpBB.
Execute o phpBB, selecione um fórum e clique em "New Topic". Aparecerá o formulário. Coloque para exibir o código fonte HTML e procure pelo formulário (não direi como, você tem que saber =) ). Ache o nome do textbox do "Subject" e "Message Body", no caso são: subject e message. Procure também pelos campos de formulário hidden. Você encontrará esse: . Ok, feito isso.. escreva qualquer coisa em ambos os campos e clique em Submit. Veja que a página que aparece na barra do navegador é a posting.php, ou seja, a mesma página que exibe o formulário também o processa.
Abra a posting.php no PHP Editor (ou no editor que você tenha instalado) e procure por subject (o nome do campo do formulário). Retornará uma vez. Busque novamente, até encontrar essa linha:
$subject = ( !empty($HTTP_POST_VARS["subject"]) ) ? trim($HTTP_POST_VARS["subject"]) : "";
$message = ( !empty($HTTP_POST_VARS["message"]) ) ? $HTTP_POST_VARS["message"] : "";
É nessas linhas que os dados por você digitado no formulário são recebidos e repassados para as variáveis $subject e $message. Veja que o phpBB ainda usa a antiga $HTTP_POST_VARS. Você deve usar $_POST Mas, isso é apenas um detalhe.
Sempre coloque esse tipo de validação em seus formulários como o phpBB faz.
Desça um pouco no código e verá que há uma chamada para a função prepare_post onde $subject e $message fazem parte da lista de parâmetros. Procure o arquivo que contém a declaração dessa função (olhe a lista de includes em posting.php até achar com essa função) e estude o que a mesma faz, após isso, retorne ao código e verá que a função submit_post (que processa o post - a função principal) também usa $subject e $message. Faça o mesmo, vá ao arquivo com a declaração da função e a estude. Após isso.. retorne para onde você parou e continue a estudar o processamento do formulário.
Considerações Finais
Espero ter ajudado e minhas sinceras desculpas se em algumas partes não fui muito claro, pois realmente esse foi um dos artigos mais difíceis que escrevi. Não pela falta de conteúdo de minha parte, mas é uma abordagem que nunca vi em outro lugar. É algo que fica difícil de se esclarecer em palavras, o melhor seria mostrando pessoalmente para cada um que tem interesse, mas isso fica inviável, por isso existem os artigos.
Caso você não tenha entendido algo, não hesite em perguntar, tentarei lhe responder no possível.
Atenciosamente,
Alfred Reinold Baudisch