SlideShare a Scribd company logo
1 of 18
Download to read offline
Tutorial cakePHP Framework



                              ISC Abraham Zenteno Sánchez
martes, 22 de marzo de 2011        ISC Omar Flores Martínez
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
INSTALANDO EL ENTORNO
 Instalación del servidor web
 Instalación de postgreSQL y pgAdmin
 Instalación IDE Eclipse
 Instalación de Filezilla
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
INTRODUCCION
CakePHP 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 5
preferentemente) 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), que
integran 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 de
postgreSQL.

La versión de cakePHP con la que se ha trabajado y cuyo funcionamiento se va a describir
es la 1.3.6.

Esta herramienta se puede descargar de su web oficial: http://www.cakephp.org

Los lectores de este tutorial deberán tener conocimientos de POO en PHP, gestión de
postgreSQL y conceptos teóricos de bases de datos
PATRON MVC
Modelo Vista Controlador (MVC) es un patrón de arquitectura de software que separa los
datos de una aplicación, la interfaz de usuario, y la lógica de control en tres
componentes 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
Una petición típica de cakephp
VENTAJAS
Son muchas las ventajas del patrón MVC:

   Solidez
   Diseño
   Coherencia
   Modularidad

pero quizás las más importante es que hace mucho más fácil el mantenimiento y la
cooperación entre varios desarrolladores
PRINCIPIOS BASICOS
Extensiones 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 vista

Extensiones 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()
ESTRUCTURA DE ARCHIVOS
Estos serán los ficheros y carpetas que deberías ver:
      app
      cake
      plugins
      vendors
      .htaccess
      index.php
      README

Observará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.
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 de
tmp                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 esto
vendors            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 tu
webroot            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.
CONVENCIONES

Con las convenciones de CakePHP, podrás ahorrar tiempo en la marcha obteniendo libre
funcionalidad, y también se libera de la pesadilla del mantenimiento del seguimiento de los
archivos de configuración.

Las convenciones también hacen un sistema de desarrollo muy uniforme, permitiendo a
otros desarrolladores ayudar más fácilmente.
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 clase
HtmlHelper es encontrada en un archivo llamado html.php
… 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.
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 la
clave foránea panadero_id. Para una tabla compuesta por varias palabras como
tipos_categorias, la clave foránea sería tipo_categoria_id.
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   nombres
convencionales 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 la
llamada al método index() del controlador ApplesController, mientras que
http://www.example.com/apples/view se corresponde con una llamada al método view()
del controlador ApplesController.
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 de
vista en /app/views/people/get_ready.ctp por ejemplo.

 El patrón básico es: /app/views/controller/underscored_function_name.ctp
… 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.ctp

Usando estas convenciones, CakePHP entiende que la peticion http://example.com/people/
apunta a la llamada de funcion index() en el controlador PeopleController, donde el modelo
Person esta disponible automáticamente (y apunta automáticamente a la tabla ‘people’ en la
base de datos), y se renderiza en el archivo.

More Related Content

What's hot

Introducción a Laravel 5 - Un Framework para Artesanos Web
Introducción a Laravel 5 - Un Framework para Artesanos WebIntroducción a Laravel 5 - Un Framework para Artesanos Web
Introducción a Laravel 5 - Un Framework para Artesanos WebFacundo E. Goñi Perez
 
Desarrollo Web Ágil con Symfony, Bootstrap y Angular
Desarrollo Web Ágil con Symfony, Bootstrap y AngularDesarrollo Web Ágil con Symfony, Bootstrap y Angular
Desarrollo Web Ágil con Symfony, Bootstrap y AngularFreelancer
 
Pleased to meet you, Laravel
Pleased to meet you, LaravelPleased to meet you, Laravel
Pleased to meet you, LaravelRolando Caldas
 
Desarrollando Una Mejor Experiencia De Usuario Con Ajax
Desarrollando Una Mejor Experiencia De Usuario Con AjaxDesarrollando Una Mejor Experiencia De Usuario Con Ajax
Desarrollando Una Mejor Experiencia De Usuario Con Ajaxjuliocasal
 
