Actualmente, me siento muy cómodo con la creación de herramientas / aplicaciones web en un entorno ASP.NET. Realmente no estoy buscando dejar tbh, ya que realmente me gusta C #, ASP.NET, MVC 3, Visual Studio, etc.
Sin embargo, en este momento no sé casi nada sobre PHP y eso parece una deficiencia que me gustaría corregir.
¿Hay algún libro (u otro método de aprendizaje) que sea un buen recurso para aprender PHP? Obviamente, hay muchos libros PHP iniciales, pero ya me siento cómodo con gran parte de lo que implica la creación de una página web, y estoy interesado en centrarme en PHP en sí mismo, que podría no ser compatible con el alcance de algunos libros PHP iniciales.
Revisé bastante el Manual PHP, y no parece fluir tan suavemente como podría ser ideal. ¿Hay un libro PHP inicial que sería apropiado? Echo de menos la cohesión que contienen la mayoría de los libros al mirar esas muestras. Hay mucha más información, pero se siente más como una referencia durante la codificación que como un vehículo de aprendizaje primario.
Respuestas:
El mejor recurso para aprender PHP es el manual de PHP . Está extremadamente bien escrito y bien estructurado, y es uno de los mayores activos de la comunidad PHP. Si está seguro con ASP.net, el manual es suficiente para comenzar.
Sin embargo, antes de comenzar a leer, debe configurar una pila PHP. Puede instalar Apache, PHP y su base de datos favorita (SQLServer está bien) por sí mismo (es extremadamente fácil) o puede configurar una pila preparada como XAMPP . XAMPP instalará:
todo de una vez (más algunas otras cosas). Una biblioteca importante que falta es phpUnit , que obviamente lo ayudará con las pruebas unitarias.
Luego debe instalar un IDE, sus opciones obvias son Eclipse Classic con las Herramientas de desarrollo de PHP (PDT) o Netbeans para PHP . Hay muchos otros, pero estos dos los recomiendo. Los uso a ambos, si no puedes elegir entre ellos, Netbeans es un poco más fácil de entender, pero realmente deberías evaluar ambos y decidir por ti mismo cuál es mejor para ti. No he trabajado con Visual Studio en mucho tiempo y realmente no sé qué IDE te puede resultar más familiar.
Cuando supere los conceptos básicos del manual, debe comenzar a pensar en un marco MVC. Nuevamente, recomendaré dos:
Zend Framework es la bestia y CodeIgniter es la belleza, si me permite una metáfora tonta. Zend Framework tiene una curva de aprendizaje empinada, está respaldado por Zend (la compañía detrás de PHP ) y puede hacer casi todo con él. CodeIgniter es mucho más fácil de entender, tiene buena documentación para principiantes y es bastante popular. Pero la mayor parte de su base de código es basura obsoleta, ya que solían soportar PHP4 no hace mucho tiempo.
Para un principiante, la opción obvia es CodeIgniter, pero no te quedes atascado. Úselo como herramienta de aprendizaje y pase a Zend Framework lo antes posible. Nuevamente, hay muchos más frameworks MVC en el mundo PHP, pero estos dos son los que recomiendo.
En cuanto a los libros, un gran libro para principiantes es PHP Objects, Patterns and Practice . Los libros PHP de Sitepoint siempre son una delicia para leer. Si te enamoras de PHP, deberías considerar una suscripción a PHP Architect .
Por último, vea esta gran discusión sobre razones puramente técnicas para PHP como primera opción .
Actualización: algunos recursos en línea más, que se dirigen principalmente a los no principiantes:
y si por alguna extraña razón quieres jugar con PHP en IIS en lugar de Apache, un buen punto de partida es el PHP de Microsoft en Windows . PHP en IIS funciona y es una opción válida especialmente para un desarrollador .Net, pero realmente debería ir con Apache (y MySQL o PostgreSQL en lugar de SQLServer) para obtener la experiencia completa de PHP y también asegurarse de que sus habilidades sean portátiles para cualquier otro popular OS. No querrás perderte la alegría que es mod_rewrite .
Nota personal: Hay mucho odio flotando por PHP, algo de esto está justificado . Si decide hacerlo, debe ser extremadamente crítico con los diversos recursos, scripts y bibliotecas de PHP que encontrará en el camino, hay demasiada basura y es imposible que un principiante sepa la diferencia. La gran popularidad de PHP se puede traducir a una comunidad muy grande y útil, gran comercialización de sus habilidades, millones y millones de blogs, pero también se puede traducir a unos pocos miles de terabytes de código basura.
fuente
Yannis tiene muchas cosas buenas que decir allí, pero leí, Construya su propio sitio web basado en bases de datos, 4a edición , y estaba lleno de todo lo que necesitaba saber para comenzar en el camino correcto para desarrollar aplicaciones web PHP profesionales.
También estaba trabajando exclusivamente en .NET antes de comenzar a trabajar en PHP. Es mucho más fácil trabajar con PHP, pero tiene algunos problemas peculiares al desarrollar aplicaciones a gran escala y este libro le ayuda a comenzar con eso.
Un problema para mí fue que PHP no es estrictamente un lenguaje orientado a objetos. Tiene todo tipo de funciones en forma de procedimiento y en forma orientada a objetos y lleva un tiempo acostumbrarse, proveniente de un lenguaje donde todo está organizado en clases y espacios de nombres.
Otra fue la facilidad con la que puedes mezclar todo en PHP haciendo las cosas mucho más difíciles. En .NET, las herramientas que usa, como Visual Studio, lo guían a practicar realmente buenos estándares de codificación haciendo parte del trabajo por usted. Por lo general, una página .aspx tendría su marcado HTML y su código C # separados en dos archivos.
Si es un gran usuario de herramientas .NET y prefiere trabajar con controles ASP.NET, otro problema es la falta de controles (GridView, etc.) en PHP. Sé que hay muchas bibliotecas / marcos que te dan algo similar, pero no son exactamente parte del paquete básico de PHP.
Otro problema para mí fue cómo en PHP, hay un uso intensivo de Arrays y Hashes que sirven más como colecciones en .NET. Están en todas partes y sería bueno acostumbrarse al hecho de que las matrices no son solo una lista ordenada del mismo tipo de objetos / unidades escalares. Pueden servir como objetos de colección para albergar todo tipo de cosas.
Puedo seguir y seguir, pero mencionar una de las principales cosas que encontré muy peculiar de PHP (no sé que también podría ser común en otros lenguajes), es la frecuencia con la que se utilizan las funciones "incluir" (y relacionadas) tan comúnmente Puedo decir que el libro de Sitepoint puede ponerte al día con todo esto.
fuente
peculiar issues when developing large scale applications
que ha identificado? Dado que tiene un fondo .net como op, sería útil saber qué personas .net sienten que es peculiar acerca de php.when developing large scale applications
. De todos modos, estaba pensando más en problemas conceptuales y de enfoque, como PHP tiene un enfoque completamente diferente de .Net en problemas de escala, algo así. Tengo muy poca experiencia con .Net, por lo que me interesaría saber qué encuentran las personas .Net conceptualmente peculiares cuando vienen a PHP. Pero, por supuesto, cabe esperar cosas como el hecho de que PHP es multi-paradigma.