Tutorial de cakePHP itst

5,790 views

Published on

Introduccion al framework caphp para desarrollo web

Published in: Technology, Design
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
5,790
On SlideShare
0
From Embeds
0
Number of Embeds
826
Actions
Shares
0
Downloads
172
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Tutorial de cakePHP itst

  1. 1. Tutorial cakePHP Framework ISC Abraham Zenteno Sánchezmartes, 22 de marzo de 2011 ISC Omar Flores Martínez
  2. 2. EVALUACION XHTML http://www.w3schools.com/quiztest/quiztest.asp?qtest=XHTML Javascript http://www.w3schools.com/quiztest/quiztest.asp?qtest=JavaScript JQuery http://www.w3schools.com/quiztest/quiztest.asp?qtest=jQuery CSS http://www.w3schools.com/quiztest/quiztest.asp?qtest=CSS SQL http://www.w3schools.com/quiztest/quiztest.asp?qtest=SQL PHP http://www.w3schools.com/quiztest/quiztest.asp?qtest=PHP
  3. 3. INSTALANDO EL ENTORNO Instalación del servidor web Instalación de postgreSQL y pgAdmin Instalación IDE Eclipse Instalación de Filezilla
  4. 4. INDICE Introducción Patrón MVC Configuración del framework Conceptos sobre cakePHP Desarrollo con scaffold Ejemplo Completo Añadir funcionalidad Diseño de la aplicación
  5. 5. INTRODUCCIONCakePHP es un framework para programar aplicaciones Web que sigue la arquitectura MVC(Modelo Vista Controlador: http://es.wikipedia.org/wiki/MVC).Para su funcionamiento requiere un servidor Web Apache, con PHP (versión 4 o 5preferentemente) y un servidor de base de datos postgreSQL (aunque también trabaja con‘MySQL’, ‘SQLite’ o ‘Firebird’).Existen herramientas, como XAMPP (http://www.apachefriends.org/en/xampp.html), queintegran ambos servicios en una única instalación.El presente tutorial se ha realizado con las versiones 2.2.14 de Apache, 5.3 PHP y 8.4 depostgreSQL.La versión de cakePHP con la que se ha trabajado y cuyo funcionamiento se va a describires la 1.3.6.Esta herramienta se puede descargar de su web oficial: http://www.cakephp.orgLos lectores de este tutorial deberán tener conocimientos de POO en PHP, gestión depostgreSQL y conceptos teóricos de bases de datos
  6. 6. PATRON MVCModelo Vista Controlador (MVC) es un patrón de arquitectura de software que separa losdatos de una aplicación, la interfaz de usuario, y la lógica de control en trescomponentes distintos.El patrón MVC se ve frecuentemente en aplicaciones web, donde la vista es la página(X)HTML y el código que provee de datos dinámicos a la página. Modelo: la lógica de la aplicación además del acceso a datos (SQL, LDAP, XML, ActiveRecord, ORM) e integridad de la información. Vista: la interfaz para el usuario más frecuentemente, (X)HTML para los navegadores Controlador: recibe el input del usuario (generalmente un link o un formulario ) y lo pasa, a veces al Modelo
  7. 7. Una petición típica de cakephp
  8. 8. VENTAJASSon muchas las ventajas del patrón MVC: Solidez Diseño Coherencia Modularidadpero quizás las más importante es que hace mucho más fácil el mantenimiento y lacooperación entre varios desarrolladores
  9. 9. PRINCIPIOS BASICOSExtensiones de controladores (components) beforeFilter() se ejecuta antes de cualquier otra acción del controlador beforeRender() se ejecuta despues de la lógica del controlador pero antes de que se renderice la vistaExtensiones de vistas (helpers) El ayudante helper es una clase que ayuda a la lógica de una vista. Del mismo modo que varios controladores utilizan un componente, los helpers hacen que varias vistas accedan y compartan logica presentacional.Extensiones de Modelos (behaivors)Así como los controladores, los modelos tambien incluyen callbacks: beforeFind() afterFind() beforeValidate() beforeSave() afterSave() beforeDelete() afterDelete()
  10. 10. ESTRUCTURA DE ARCHIVOSEstos serán los ficheros y carpetas que deberías ver:  app  cake  plugins  vendors  .htaccess  index.php  READMEObservarás 3 carpetas principales: La carpeta app será donde haremos nuestra magia: es donde se ubicarán los ficheros de tu aplicación. La carpeta cake es donde nosotros hemos hecho nuestra magia. Comprométete a no modificar los ficheros de esta carpeta. No podremos ayudarte si has modificado el núcleo. Finalmente, la carpeta vendors es donde ubicarás las librerías PHP de terceros que necesites usar con tus aplicaciones en CakePHP.
  11. 11. ESTRUCTURA DE ARCHIVOS La carpeta app de CakePHP es donde realizarás la mayor parte del desarrollo de tu aplicación. Contiene los (pocos) archivos de configuración que usa CakePHP. Detalles de conexión a bases de datos,config arranque (bootstrapping), archivos de configuración del núcleo y demás deberían ser almacenados aquí.controllers Contiene los controladores de tu aplicación y sus componentes.locale Almacena archivos de cadenas de texto para la internacionalización.models Contiene los modelos de tu aplicación, comportamientos (behaviors) y orígenes de datos (datasources).plugins Contiene los paquetes de plugins. Aquí es donde CakePHP almacena datos temporales. La información que realmente se almacena depende de cómo hayas configurado CakePHP, pero normalmente esta carpeta es usada para almacenar descripciones detmp modelos, registros (logs) y algunas veces información de sesiones. Asegúrate de que esta carpeta existe y tiene permisos de escritura, ya que de lo contrario el rendimiento de tu aplicación se verá muy afectado. En modo debug CakePHP te avisará si este no es el caso. Cualesquiera clases o librerías de terceros deberían ser ubicadas aquí. Hacerlo así hace que sea más fácil de acceder a ellas usando la función App::Import(vendor,nombre). Los observadores meticulosos notarán que estovendors parece redundante, ya que también existe una carpeta vendors en el nivel superior de nuestra estructura de directorios. Veremos las diferencias entre las dos cuando discutamos acerca de la administración de múltiples aplicaciones y configuraciones de sistemas más complejos. Los archivos de presentación son ubicados aquí: elementos (elements), páginas de error, ayudantes (helpers),views layouts y archivos de vistas. En una configuración de producción, esta carpeta debería servir como la raíz del sitio (document root) para tuwebroot aplicación. Las carpetas aquí también sirven como lugares de almacenamiento para hojas de estilo en cascada (CSS stylesheets), imágenes y archivos JavaScript.
  12. 12. CONVENCIONESCon las convenciones de CakePHP, podrás ahorrar tiempo en la marcha obteniendo librefuncionalidad, y también se libera de la pesadilla del mantenimiento del seguimiento de losarchivos de configuración.Las convenciones también hacen un sistema de desarrollo muy uniforme, permitiendo aotros desarrolladores ayudar más fácilmente.
  13. 13. CONVENCIONES PARA NOMBRES DE ARCHIVOS Y CLASES En general, los nombres de archivo llevan el símbolo underscore "_", mientras que los nombres de las clases usan CamelCase. La clase MyNiftyClass puede ser encontrada en el archivo my_nifty_class.php, por ejemplo. Otro ejemplo, el nombre de la clase que contiene un archivo puede no necesariamente ser encontrada en el nombre de archivo.La clase EmailComponent es encontrada en un archivo llamado email.php, y la claseHtmlHelper es encontrada en un archivo llamado html.php
  14. 14. … CONVENCIONES DE MODELOS Y BASE DE DATOS Los nombres de las clases de modelos están en singular y en formato CamelCase. Persona, PersonaGrande, y PersonaMuyGrande son todos ejemplos de nombres de modelos convencionales. Los nombres de las tablas correspondientes a modelos de CakePHP están en plural y usando guión bajo. Las tablas subyacentes para los modelos arriba mencionados serían: personas, personas_grandes, y personas_muy_grandes respectivamente.
  15. 15. CONVENCIONES DE MODELOS Y BASE DE DATOS Los nombres de los campos con dos o más palabras se definen con guiones bajos: nombre_y_apellidos. El nombre por defecto de las claves foráneas en relaciones hasMany, belongsTo o hasOne, es el nombre de la tabla relacionada (en singular) seguido de _id.Así, si Panadero hasMany Tarta, la tabla tartas referenciará la tabla panaderos mediante laclave foránea panadero_id. Para una tabla compuesta por varias palabras comotipos_categorias, la clave foránea sería tipo_categoria_id.
  16. 16. CONVENCIONES DE CONTROLADORES Los nombres de las clases de los controladores son en plural, con formato CamelCased, y terminan en Controller.PersonasController y UltimosArticulosController son ejemplos de nombresconvencionales de controladores. El primer método que escribas para un controlador debe de ser el método index(). Cuando la petición especifica un controlador pero no una acción, el comportamiento por defecto de CakePHP es ejecutar el método index() de dicho controlador.Por ejemplo, una petición de http://www.example.com/apples/ se corresponde con lallamada al método index() del controlador ApplesController, mientras quehttp://www.example.com/apples/view se corresponde con una llamada al método view()del controlador ApplesController.
  17. 17. CONVENCIONES DE VISTAS Los archivos de plantillas de Vistas (Views) deben ser nombradas después de las funciones de los controladores con guión bajo "_".La funcion getReady() del controlador PeopleController se visualizara con la plantilla devista en /app/views/people/get_ready.ctp por ejemplo. El patrón básico es: /app/views/controller/underscored_function_name.ctp
  18. 18. … CONVENCIONES DE VISTAS Al nombrar las piezas de su aplicación utilizando las convenciones de CakePHP, se adquiere funcionalidad sin mucho mantenimiento de la configuración. Ejemplo final de las convenciones Tabla de Base de Datos: ‘people’ Clase de Modelo: ‘Person’, encontrada en /app/models/person.php Clase de Controlador: ‘PeopleController’, encontrada en /app/controllers/people_controller.php Plantilla de Vista, encontrada en /app/views/people/index.ctpUsando estas convenciones, CakePHP entiende que la peticion http://example.com/people/apunta a la llamada de funcion index() en el controlador PeopleController, donde el modeloPerson esta disponible automáticamente (y apunta automáticamente a la tabla ‘people’ en labase de datos), y se renderiza en el archivo.

×