Presentación de zan php
Presentación de zan phpPresentación de zan php
Presentación de zan phpCarlos Zantana
 
Symfony en Drupal 8 - DrupalCamp Spain
Symfony en Drupal 8 - DrupalCamp Spain Symfony en Drupal 8 - DrupalCamp Spain
Symfony en Drupal 8 - DrupalCamp Spain Raul Fraile
 
Manual completo-php-5
Manual completo-php-5Manual completo-php-5
Manual completo-php-5jjmvc2481
 
Trabajar con bases de datos desde ASP.NET
Trabajar con bases de datos desde ASP.NETTrabajar con bases de datos desde ASP.NET
Trabajar con bases de datos desde ASP.NETJavier Roig
 
Introduccion A Php
Introduccion A PhpIntroduccion A Php
Introduccion A Phputs
 
Adentrándonos al Framework Symfony
Adentrándonos al  Framework SymfonyAdentrándonos al  Framework Symfony
Adentrándonos al Framework SymfonyRodrigo Miranda
 
Mis primeros pasos con Symfony 2
Mis primeros pasos con Symfony 2Mis primeros pasos con Symfony 2
Mis primeros pasos con Symfony 2Edgar Dueñas
 
Symfony2 Formacion y primeros pasos
Symfony2  Formacion y primeros pasosSymfony2  Formacion y primeros pasos
Symfony2 Formacion y primeros pasosSoni BM
 
2. Java Servlets (J2EE) - Curso 2005-2006
2. Java Servlets (J2EE) - Curso 2005-20062. Java Servlets (J2EE) - Curso 2005-2006
2. Java Servlets (J2EE) - Curso 2005-2006Samuel Marrero
 
Workflows en Plone
Workflows en PloneWorkflows en Plone
Workflows en Plonelaloea
 
Ruby on Rails - ETyC 2011
Ruby on Rails - ETyC 2011Ruby on Rails - ETyC 2011
Ruby on Rails - ETyC 2011Rafael Franco
 

What's hot (19)

Introducción a Laravel 5 - Un Framework para Artesanos Web
Introducción a Laravel 5 - Un Framework para Artesanos WebIntroducción a Laravel 5 - Un Framework para Artesanos Web
Introducción a Laravel 5 - Un Framework para Artesanos Web
 
Desarrollo Web Ágil con Symfony, Bootstrap y Angular
Desarrollo Web Ágil con Symfony, Bootstrap y AngularDesarrollo Web Ágil con Symfony, Bootstrap y Angular
Desarrollo Web Ágil con Symfony, Bootstrap y Angular
 
Pleased to meet you, Laravel
Pleased to meet you, LaravelPleased to meet you, Laravel
Pleased to meet you, Laravel
 
Desarrollando Una Mejor Experiencia De Usuario Con Ajax
Desarrollando Una Mejor Experiencia De Usuario Con AjaxDesarrollando Una Mejor Experiencia De Usuario Con Ajax
Desarrollando Una Mejor Experiencia De Usuario Con Ajax
 
Presentación de zan php
Presentación de zan phpPresentación de zan php
Presentación de zan php
 
Symfony en Drupal 8 - DrupalCamp Spain
Symfony en Drupal 8 - DrupalCamp Spain Symfony en Drupal 8 - DrupalCamp Spain
Symfony en Drupal 8 - DrupalCamp Spain
 
Rails intro
Rails introRails intro
Rails intro
 
Manual completo-php-5
Manual completo-php-5Manual completo-php-5
Manual completo-php-5
 
CRUD básico con Symfony
CRUD básico con SymfonyCRUD básico con Symfony
CRUD básico con Symfony
 
Trabajar con bases de datos desde ASP.NET
Trabajar con bases de datos desde ASP.NETTrabajar con bases de datos desde ASP.NET
Trabajar con bases de datos desde ASP.NET
 
Introduccion A Php
Introduccion A PhpIntroduccion A Php
Introduccion A Php
 
