Desarrollo PHP

Publicado por Norberto Herz el
Al momento de evaluar tecnologías para el desarrollo de aplicaciones, solemos pasar por alto (incluso menospreciar) a aquella que sin duda ha representado la fuerza motriz para el rápido crecimiento de la Web, que pasó de ser páginas webs estáticas, con contenido e hiper texto, a aplicaciones con manejo de lógica de negocios, bases de datos e interacción con el usuario (Por supuesto no me olvido de otras tecnologías como CGIs, e incluso el problemático ASP, que si bien contribuyeron, creo yo que no tuvieron la relevancia que tuvo PHP).

Los principales argumentos en contra de la utilización de PHP, apuntan generalmente a los problemas típicos de mantenibilidad de código (suele aparecer código spaghetti, legado de un paradigma estructurado debido a que su soporte de OOP suele ser más bien pobre). Estos problemas solían aparecer más bien en versiones anteriores a PHP 5, aunque quedó instaurado el pre-concepto.

La realidad es que PHP (hablemos de la versión 5) es un lenguaje orientado a objetos, 100% usable para el desarrollo de aplicaciones web, y como punto importante, con una comunidad de desarrolladores muy experimentados que desarrollan frameworks y otras herramientas que permiten desarrollar aplicaciones que exceden una simple página web dinámica.

En cuanto a los bemoles, yo pensaría en otros lenguajes cuando me enfrente a otras problemáticas (aplicaciones críticas en cuanto a su performance, necesidad de procesamiento distribuido), pero no lo descartaría por su capacidad de ejecutar lógicas complejas, interactuar con otras aplicaciones en un esquema SOA o utilización de frameworks y otras bibliotecas.

Ahora, si estás pensando comenzar a desarrollar en PHP, es importante configurar un ambiente de trabajo local en donde poder realizar pruebas y dar los primeros pasos.
El web server por excelencia es Apache 2. Sobre el, se instalan las bibliotecas que hacen posible que este interprete PHP. Suele ser común, dar los primeros pasos utilizando MySQL como motor de base de datos (aunque no es obligatorio). Todas estas herramientas, pueden ser instaladas de manera independiente, y configuradas para lograr la interacción, aunque, si necesitamos un ambiente rápidamente podemos utilizar algunos productos que instalan y configuran todas las herramientas.
Mi recomendación:
Si estamos sobre sistemas Linux: LAMP - http://tuxtweaks.com/2010/04/installing-lamp-on-ubuntu-10-04-lucid-lynx/
Si estamos sobre sistemas Windows: AppServ - www.appservnetwork.com/

Ahora bien, una guía rápida para empezar, y verificar que existen buenas herramientas y buenas prácticas en PHP:
- http://w3schools.com/php/default.asp. Recorre parte de la filosofía PHP y las funciones básicas del lenguaje.
- OOP en PHP: http://php.net/manual/es/language.oop5.php
- Frameworks más importantes: http://www.phpframeworks.com/
- SOA en PHP: http://www.slideshare.net/jesus.castagnetto/construyendo-una-aos-con-php-patrones-de-diseo-de-servicios-web-en-php-presentation ; http://www.devx.com/ibm/Article/33385
- WebServices: http://talks.php.net/show/webservices/
- BPM: http://phpbarcelona.org/files/phpworkshop08/workflow/phpBarcelonaWorkshop2008-MotoresDeWorkflowEnPHP-Presentacion.pdf
- Continuous integration: http://www.slideshare.net/arnoschn/continuous-integration-and-php ; http://sourceforge.net/projects/xinc/
- Unit test and TDD: http://www.lastcraft.com/first_test_tutorial.php ; http://www.simpletest.org/

Espero que esto sea útil, y ver más gente desarrollando nuevas aplicaciones en PHP.