PHP es un lenguaje de scripting orientado al desarrollo de aplicaciones web. En una primera parte se explica los principios del lenguaje, algunas herramientas y un esbozo de una aplicación web escrita en PHP. En una segunda parte se presenta Symfony, un framework PHP que reúne las mejores prácticas de desarrollo de aplicaciones web.
103. Acceso a los datos public function executeIndex($peticion) { $nombre = $peticion->getParameter('nombre'); $dni=$peticion->getParameter('dni'); $c = new Criteria(); $c->add(UsuarioPeer::DNI, $dni); $this->visitante = UsuarioPeer::doSelectOne($c) return sfView::SUCCESS; }
106. Abstracción de base de datos $conexion = Propel::getConnection(); $consulta = ' SELECT MAX(%s) AS max FROM %s' ; $consulta = sprintf($consulta, UsuarioPeer::CREATED_AT, UsuarioPeer::TABLE_NAME); $sentencia = $conexion->prepare($consulta); $sentencia->execute(); $resultset = $sentencia->fetch(PDO::FETCH_OBJ); $max = $resultset->max;
115. Desarrollo de aplicaciones web con PHP y Symfony Tercer encuentro de usuarios Linux en la Región Lambayeque
Notas do Editor
Mala reputación Código Spaghetti Amateurs Sintaxis inconsistente Reinventar la ruedda
Usado en sitios de alto tráfico (Facebook, Yahoo!, Wikipedia) (si PHP llega a ser tu cuello de botella, felicitaciones, tienes una aplicación con grado A y que es más rápida que el 99% de los sitios web de Internet) Años de experiencia y herramientas
Código abierto. Hay desarrolladores, librerías, soporte y documentación Fácil de aprender, fácil de usar Es el lenguaje #1 de desarrollo para la web
Todo en uno: Apache, PHP, MySQL y librerías útiles. Para Windows, Linux, Mac OS X y Solaris.
Completo entorno de desarrollo Diseñado para optimizar Construcción de aplicaciones web
Mejores prácticas: menos riesgo Desarrollo reusable: inteligencia de desarrollo Activo desarrollo y soporte Curva de aprendizaje pronunciada pero con buena documentación Gran comunidad de desarrolladores Uno de los frameworks más completos
PHP 5.3.2 + Zend Engine 2.3.0 Mejoras en rendimiento POO: Composición de objetos, herencia, agregación, contención, encapsulamiento
Este tipo de métodos permiten redefinir el comportamiento de las clases sin modificar el código externo. Con estos métodos es posible que la sintaxis de PHP sea más concisa y más fácil de extender. Además, estos métodos son fáciles de reconocer ya que sus nombres siempre empiezan con 2 guiones bajos seguidos (__). PEAR es un "framework y sistema de distribución para componentes PHP reutilizables". PEAR permite descargar, instalar, actualizar y desinstalar scripts de PHP. Si se utiliza un paquete de PEAR, no es necesario decidir donde guardar los scripts, cómo hacer que se puedan utilizar o cómo extender la línea de comandos (CLI).
Un ORM consiste en una serie de objetos que permiten acceder a los datos y que contienen en su interior cierta lógica de negocio. Una de las ventajas de utilizar estas capas de abstracción de objetos/relacional es que evita utilizar una sintaxis específica de un sistema de bases de datos concreto. Esta capa transforma automáticamente las llamadas a los objetos en consultas SQL optimizadas para el sistema gestor de bases de datos que se está utilizando en cada momento.
Hoy en día, las empresas reaccionan más rápidamente y los clientes cambian de opinión constantemente durante el desarrollo de los proyectos. De este modo, los equipos de desarrollo deben adaptarse a esas necesidades y tienen que poder cambiar la estructura de una aplicación de forma rápida. Afortunadamente, el uso de lenguajes de script como Perl y PHP permiten seguir otras estrategias de programación, como RAD (desarrollo rápido de aplicaciones) y el desarrollo ágil de software. KISS: ¡Hazlo sencillo, idiota! (Keep It Simple, Stupid) DRY: No te repitas (Don't Repeat Yourself). TDD: desarrollo basado en pruebas (test-driven development).
1. Carga la clase de configuración del proyecto y las librerías de Symfony. 2. Crea la configuración de la aplicación y el contexto de Symfony. 3. Carga e inicializa las clases del núcleo del framework. 4. Carga la configuración. 5. Decodifica la URL de la petición para determinar la acción a ejecutar y los parámetros de la petición. 6. Si la acción no existe, redireccionará a la acción del error 404. 7. Activa los filtros (por ejemplo, si la petición necesita autenticación). 8. Ejecuta los filtros, primera pasada. 9. Ejecuta la acción y produce la vista. 10. Ejecuta los filtros, segunda pasada. 11. Muestra la respuesta.
1. Carga la clase de configuración del proyecto y las librerías de Symfony. 2. Crea la configuración de la aplicación y el contexto de Symfony. 3. Carga e inicializa las clases del núcleo del framework. 4. Carga la configuración. 5. Decodifica la URL de la petición para determinar la acción a ejecutar y los parámetros de la petición. 6. Si la acción no existe, redireccionará a la acción del error 404. 7. Activa los filtros (por ejemplo, si la petición necesita autenticación). 8. Ejecuta los filtros, primera pasada. 9. Ejecuta la acción y produce la vista. 10. Ejecuta los filtros, segunda pasada. 11. Muestra la respuesta.