Adentrándonos al Framework Symfony
Adentrándonos al  Framework SymfonyAdentrándonos al  Framework Symfony
Adentrándonos al Framework Symfony
 
Mis primeros pasos con Symfony 2
Mis primeros pasos con Symfony 2Mis primeros pasos con Symfony 2
Mis primeros pasos con Symfony 2
 
(Desarrollo web).manual.php.5
(Desarrollo web).manual.php.5(Desarrollo web).manual.php.5
(Desarrollo web).manual.php.5
 
Symfony2 Formacion y primeros pasos
Symfony2  Formacion y primeros pasosSymfony2  Formacion y primeros pasos
Symfony2 Formacion y primeros pasos
 
Servicios web
Servicios webServicios web
Servicios web
 
2. Java Servlets (J2EE) - Curso 2005-2006
2. Java Servlets (J2EE) - Curso 2005-20062. Java Servlets (J2EE) - Curso 2005-2006
2. Java Servlets (J2EE) - Curso 2005-2006
 
Workflows en Plone
Workflows en PloneWorkflows en Plone
Workflows en Plone
 
Ruby on Rails - ETyC 2011
Ruby on Rails - ETyC 2011Ruby on Rails - ETyC 2011
Ruby on Rails - ETyC 2011
 

Viewers also liked

Learn How To Develop With CakePHP
Learn How To Develop With CakePHPLearn How To Develop With CakePHP
Learn How To Develop With CakePHPMichael Bourque
 
Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...
Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...
Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...Corporacion de Industrias Tecnologicas S.A.
 
Yii php framework
Yii php frameworkYii php framework
Yii php frameworkKeaNy Chu
 
1 Introduccion - Curso Cakephp y PostgreSql
1 Introduccion - Curso Cakephp y PostgreSql1 Introduccion - Curso Cakephp y PostgreSql
1 Introduccion - Curso Cakephp y PostgreSqlAland Laines Calonge
 
Integracion Cakephp y Bootstrap
Integracion Cakephp y BootstrapIntegracion Cakephp y Bootstrap
Integracion Cakephp y BootstrapDeltron
 
9 Awesome cake php tutorials and resources
9 Awesome cake php tutorials and resources9 Awesome cake php tutorials and resources
9 Awesome cake php tutorials and resourcesiScripts
 
CakePHP mistakes made
CakePHP mistakes madeCakePHP mistakes made
CakePHP mistakes mademarkstory
 
Customize CakePHP bake
Customize CakePHP bakeCustomize CakePHP bake
Customize CakePHP bakeKazuyuki Aoki
 
Recursive in CakePHP
Recursive in CakePHPRecursive in CakePHP
Recursive in CakePHPKetan Patel
 
Top 50 Interview Questions and Answers in CakePHP
Top 50 Interview Questions and Answers in CakePHPTop 50 Interview Questions and Answers in CakePHP
Top 50 Interview Questions and Answers in CakePHPKetan Patel
 
Criando e consumindo Web Services (REST) com o CakePHP
Criando e consumindo Web Services (REST) com o CakePHPCriando e consumindo Web Services (REST) com o CakePHP
Criando e consumindo Web Services (REST) com o CakePHP2km interativa!
 
Road to CakePHP 3.0
Road to CakePHP 3.0Road to CakePHP 3.0
Road to CakePHP 3.0markstory
 

Viewers also liked (20)

Cakephp
CakephpCakephp
Cakephp
 
Cakephp 3
Cakephp 3 Cakephp 3
Cakephp 3
 
CakePHP
CakePHPCakePHP
CakePHP
 
PPT - A slice of cake php
PPT - A slice of cake phpPPT - A slice of cake php
PPT - A slice of cake php
 
Learn How To Develop With CakePHP
Learn How To Develop With CakePHPLearn How To Develop With CakePHP
Learn How To Develop With CakePHP
 
Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...
Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...
Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...
 
Yii php framework
Yii php frameworkYii php framework
Yii php framework
 
