Qual é uma boa maneira de me familiarizar com o PHP, proveniente de um segundo plano do ASP.NET? [fechadas]


10

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.


5
Por que você acha que não conhecer o PHP é uma deficiência que você precisa corrigir? O conhecimento de Rails, Django, J2EE, node.js, etc. não é uma deficiência que você precisa corrigir? Existe uma demanda real para você conhecer e usar o PHP em sua atual linha de trabalho?
Raynos

11
@Raynos Bem a popularidade do PHP é maior do que os trilhos, Django, Node.js combinado ...
yannis

Por que (não uma chama) você quer melhorar com o PHP? É para aprender a se desenvolver em um ambiente mais dinâmico, interpretado ou mais, apenas porque há muito por aí?
Sbrenton

11
@Raynos - participação de mercado. As probabilidades de algum conhecimento sobre o php ser útil para comparar soluções, avaliar um problema, ajudar um amigo etc. são mais altas do que os exemplos que você listou. Não tenho vontade de me afastar do asp.net, portanto, conhecer o "melhor" ambiente alternativo é menos útil do que conhecer o mais popular.
Eric

11
Entre no MVC3 que poderia ser um bom primeiro passo #
Daniel Little

Respostas:


7

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.


2

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.


Eu tenho um link para os livros php do Sitepoint na minha resposta, todos eles são excelentes. Você poderia expandir um pouco sua resposta para nos contar o peculiar issues when developing large scale applicationsque você identificou? Como você tem um background .net como op, seria útil saber o que as pessoas .net acham que é peculiar sobre php.
yannis

OK Yannis, um dos problemas para mim foi o modo como o PHP não é estritamente orientado a objetos, ele tinha todos os tipos de funções na forma processual e orientada a objetos e demorou um tempo para se acostumar a vir de uma linguagem tão organizada não apenas em apenas classes, mas todos esses espaços de nome e tudo mais.
Tsega

Hmmm, isso é uma questão geral, não apenas 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.
precisa

11
Em termos de abordagens, a maioria dos desenvolvedores do ASP.NET costuma usar controles personalizados (componentes - que são uma combinação de controles HTML com Javascript e código do lado do servidor) para desenvolver seus aplicativos "de grande escala" (intensivos em dados). Isso se deve principalmente ao fato de a maioria dos desenvolvedores do ASP.NET ter migrado para o desenvolvimento da Web a partir do desenvolvimento de aplicativos de desktop usando quase as mesmas ferramentas. Portanto, a maioria procura maneiras de traduzir suas habilidades já adquiridas de trabalhar com controles personalizados para se adequar ao desenvolvimento da web.
Tsega

Um IDE muito bom para obter com este livro é o Netbeans . A depuração do PHP é tão boa quanto possível.
Tsega
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.