Atualmente, estou muito confortável com a criação de ferramentas / aplicativos da Web em um ambiente ASP.NET. Eu realmente não estou querendo deixar tbh, como eu realmente gosto de C #, ASP.NET, MVC 3, Visual Studio, etc.
No entanto, agora não sei quase nada sobre PHP e isso parece uma deficiência que eu gostaria de corrigir.
Existem livros (ou outros métodos de aprendizagem) que seriam um bom recurso para aprender PHP? Obviamente, existem muitos livros PHP para iniciantes, mas já me sinto confortável com grande parte do que está envolvido na construção de uma página da Web e interessado em focar no próprio PHP, que pode não ser compatível com o escopo de alguns livros PHP iniciantes.
Analisei bastante o Manual do PHP e ele não parece fluir da maneira mais suave possível. Existe um livro PHP inicial que seria apropriado? Sinto falta da coesão que a maioria dos livros contém ao examinar essas amostras. Há muitas informações a mais, mas parece mais uma referência durante a codificação do que um veículo de aprendizado primário.
Respostas:
O melhor recurso disponível para aprender PHP é o manual do PHP . É extremamente bem escrito e bem estruturado, e é um dos maiores ativos da comunidade PHP. Se você está confiante com o ASP.net, o manual é suficiente para você começar.
Antes de começar a ler, você deve configurar uma pilha PHP. Você pode instalar o Apache, PHP e seu banco de dados favorito (o SQLServer é bom) sozinho (é extremamente fácil) ou pode configurar uma pilha pronta como o XAMPP . O XAMPP instalará:
tudo de uma só vez (mais algumas outras coisas). Uma biblioteca importante que está faltando é o phpUnit , que obviamente o ajudará no teste de unidade.
Então você deve instalar um IDE, suas escolhas óbvias são Eclipse Classic com o PHP Development Tools (PDT) ou Netbeans para PHP . Existem muitos outros, mas eu recomendo esses dois. Eu uso os dois, se você não pode escolher entre eles, o Netbeans é um pouco mais fácil de entender, mas você deve realmente avaliar os dois e decidir por si mesmo qual é o melhor para você - eu não trabalhei com o Visual Studio em há muito tempo e eu realmente não sei qual IDE pode parecer mais familiar para você.
Quando você retomar o básico do manual, comece a pensar em uma estrutura MVC. Mais uma vez, vou recomendar dois:
O Zend Framework é a besta e o CodeIgniter é a beleza, se você me permitir uma metáfora boba. O Zend Framework possui uma curva de aprendizado acentuada, é apoiado pelo Zend (a empresa por trás do PHP ) e você pode fazer quase tudo com ele. O CodeIgniter é muito mais fácil de entender, possui boa documentação para iniciantes e é bastante popular. Mas a maior parte de sua base de código é uma porcaria desatualizada, como costumavam suportar o PHP4 não faz muito tempo.
Para um iniciante, a escolha óbvia é o CodeIgniter, mas não fique preso a ele. Use-o como uma ferramenta de aprendizado e vá para o Zend Framework o mais rápido possível. Novamente, existem muito mais estruturas MVC no mundo PHP, mas essas duas são as que eu recomendo.
Quanto aos livros, um ótimo livro para iniciantes é o PHP Objects, Patterns and Practice . Sitepoint 's livros de PHP são sempre uma delícia de ler. Se você se apaixonar pelo PHP, considere realmente uma assinatura do PHP Architect .
Por fim, confira esta ótima discussão sobre razões puramente técnicas para o PHP como primeira escolha .
Atualização: mais alguns recursos on-line, destinados principalmente a não iniciantes:
e se, por algum motivo estranho, você quiser brincar com o PHP no IIS em vez do Apache, um bom ponto de partida é o PHP da Microsoft no Windows . O PHP no IIS funciona e é uma opção válida, especialmente para um desenvolvedor de .Net, mas você realmente deve usar o Apache (e MySQL ou PostgreSQL em vez de SQLServer) para obter a experiência completa em PHP e também garantir que suas habilidades sejam portáteis para qualquer outro popular OS. Você não quer perder a alegria que é mod_rewrite .
Nota pessoal: Há muito ódio flutuando pelo PHP, alguns deles são justificados . Se você decidir fazer isso, deve ser extremamente crítico com os vários recursos, scripts e bibliotecas do PHP que encontrará ao longo do caminho, há muita porcaria por aí e é impossível para um iniciante saber a diferença. A vasta popularidade do PHP pode ser traduzida para uma comunidade muito grande e útil, grande capacidade de comercialização de suas habilidades, milhões e milhões de blogs, mas também pode ser traduzida para alguns milhares de terabytes de código ruim.
fonte
Yannis tem muitas coisas boas a dizer, mas eu li, Construa seu próprio site orientado a bancos de dados, 4ª edição , e estava cheio de tudo o que eu precisava saber para começar o caminho certo para o desenvolvimento de aplicativos Web profissionais em PHP.
Eu também estava trabalhando exclusivamente no .NET antes de começar a trabalhar com PHP. O PHP é muito mais fácil de trabalhar, mas tem alguns problemas peculiares ao desenvolver aplicativos de grande escala, e este livro o ajuda a começar.
Um problema para mim foi que o PHP não é estritamente uma linguagem orientada a objetos. Ele tem todos os tipos de funções na forma procedural e orientada a objetos e leva um tempo para se acostumar, vindo de uma linguagem onde tudo é organizado em classes e espaços de nomes.
Outro foi a facilidade com que você pode misturar tudo no PHP, tornando as coisas muito mais difíceis. No .NET, as ferramentas que você usa, como o Visual Studio, o orientam a praticar realmente bons padrões de codificação, fazendo parte do trabalho para você. Normalmente, uma página .aspx tem sua marcação HTML e código C # separados em dois arquivos.
Se você é um usuário pesado de ferramentas .NET e prefere trabalhar com controles do ASP.NET, outro problema é esse: a falta de controles (GridView etc.) no PHP. Eu sei que existem muitas bibliotecas / estruturas que oferecem algo semelhante, mas elas não fazem exatamente parte do pacote PHP básico.
Outro problema para mim foi como, no PHP, há um uso intenso de Arrays e Hashes, que servem mais como coleções no .NET. Eles estão por toda parte e seria bom se acostumar ao fato de que matrizes não são apenas uma lista ordenada do mesmo tipo de objetos / unidades escalares. Eles podem servir como objetos de coleção para abrigar todo tipo de coisas.
Eu posso continuar, mas mencionar uma das principais coisas que achei muito peculiar ao PHP (não sei, também pode ser comum em outras linguagens), é com que frequência as funções "include" (e relacionadas) são usadas tão comumente. Posso dizer que o livro do Sitepoint pode ajudá-lo a acompanhar tudo isso.
fonte
peculiar issues when developing large scale applications
que você identificou? Como você tem um background .net como op, seria útil saber o que as pessoas .net acham que é peculiar sobre php.when developing large scale applications
. Enfim, eu estava pensando mais em questões conceituais e de abordagem, como o PHP adota uma abordagem completamente diferente da .Net em questões de escala, algo assim. Eu tenho muito pouca experiência com .Net, então eu estaria interessado em descobrir o que as pessoas .Net acham conceitualmente peculiar quando se trata de PHP. Mas coisas como o fato de o PHP ser multi-paradigma são esperadas, é claro.