Presentacion YII
Presentacion YIIPresentacion YII
Presentacion YII
 
1 Introduccion - Curso Cakephp y PostgreSql
1 Introduccion - Curso Cakephp y PostgreSql1 Introduccion - Curso Cakephp y PostgreSql
1 Introduccion - Curso Cakephp y PostgreSql
 
Integracion Cakephp y Bootstrap
Integracion Cakephp y BootstrapIntegracion Cakephp y Bootstrap
Integracion Cakephp y Bootstrap
 
Taller de laravel
Taller de laravelTaller de laravel
Taller de laravel
 
REST API with CakePHP
REST API with CakePHPREST API with CakePHP
REST API with CakePHP
 
9 Awesome cake php tutorials and resources
9 Awesome cake php tutorials and resources9 Awesome cake php tutorials and resources
9 Awesome cake php tutorials and resources
 
Full-Stack CakePHP Deployment
Full-Stack CakePHP DeploymentFull-Stack CakePHP Deployment
Full-Stack CakePHP Deployment
 
CakePHP mistakes made
CakePHP mistakes madeCakePHP mistakes made
CakePHP mistakes made
 
Customize CakePHP bake
Customize CakePHP bakeCustomize CakePHP bake
Customize CakePHP bake
 
Recursive in CakePHP
Recursive in CakePHPRecursive in CakePHP
Recursive in CakePHP
 
Top 50 Interview Questions and Answers in CakePHP
Top 50 Interview Questions and Answers in CakePHPTop 50 Interview Questions and Answers in CakePHP
Top 50 Interview Questions and Answers in CakePHP
 
Criando e consumindo Web Services (REST) com o CakePHP
Criando e consumindo Web Services (REST) com o CakePHPCriando e consumindo Web Services (REST) com o CakePHP
Criando e consumindo Web Services (REST) com o CakePHP
 
Road to CakePHP 3.0
Road to CakePHP 3.0Road to CakePHP 3.0
Road to CakePHP 3.0
 

Similar to Tutorial de cakePHP itst

Similar to Tutorial de cakePHP itst (20)

Framework by Marcos Acosta
Framework by Marcos AcostaFramework by Marcos Acosta
Framework by Marcos Acosta
 
Framework kahana
Framework kahanaFramework kahana
Framework kahana
 
Exposicion Akelos
Exposicion AkelosExposicion Akelos
Exposicion Akelos
 
Introduccion A Php
Introduccion A PhpIntroduccion A Php
Introduccion A Php
 
Introduccion A Php
Introduccion A PhpIntroduccion A Php
Introduccion A Php
 
Introducción a Kohana Framework
Introducción a Kohana FrameworkIntroducción a Kohana Framework
Introducción a Kohana Framework
 
Manual Basico De Struts
Manual Basico De StrutsManual Basico De Struts
Manual Basico De Struts
 
Presentación1
Presentación1Presentación1
Presentación1
 
Framework
FrameworkFramework
Framework
 
Framework
FrameworkFramework
Framework
 
Tutorial php basico
Tutorial php basicoTutorial php basico
Tutorial php basico
 
Php y MySqul
Php y MySqul  Php y MySqul
Php y MySqul
 
Java
JavaJava
Java
 
Framework
FrameworkFramework
Framework
 
Framework 02
Framework 02Framework 02
Framework 02
 
Framework
FrameworkFramework
Framework
 
Desarrollo de Apps Web en Ruby on Rails
Desarrollo de Apps Web en Ruby on RailsDesarrollo de Apps Web en Ruby on Rails
Desarrollo de Apps Web en Ruby on Rails
 
Laravel
LaravelLaravel
Laravel
 
Desarrollo Aplicaciones Zend Framework
Desarrollo Aplicaciones Zend FrameworkDesarrollo Aplicaciones Zend Framework
Desarrollo Aplicaciones Zend Framework
 
Framework
FrameworkFramework
Framework
 

Recently uploaded

La tablet trabajo en grupo del grado 9-2
La tablet trabajo en grupo del grado 9-2La tablet trabajo en grupo del grado 9-2
La tablet trabajo en grupo del grado 9-2montoyagabriela340
 
VIDEOS DE APOYO.docx E
VIDEOS DE APOYO.docx                                  EVIDEOS DE APOYO.docx                                  E
VIDEOS DE APOYO.docx Emialexsolar
 
Actividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdfActividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdfalejandrogomezescoto
 
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdfPresentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdfymiranda2
 
Los mejores simuladores de circuitos electrónicos.pdf
Los mejores simuladores de circuitos electrónicos.pdfLos mejores simuladores de circuitos electrónicos.pdf
Los mejores simuladores de circuitos electrónicos.pdfodalistar77
 
De Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NETDe Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NETGermán Küber
 
El diseño de Algoritmos Paralelos.pdf - analisis de algortimos
El diseño de Algoritmos Paralelos.pdf - analisis de algortimosEl diseño de Algoritmos Paralelos.pdf - analisis de algortimos
El diseño de Algoritmos Paralelos.pdf - analisis de algortimosLCristinaForchue
 
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdfInmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdfOBr.global
 
Tecnológia 2024.docx.Tecnológia 2024.docx.
Tecnológia 2024.docx.Tecnológia 2024.docx.Tecnológia 2024.docx.Tecnológia 2024.docx.
Tecnológia 2024.docx.Tecnológia 2024.docx.marianarodriguezc797
 
Inteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidadInteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidaddanik1023m
 
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdfTENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdfJoseAlejandroPerezBa
 
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...OLGAMILENAMONTAEZNIO
 
La Electricidad y La Electrónica.pdf....
La Electricidad y La Electrónica.pdf....La Electricidad y La Electrónica.pdf....
La Electricidad y La Electrónica.pdf....Aaron Betancourt
 
Matriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docxMatriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docxPaolaCarolinaCarvaja
 
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOS
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOSPRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOS
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOSLincangoKevin
 
Carta de Premio y Excel angeline 11-2pdf
Carta de Premio y Excel angeline 11-2pdfCarta de Premio y Excel angeline 11-2pdf
Carta de Premio y Excel angeline 11-2pdfangelinebocanegra1
 
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...RaymondCode
 
Análisis de artefactos tecnologicos .pdf
Análisis de artefactos tecnologicos .pdfAnálisis de artefactos tecnologicos .pdf
Análisis de artefactos tecnologicos .pdfcastrodanna185
 

Recently uploaded (20)

La tablet trabajo en grupo del grado 9-2
La tablet trabajo en grupo del grado 9-2La tablet trabajo en grupo del grado 9-2
La tablet trabajo en grupo del grado 9-2
 
VIDEOS DE APOYO.docx E
VIDEOS DE APOYO.docx                                  EVIDEOS DE APOYO.docx                                  E
VIDEOS DE APOYO.docx E
 
Actividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdfActividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdf
 
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdfPresentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
 
Los mejores simuladores de circuitos electrónicos.pdf
Los mejores simuladores de circuitos electrónicos.pdfLos mejores simuladores de circuitos electrónicos.pdf
Los mejores simuladores de circuitos electrónicos.pdf
 
De Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NETDe Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NET
 
BEDEC Proyecto y obra , novedades 2024 - Xavier Folch
BEDEC Proyecto y obra , novedades 2024 - Xavier FolchBEDEC Proyecto y obra , novedades 2024 - Xavier Folch
BEDEC Proyecto y obra , novedades 2024 - Xavier Folch
 
El diseño de Algoritmos Paralelos.pdf - analisis de algortimos
El diseño de Algoritmos Paralelos.pdf - analisis de algortimosEl diseño de Algoritmos Paralelos.pdf - analisis de algortimos
El diseño de Algoritmos Paralelos.pdf - analisis de algortimos
 
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdfInmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdf
 
BEDEC Sostenibilidad, novedades 2024 - Laura Silva
BEDEC Sostenibilidad, novedades 2024 - Laura SilvaBEDEC Sostenibilidad, novedades 2024 - Laura Silva
BEDEC Sostenibilidad, novedades 2024 - Laura Silva
 
Tecnológia 2024.docx.Tecnológia 2024.docx.
Tecnológia 2024.docx.Tecnológia 2024.docx.Tecnológia 2024.docx.Tecnológia 2024.docx.
Tecnológia 2024.docx.Tecnológia 2024.docx.
 
Inteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidadInteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidad
 
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdfTENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
 
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
 
La Electricidad y La Electrónica.pdf....
La Electricidad y La Electrónica.pdf....La Electricidad y La Electrónica.pdf....
La Electricidad y La Electrónica.pdf....
 
Matriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docxMatriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docx
 
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOS
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOSPRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOS
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOS
 
Carta de Premio y Excel angeline 11-2pdf
Carta de Premio y Excel angeline 11-2pdfCarta de Premio y Excel angeline 11-2pdf
Carta de Premio y Excel angeline 11-2pdf
 
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
 
Análisis de artefactos tecnologicos .pdf
Análisis de artefactos tecnologicos .pdfAnálisis de artefactos tecnologicos .pdf
Análisis de artefactos tecnologicos .pdf
 

Tutorial de cakePHP itst

  • 1. Tutorial cakePHP Framework ISC Abraham Zenteno Sánchez martes, 22 de marzo de 2011 ISC Omar Flores Martínez
  • 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. INSTALANDO EL ENTORNO  Instalación del servidor web  Instalación de postgreSQL y pgAdmin  Instalación IDE Eclipse  Instalación de Filezilla
  • 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. INTRODUCCION CakePHP 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 5 preferentemente) 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), que integran 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 de postgreSQL. La versión de cakePHP con la que se ha trabajado y cuyo funcionamiento se va a describir es la 1.3.6. Esta herramienta se puede descargar de su web oficial: http://www.cakephp.org Los lectores de este tutorial deberán tener conocimientos de POO en PHP, gestión de postgreSQL y conceptos teóricos de bases de datos
  • 6. PATRON MVC Modelo Vista Controlador (MVC) es un patrón de arquitectura de software que separa los datos de una aplicación, la interfaz de usuario, y la lógica de control en tres componentes 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
  • 8. VENTAJAS Son muchas las ventajas del patrón MVC:  Solidez  Diseño  Coherencia  Modularidad pero quizás las más importante es que hace mucho más fácil el mantenimiento y la cooperación entre varios desarrolladores
  • 9. PRINCIPIOS BASICOS Extensiones 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 vista Extensiones 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. ESTRUCTURA DE ARCHIVOS Estos serán los ficheros y carpetas que deberías ver:  app  cake  plugins  vendors  .htaccess  index.php  README Observará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. 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 de tmp 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 esto vendors 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 tu webroot 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. CONVENCIONES Con las convenciones de CakePHP, podrás ahorrar tiempo en la marcha obteniendo libre funcionalidad, y también se libera de la pesadilla del mantenimiento del seguimiento de los archivos de configuración. Las convenciones también hacen un sistema de desarrollo muy uniforme, permitiendo a otros desarrolladores ayudar más fácilmente.
  • 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 clase HtmlHelper es encontrada en un archivo llamado html.php
  • 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. 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 la clave foránea panadero_id. Para una tabla compuesta por varias palabras como tipos_categorias, la clave foránea sería tipo_categoria_id.
  • 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 nombres convencionales 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 la llamada al método index() del controlador ApplesController, mientras que http://www.example.com/apples/view se corresponde con una llamada al método view() del controlador ApplesController.
  • 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 de vista en /app/views/people/get_ready.ctp por ejemplo.  El patrón básico es: /app/views/controller/underscored_function_name.ctp
  • 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.ctp Usando estas convenciones, CakePHP entiende que la peticion http://example.com/people/ apunta a la llamada de funcion index() en el controlador PeopleController, donde el modelo Person esta disponible automáticamente (y apunta automáticamente a la tabla ‘people’ en la base de datos), y se renderiza en el archivo.