SlideShare a Scribd company logo
1 of 24
Aplicación Listatareas

Nuestra primera aplicación en
          CakePHP
¿Cómo crear una
  aplicación?




Entramos a la
carpeta de nuestro
Servidor localhost en
Nuestro caso wamp
¿Cómo crear una
  aplicación?


  Dentro de wamp
  copiamos
  La carpeta Cakephp
¿Cómo crear una
  aplicación?




    Entramos a la carpeta
    www
¿Cómo crear una
  aplicación?




Pegamos la carpeta, y
la renombramos con el
nombre de
nuestra aplicación ha crear,
en nuestro caso estamos creando una lista de tareas y ya teníamos creada la aplicación con el
nombre listatareas.
¿Cómo crear una
  aplicación?




Comprobando que no tenemos nada configurado en nuestra aplicación creada, entramos a
localhost/cakephp (desde nuestro navegador) que fue la carpeta copiada y
pegada en la carpeta www.
¿Cómo crear una
  aplicación?
  Antes de continuar, tenemos que crear la base de datos, en nuestro caso usamos
   MySQL query browser, creamos una base de datos, llamada listastareas, y creamos una
  Tabla tareas:

  USE listatareas;
  CREATE TABLE tareas (
  id int(10) unsigned NOT NULL auto_increment,
  titulo varchar(255) NOT NULL,
  hecha tinyint(1) default NULL,
  creado datetime default NULL,
  modificado datetime default NULL,
  PRIMARY KEY (id)
  );
¿Cómo crear una
  aplicación?
  Para tener una conexión con la aplicación, nos dirigimos a la siguiente ruta
  (dependiendo del nombre de la aplicación que le hallas puesto en nuestro caso listatareas):
  C:wampwwwlistatareasappConfig,



                               Encontraremos el archivo database.php.default, primero
                               que nada modificamos el nombre y le quitamos el
                               default, y lo dejamos como database.php y abrimos el
                               archivo…
¿Cómo crear una
  aplicación?
  Abrimos el documento database.php…buscamos el siguiente codigo:




                                            En nuestro caso donde dice
                                            public $default,

                                            modificamos el login “que diga root”
                                            porque es nuestro nombre de usuario en
                                            el localhost, y como no pusimos
                                            contraseña se lo quitamos y le dejamos
                                            las comillas, y pusimos el nombre de
                                            nuestra database creada previamente,
                                            en el MySQL browser “listatareas”.
¿Cómo crear una
  aplicación?
  Modificada nuestra base de datos para nuestra aplicación regresamos a
  http://localhost/listatareas/ en nuestro navegador.
CakePHP

CakePHP como convenciones tiene:



USE listatareas;                               Los nombres de las
                                                                        1
                                               tablas deben ser en
CREATE TABLE tareas (                          plural
id int(10) unsigned NOT NULL auto_increment,
titulo varchar(255) NOT NULL,
hecha tinyint(1) default NULL,
creado datetime default NULL,
modificado datetime default NULL,                                       2
                                                 La clave primaria de
PRIMARY KEY (id)                                 la tabla tiene que
);                                               ser SIEMPRE el
                                                 campo id
Nuestra primera aplicación en
     CakePHP con MVC
Modelo

Nuestra primera aplicación en
     CakePHP con MVC
MODELO en
 CakePHP
Para cada tabla que tuviéramos en nuestra base de datos tendríamos que crear un modelo




                       Para esto buscamos la ruta que aparece en la imagen, y creamos un nuevo
                       archivo en la carpeta Model, en nuestro caso creamos uno con el nombre
                       tarea.php

                       Que será el que va hacerse responsable de acceder y modificar datos dentro de
                       la tabla.

                       Dentro del archivo iniciamos con el siguiente codigo:

                       <?php
                       class Tarea extends AppModel {
                       var $name ='Tarea';
                       }
                       ?>

                       Esta sintaxis siempre debe de estar cada vez que se cree un modelo,
                       siempre tiene que ser de esa manera.
MODELO en
 CakePHP



                                                            El nombre de la
                                                                                    5
        <?php
                                                            clase es también el
        class Tarea extends AppModel {
                                                            singular del nombre
        var $name ='Tarea';                                 de la tabla . Pero
        }                                                   CamelCased
        ?>                                                  (Significa que cada
                                                            palabra que
                                                            contenga empieza
                                                            con mayúscula).
                    Todos los modelos que se
                    creen tienen que heredar      6
                    de la clase AppModel
                                                                            Todos los modelos
                                                                                                4
                                                                            de una aplicación
                                                                            CakePHP se
                                                                            encontraran en la
                                                                            carpeta Model.
                                 El nombre del
                                 archivo Model debe
                                 ser el singular del
                                 nombre de la tabla     3
                                 que tenga la base de
                                 datos.
Controlador

Nuestra primera aplicación en
     CakePHP con MVC
CONTROLADOR
 en CakePHP
Los controladores se colocan donde el flujo de la aplicación debe ser controlado.
Ejemplo: Para acceder a datos, el controlador es el que llama a los modelos, recupera los datos devueltos
Y se los pasa a las vistas.


                        Creando el controlador en la ruta de la imagen izquierda, un documento con
                        el nombre tareas_controller.php le ingresamos como codigo inicial el siguiente:

                        <?php
                        class TareasController extends AppController{
                        var $name ='Tareas';
                        }
                        ?>

                        Nota: No tienen que haber un controlador por cada modelo, pueden
                        existir varios controladores que controlen varios modelos o pueden
                        existir varios modelos que usen el mismo controlador. (EN ESTE CASO
                        NO ES UNA CONVENCION DE CakePHP!).
CONTROLADOR
 en CakePHP




         <?php                                                                Los nombres de las
         class TareasController extends AppController{                        clases controller deben
                                                                                                         9
         var $name ='Tareas';                                                 ser CamelCased y plural
         }
         ?>

                                 Todos los controllers
                                 tienen que heredar de la
                                 clase AppController                                     Todos los archivos
                                                                                         de clase controller
                                                                                                               7
                                                                                         deben estar dentro
                                                                                         del directorio
                                                                                         controller


                                             Los nombres de los
                                             archivos controller son el
                                                                          8
                                             plural del nombre del
                                             modelo seguido por un
                                             subrayado y la palabra
                                             controller.
Vista

Nuestra primera aplicación en
     CakePHP con MVC
VISTA en
     CakePHP
Para crear vistas en CakePHP se creara en la ruta de la imagen inferior
donde se creo previamente una carpeta llamada tareas y posteriormente se creo un archivo llamado
Index.ctp (ctp. Significa Cake Template).


                         <h2>Tareas</h2>
                         <?php if (empty($tareas)): ?>                 <td>
                         No hay tareas en esta lista                   <?php echo $tarea ['Tarea']['modificado'] ?>
                         <?php else: ?>                                </td>
                         <table>                                       <td>
                         <tr>                                          <!-- acciones en las tareas seran añadidas mas tarde -->
                         <th>Titulo</th>                               </td>
                         <th>Estatus</th>                              </tr>
                         <th>Creado</th>                               <?php endforeach; ?>
                         <th>Modificado</th>                           </table>
                         <th>Acciones</th>                             <?php endif: ?>
                         </tr>                                         <?php echo $this->Html->link('Agregar Tarea',
                         <?php foreach($tareas as $tarea): ?>          array('action'=>'add')); ?>
                         <tr>
                         <td>
                         <?php echo $tarea['Tarea']['titulo'] ?>
                         </td>
                         <td>
                         <?php
                         if ($tarea['Tarea']['hecha']) echo "Hecha";
                         else echo "Pendiente";
                         ?>
                         </td>
                         <td>
                         <?php echo $tarea ['Tarea']['creado'] ?>
                         </td>
VISTA en
     CakePHP
Dentro de nuestro controlador empezaremos a controlar las vistas agregándole
un acción (todo lo que se encuentre dentro de la clase Tareas Controller como
publico se le conoce como acción) llamada index.


<?php
class TareasController extends AppController{
var $name ='Tareas';
function index(){
$this->set('tareas', $this->Tarea->find('all'));
}
}
?>




                                                          Dentro del controlador
                                                     “tareas_controller”, se tiene que
                                                    hacer una conexión con el modelo
                                                       de la aplicación “tarea.php”
VISTA en
    CakePHP
Ingresando nuevamente al http://localhost/listatareas/tareas/index se muestra
configurada nuestra aplicación:
VISTA en
CakePHP
                                                       Archivo vista de la
                                                       acción index de
                                                                                     12
                                                       nuestro controlador.

                                                       El nombre de la
                                                       acción y el nombre
                                                       de su archivo vista
           CTP = Cake Template Pages                   son siempre el
                                                       mismo.




                                                                             Cake tiene un
                                                                                                   10
                                                                             directorio separado
                                                                             para colocar las
           Todas las vistas de un único controlador se mantienen en          vistas.
           un subdirectorio con el mismo nombre que el
           controlador.


                                                               11
VISTA en
        CakePHP
Codigo de Index.ctp

<h2>Tareas</h2>
<?php if (empty($tareas)): ?>
                                                                                                           $tareas = Array creado con
No hay tareas en esta lista
                                                                                                            funcion set() en la acción
<?php else: ?>
<table>                                                                                                              index()
<tr>
<th>Titulo</th>
<th>Estatus</th>
<th>Creado</th>
<th>Modificado</th>
<th>Acciones</th>
</tr>                                                                                                       Lo que hace es recoger la
<?php foreach($tareas as $tarea): ?>                                                                     información que se encuentra
<tr>                                                                                                      en los distintos campos de la
<td>                                                                                                                   tabla.
<?php echo $tarea['Tarea']['titulo'] ?>
</td>
<td>
<?php                                         <td>
if ($tarea['Tarea']['hecha']) echo "Hecha";   <?php echo $tarea ['Tarea']['modificado'] ?>
else echo "Pendiente";                        </td>
?>                                            <td>
</td>                                         <!-- acciones en las tareas seran añadidas mas tarde -->
<td>                                          </td>
<?php echo $tarea ['Tarea']['creado'] ?>      </tr>
</td>                                         <?php endforeach; ?>
                                              </table>
                                              <?php endif: ?>
                                              <?php echo $this->Html->link('Agregar Tarea',              Creamos un link que se llama
                                              array('action'=>'add')); ?>                                     “Agregar Tarea”

More Related Content

What's hot

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
 
Guia practica condicionales en java con NetBeans 01
Guia practica condicionales en java con NetBeans 01Guia practica condicionales en java con NetBeans 01
Guia practica condicionales en java con NetBeans 01Emerson Garay
 
Symfony2 Formacion y primeros pasos
Symfony2  Formacion y primeros pasosSymfony2  Formacion y primeros pasos
Symfony2 Formacion y primeros pasosSoni BM
 
Introduccion A Php
Introduccion A PhpIntroduccion A Php
Introduccion A Phputs
 
Ruby on Rails - ETyC 2011
Ruby on Rails - ETyC 2011Ruby on Rails - ETyC 2011
Ruby on Rails - ETyC 2011Rafael Franco
 
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
 
Fundamentos de Sistemas de Base de Datos (Capítulo 9 y 10)
Fundamentos de Sistemas de Base de Datos (Capítulo 9 y 10)Fundamentos de Sistemas de Base de Datos (Capítulo 9 y 10)
Fundamentos de Sistemas de Base de Datos (Capítulo 9 y 10)Karina Lucio
 
Presentacion de la_estructura_de_c_
Presentacion de la_estructura_de_c_Presentacion de la_estructura_de_c_
Presentacion de la_estructura_de_c_laura cortez
 
5. Curso Java Struts I (Framework para Java) - Curso 2005-2006
5. Curso Java Struts I (Framework para Java) - Curso 2005-20065. Curso Java Struts I (Framework para Java) - Curso 2005-2006
5. Curso Java Struts I (Framework para Java) - Curso 2005-2006Samuel Marrero
 
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
 
Subversion - buenas prácticas
Subversion - buenas prácticasSubversion - buenas prácticas
Subversion - buenas prácticasIker Canarias
 
Desarrollo de Aplicaciones con Ruby on Rails y PostgreSQL
Desarrollo de Aplicaciones con Ruby on Rails y PostgreSQLDesarrollo de Aplicaciones con Ruby on Rails y PostgreSQL
Desarrollo de Aplicaciones con Ruby on Rails y PostgreSQLJosé Alfredo Ramírez
 
Examen febrero 2017-2018_daw_daw_solucion_ (1)
Examen febrero 2017-2018_daw_daw_solucion_ (1)Examen febrero 2017-2018_daw_daw_solucion_ (1)
Examen febrero 2017-2018_daw_daw_solucion_ (1)jomadega1
 

What's hot (19)

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
 
Guia practica condicionales en java con NetBeans 01
Guia practica condicionales en java con NetBeans 01Guia practica condicionales en java con NetBeans 01
Guia practica condicionales en java con NetBeans 01
 
Rails intro
Rails introRails intro
Rails intro
 
Symfony2 Formacion y primeros pasos
Symfony2  Formacion y primeros pasosSymfony2  Formacion y primeros pasos
Symfony2 Formacion y primeros pasos
 
Introduccion A Php
Introduccion A PhpIntroduccion A Php
Introduccion A Php
 
Ruby on Rails - ETyC 2011
Ruby on Rails - ETyC 2011Ruby on Rails - ETyC 2011
Ruby on Rails - ETyC 2011
 
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
 
CRUD básico con Symfony
CRUD básico con SymfonyCRUD básico con Symfony
CRUD básico con Symfony
 
Fundamentos de Sistemas de Base de Datos (Capítulo 9 y 10)
Fundamentos de Sistemas de Base de Datos (Capítulo 9 y 10)Fundamentos de Sistemas de Base de Datos (Capítulo 9 y 10)
Fundamentos de Sistemas de Base de Datos (Capítulo 9 y 10)
 
Presentacion de la_estructura_de_c_
Presentacion de la_estructura_de_c_Presentacion de la_estructura_de_c_
Presentacion de la_estructura_de_c_
 
Guia herramientas de bd
Guia herramientas de bdGuia herramientas de bd
Guia herramientas de bd
 
5. Curso Java Struts I (Framework para Java) - Curso 2005-2006
5. Curso Java Struts I (Framework para Java) - Curso 2005-20065. Curso Java Struts I (Framework para Java) - Curso 2005-2006
5. Curso Java Struts I (Framework para Java) - Curso 2005-2006
 
Guía herramientas de BD PHP
Guía herramientas de BD PHPGuía herramientas de BD PHP
Guía herramientas de BD PHP
 
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
 
Subversion - buenas prácticas
Subversion - buenas prácticasSubversion - buenas prácticas
Subversion - buenas prácticas
 
Asp.net
Asp.netAsp.net
Asp.net
 
Desarrollo de Aplicaciones con Ruby on Rails y PostgreSQL
Desarrollo de Aplicaciones con Ruby on Rails y PostgreSQLDesarrollo de Aplicaciones con Ruby on Rails y PostgreSQL
Desarrollo de Aplicaciones con Ruby on Rails y PostgreSQL
 
Examen febrero 2017-2018_daw_daw_solucion_ (1)
Examen febrero 2017-2018_daw_daw_solucion_ (1)Examen febrero 2017-2018_daw_daw_solucion_ (1)
Examen febrero 2017-2018_daw_daw_solucion_ (1)
 

Viewers also liked

Viewers also liked (16)

Andres Gutierrez
Andres GutierrezAndres Gutierrez
Andres Gutierrez
 
FRAMEWORD Yii
FRAMEWORD YiiFRAMEWORD Yii
FRAMEWORD Yii
 
Yii inicios
Yii iniciosYii inicios
Yii inicios
 
Yii framework
Yii frameworkYii framework
Yii framework
 
Framework Yii
Framework YiiFramework Yii
Framework Yii
 
Apresentando o Yii Framework
Apresentando o Yii FrameworkApresentando o Yii Framework
Apresentando o Yii Framework
 
Conociendo a Laravel, el Framework de PHP para artesanos de la web
Conociendo a Laravel, el Framework de PHP para artesanos de la webConociendo a Laravel, el Framework de PHP para artesanos de la web
Conociendo a Laravel, el Framework de PHP para artesanos de la web
 
Yii framework
Yii frameworkYii framework
Yii framework
 
yii framework
yii frameworkyii framework
yii framework
 
Yii framework
Yii frameworkYii framework
Yii framework
 
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
 
9.laravel
9.laravel9.laravel
9.laravel
 
10 slideshare-02-historia diseño
10 slideshare-02-historia diseño10 slideshare-02-historia diseño
10 slideshare-02-historia diseño
 
Yii Framework
Yii FrameworkYii Framework
Yii Framework
 
Cake PHP
Cake PHPCake PHP
Cake PHP
 
Entendiendo Yii
Entendiendo YiiEntendiendo Yii
Entendiendo Yii
 

Similar to MVC en CakePHP 2.0

Tutorial MVC - Zenphp - Programador PHP
Tutorial MVC - Zenphp - Programador PHPTutorial MVC - Zenphp - Programador PHP
Tutorial MVC - Zenphp - Programador PHPJuan Belón Pérez
 
Zen Scaffolding - Programador PHP
Zen Scaffolding - Programador PHPZen Scaffolding - Programador PHP
Zen Scaffolding - Programador PHPJuan Belón Pérez
 
Desarrollo rapido de aplicaciones web en php con el framework cakephp + scaffold
Desarrollo rapido de aplicaciones web en php con el framework cakephp + scaffoldDesarrollo rapido de aplicaciones web en php con el framework cakephp + scaffold
Desarrollo rapido de aplicaciones web en php con el framework cakephp + scaffoldRefresh Maracaibo
 
Introduccion A Php
Introduccion A PhpIntroduccion A Php
Introduccion A Phputs
 
Introduccion A Php
Introduccion A PhpIntroduccion A Php
Introduccion A Phputs
 
03. Curso .NET con C# autor Universidad de Alicante.pdf
03. Curso .NET con C# autor Universidad de Alicante.pdf03. Curso .NET con C# autor Universidad de Alicante.pdf
03. Curso .NET con C# autor Universidad de Alicante.pdfRamonMartinespaa
 
Guía PHP Orientado a Objeto con MVC
Guía PHP Orientado a Objeto con MVC Guía PHP Orientado a Objeto con MVC
Guía PHP Orientado a Objeto con MVC lissette_torrealba
 
7 Razones para usar las funciones php
7 Razones para usar las funciones php7 Razones para usar las funciones php
7 Razones para usar las funciones phpLeugean Mantilla
 
Exposicion Akelos
Exposicion AkelosExposicion Akelos
Exposicion Akelosdokeosla
 
Arrays renderizables y Estándares de codificación en Drupal
Arrays renderizables y Estándares de codificación en DrupalArrays renderizables y Estándares de codificación en Drupal
Arrays renderizables y Estándares de codificación en DrupalWalter Herrera
 
Estructura de Directorio de KumbiaPHP Framework versión 1.0 Spirit
Estructura de Directorio de KumbiaPHP Framework versión 1.0 SpiritEstructura de Directorio de KumbiaPHP Framework versión 1.0 Spirit
Estructura de Directorio de KumbiaPHP Framework versión 1.0 SpiritDeivinson Tejeda
 
Trabajo practico de lenguaje java.Conceptos. Estructuras. Programacion.
Trabajo practico de lenguaje java.Conceptos. Estructuras. Programacion.Trabajo practico de lenguaje java.Conceptos. Estructuras. Programacion.
Trabajo practico de lenguaje java.Conceptos. Estructuras. Programacion.Mabel2310
 

Similar to MVC en CakePHP 2.0 (20)

Tutorial MVC - Zenphp - Programador PHP
Tutorial MVC - Zenphp - Programador PHPTutorial MVC - Zenphp - Programador PHP
Tutorial MVC - Zenphp - Programador PHP
 
Zen Scaffolding - Programador PHP
Zen Scaffolding - Programador PHPZen Scaffolding - Programador PHP
Zen Scaffolding - Programador PHP
 
Desarrollo rapido de aplicaciones web en php con el framework cakephp + scaffold
Desarrollo rapido de aplicaciones web en php con el framework cakephp + scaffoldDesarrollo rapido de aplicaciones web en php con el framework cakephp + scaffold
Desarrollo rapido de aplicaciones web en php con el framework cakephp + scaffold
 
Introduccion A Php
Introduccion A PhpIntroduccion A Php
Introduccion A Php
 
Introduccion A Php
Introduccion A PhpIntroduccion A Php
Introduccion A Php
 
Curso netcsharp
Curso netcsharpCurso netcsharp
Curso netcsharp
 
03. Curso .NET con C# autor Universidad de Alicante.pdf
03. Curso .NET con C# autor Universidad de Alicante.pdf03. Curso .NET con C# autor Universidad de Alicante.pdf
03. Curso .NET con C# autor Universidad de Alicante.pdf
 
Guía PHP Orientado a Objeto con MVC
Guía PHP Orientado a Objeto con MVC Guía PHP Orientado a Objeto con MVC
Guía PHP Orientado a Objeto con MVC
 
7 Razones para usar las funciones php
7 Razones para usar las funciones php7 Razones para usar las funciones php
7 Razones para usar las funciones php
 
Programación en java
Programación en javaProgramación en java
Programación en java
 
Php
PhpPhp
Php
 
Exposicion Akelos
Exposicion AkelosExposicion Akelos
Exposicion Akelos
 
Funciones
FuncionesFunciones
Funciones
 
Laboratorio interfaces
Laboratorio interfacesLaboratorio interfaces
Laboratorio interfaces
 
PHP - MYSQL
PHP - MYSQLPHP - MYSQL
PHP - MYSQL
 
Funciones en C
Funciones en CFunciones en C
Funciones en C
 
Funciones
FuncionesFunciones
Funciones
 
Arrays renderizables y Estándares de codificación en Drupal
Arrays renderizables y Estándares de codificación en DrupalArrays renderizables y Estándares de codificación en Drupal
Arrays renderizables y Estándares de codificación en Drupal
 
Estructura de Directorio de KumbiaPHP Framework versión 1.0 Spirit
Estructura de Directorio de KumbiaPHP Framework versión 1.0 SpiritEstructura de Directorio de KumbiaPHP Framework versión 1.0 Spirit
Estructura de Directorio de KumbiaPHP Framework versión 1.0 Spirit
 
Trabajo practico de lenguaje java.Conceptos. Estructuras. Programacion.
Trabajo practico de lenguaje java.Conceptos. Estructuras. Programacion.Trabajo practico de lenguaje java.Conceptos. Estructuras. Programacion.
Trabajo practico de lenguaje java.Conceptos. Estructuras. Programacion.
 

More from Saúl Vázquez

Propuesta de estrategia digital para Hotel-Shops
Propuesta de estrategia digital para Hotel-ShopsPropuesta de estrategia digital para Hotel-Shops
Propuesta de estrategia digital para Hotel-ShopsSaúl Vázquez
 
Salir con una persona de internet
Salir con una persona de internetSalir con una persona de internet
Salir con una persona de internetSaúl Vázquez
 
Valores Compañia Hotel-Shop
Valores Compañia Hotel-ShopValores Compañia Hotel-Shop
Valores Compañia Hotel-ShopSaúl Vázquez
 
Sistema para gestión y monitoreo de unidades de emergencia y/o transporte
Sistema para gestión y monitoreo de unidades de emergencia y/o transporteSistema para gestión y monitoreo de unidades de emergencia y/o transporte
Sistema para gestión y monitoreo de unidades de emergencia y/o transporteSaúl Vázquez
 
Presentación Auxiliar de Sistema para gestión de unidades de emergencia y/o t...
Presentación Auxiliar de Sistema para gestión de unidades de emergencia y/o t...Presentación Auxiliar de Sistema para gestión de unidades de emergencia y/o t...
Presentación Auxiliar de Sistema para gestión de unidades de emergencia y/o t...Saúl Vázquez
 
Internet Protocol Secure (IPSec)
Internet Protocol Secure (IPSec)Internet Protocol Secure (IPSec)
Internet Protocol Secure (IPSec)Saúl Vázquez
 
Tipos de Ruido en las telecomunicaciones
Tipos de Ruido en las telecomunicacionesTipos de Ruido en las telecomunicaciones
Tipos de Ruido en las telecomunicacionesSaúl Vázquez
 
Movimientos contraculturas y alternativos
Movimientos contraculturas y alternativosMovimientos contraculturas y alternativos
Movimientos contraculturas y alternativosSaúl Vázquez
 
Resumen del informe de demanda de líneas telefónicas en Chile
Resumen del informe de demanda de líneas telefónicas en ChileResumen del informe de demanda de líneas telefónicas en Chile
Resumen del informe de demanda de líneas telefónicas en ChileSaúl Vázquez
 
Redes de Tecnologías Móviles
Redes de Tecnologías MóvilesRedes de Tecnologías Móviles
Redes de Tecnologías MóvilesSaúl Vázquez
 
Orígenes del internet
Orígenes del internetOrígenes del internet
Orígenes del internetSaúl Vázquez
 

More from Saúl Vázquez (20)

Vodka Bogotá
Vodka BogotáVodka Bogotá
Vodka Bogotá
 
Caso Mercedes Benz
Caso Mercedes BenzCaso Mercedes Benz
Caso Mercedes Benz
 
Zara vs GAP
Zara vs GAPZara vs GAP
Zara vs GAP
 
SGMUET España
SGMUET EspañaSGMUET España
SGMUET España
 
Propuesta de estrategia digital para Hotel-Shops
Propuesta de estrategia digital para Hotel-ShopsPropuesta de estrategia digital para Hotel-Shops
Propuesta de estrategia digital para Hotel-Shops
 
Salir con una persona de internet
Salir con una persona de internetSalir con una persona de internet
Salir con una persona de internet
 
Valores Compañia Hotel-Shop
Valores Compañia Hotel-ShopValores Compañia Hotel-Shop
Valores Compañia Hotel-Shop
 
Sistema para gestión y monitoreo de unidades de emergencia y/o transporte
Sistema para gestión y monitoreo de unidades de emergencia y/o transporteSistema para gestión y monitoreo de unidades de emergencia y/o transporte
Sistema para gestión y monitoreo de unidades de emergencia y/o transporte
 
Raspberry Pi
Raspberry PiRaspberry Pi
Raspberry Pi
 
Presentación Auxiliar de Sistema para gestión de unidades de emergencia y/o t...
Presentación Auxiliar de Sistema para gestión de unidades de emergencia y/o t...Presentación Auxiliar de Sistema para gestión de unidades de emergencia y/o t...
Presentación Auxiliar de Sistema para gestión de unidades de emergencia y/o t...
 
Internet Protocol Secure (IPSec)
Internet Protocol Secure (IPSec)Internet Protocol Secure (IPSec)
Internet Protocol Secure (IPSec)
 
Tipos de Ruido en las telecomunicaciones
Tipos de Ruido en las telecomunicacionesTipos de Ruido en las telecomunicaciones
Tipos de Ruido en las telecomunicaciones
 
Posmodernidad
PosmodernidadPosmodernidad
Posmodernidad
 
Google Presentation
Google PresentationGoogle Presentation
Google Presentation
 
Movimientos contraculturas y alternativos
Movimientos contraculturas y alternativosMovimientos contraculturas y alternativos
Movimientos contraculturas y alternativos
 
Resumen del informe de demanda de líneas telefónicas en Chile
Resumen del informe de demanda de líneas telefónicas en ChileResumen del informe de demanda de líneas telefónicas en Chile
Resumen del informe de demanda de líneas telefónicas en Chile
 
Historia Ethernet
Historia EthernetHistoria Ethernet
Historia Ethernet
 
Redes de Tecnologías Móviles
Redes de Tecnologías MóvilesRedes de Tecnologías Móviles
Redes de Tecnologías Móviles
 
Modelo GOMS
Modelo GOMSModelo GOMS
Modelo GOMS
 
Orígenes del internet
Orígenes del internetOrígenes del internet
Orígenes del internet
 

MVC en CakePHP 2.0

  • 2. ¿Cómo crear una aplicación? Entramos a la carpeta de nuestro Servidor localhost en Nuestro caso wamp
  • 3. ¿Cómo crear una aplicación? Dentro de wamp copiamos La carpeta Cakephp
  • 4. ¿Cómo crear una aplicación? Entramos a la carpeta www
  • 5. ¿Cómo crear una aplicación? Pegamos la carpeta, y la renombramos con el nombre de nuestra aplicación ha crear, en nuestro caso estamos creando una lista de tareas y ya teníamos creada la aplicación con el nombre listatareas.
  • 6. ¿Cómo crear una aplicación? Comprobando que no tenemos nada configurado en nuestra aplicación creada, entramos a localhost/cakephp (desde nuestro navegador) que fue la carpeta copiada y pegada en la carpeta www.
  • 7. ¿Cómo crear una aplicación? Antes de continuar, tenemos que crear la base de datos, en nuestro caso usamos MySQL query browser, creamos una base de datos, llamada listastareas, y creamos una Tabla tareas: USE listatareas; CREATE TABLE tareas ( id int(10) unsigned NOT NULL auto_increment, titulo varchar(255) NOT NULL, hecha tinyint(1) default NULL, creado datetime default NULL, modificado datetime default NULL, PRIMARY KEY (id) );
  • 8. ¿Cómo crear una aplicación? Para tener una conexión con la aplicación, nos dirigimos a la siguiente ruta (dependiendo del nombre de la aplicación que le hallas puesto en nuestro caso listatareas): C:wampwwwlistatareasappConfig, Encontraremos el archivo database.php.default, primero que nada modificamos el nombre y le quitamos el default, y lo dejamos como database.php y abrimos el archivo…
  • 9. ¿Cómo crear una aplicación? Abrimos el documento database.php…buscamos el siguiente codigo: En nuestro caso donde dice public $default, modificamos el login “que diga root” porque es nuestro nombre de usuario en el localhost, y como no pusimos contraseña se lo quitamos y le dejamos las comillas, y pusimos el nombre de nuestra database creada previamente, en el MySQL browser “listatareas”.
  • 10. ¿Cómo crear una aplicación? Modificada nuestra base de datos para nuestra aplicación regresamos a http://localhost/listatareas/ en nuestro navegador.
  • 11. CakePHP CakePHP como convenciones tiene: USE listatareas; Los nombres de las 1 tablas deben ser en CREATE TABLE tareas ( plural id int(10) unsigned NOT NULL auto_increment, titulo varchar(255) NOT NULL, hecha tinyint(1) default NULL, creado datetime default NULL, modificado datetime default NULL, 2 La clave primaria de PRIMARY KEY (id) la tabla tiene que ); ser SIEMPRE el campo id
  • 12. Nuestra primera aplicación en CakePHP con MVC
  • 14. MODELO en CakePHP Para cada tabla que tuviéramos en nuestra base de datos tendríamos que crear un modelo Para esto buscamos la ruta que aparece en la imagen, y creamos un nuevo archivo en la carpeta Model, en nuestro caso creamos uno con el nombre tarea.php Que será el que va hacerse responsable de acceder y modificar datos dentro de la tabla. Dentro del archivo iniciamos con el siguiente codigo: <?php class Tarea extends AppModel { var $name ='Tarea'; } ?> Esta sintaxis siempre debe de estar cada vez que se cree un modelo, siempre tiene que ser de esa manera.
  • 15. MODELO en CakePHP El nombre de la 5 <?php clase es también el class Tarea extends AppModel { singular del nombre var $name ='Tarea'; de la tabla . Pero } CamelCased ?> (Significa que cada palabra que contenga empieza con mayúscula). Todos los modelos que se creen tienen que heredar 6 de la clase AppModel Todos los modelos 4 de una aplicación CakePHP se encontraran en la carpeta Model. El nombre del archivo Model debe ser el singular del nombre de la tabla 3 que tenga la base de datos.
  • 17. CONTROLADOR en CakePHP Los controladores se colocan donde el flujo de la aplicación debe ser controlado. Ejemplo: Para acceder a datos, el controlador es el que llama a los modelos, recupera los datos devueltos Y se los pasa a las vistas. Creando el controlador en la ruta de la imagen izquierda, un documento con el nombre tareas_controller.php le ingresamos como codigo inicial el siguiente: <?php class TareasController extends AppController{ var $name ='Tareas'; } ?> Nota: No tienen que haber un controlador por cada modelo, pueden existir varios controladores que controlen varios modelos o pueden existir varios modelos que usen el mismo controlador. (EN ESTE CASO NO ES UNA CONVENCION DE CakePHP!).
  • 18. CONTROLADOR en CakePHP <?php Los nombres de las class TareasController extends AppController{ clases controller deben 9 var $name ='Tareas'; ser CamelCased y plural } ?> Todos los controllers tienen que heredar de la clase AppController Todos los archivos de clase controller 7 deben estar dentro del directorio controller Los nombres de los archivos controller son el 8 plural del nombre del modelo seguido por un subrayado y la palabra controller.
  • 19. Vista Nuestra primera aplicación en CakePHP con MVC
  • 20. VISTA en CakePHP Para crear vistas en CakePHP se creara en la ruta de la imagen inferior donde se creo previamente una carpeta llamada tareas y posteriormente se creo un archivo llamado Index.ctp (ctp. Significa Cake Template). <h2>Tareas</h2> <?php if (empty($tareas)): ?> <td> No hay tareas en esta lista <?php echo $tarea ['Tarea']['modificado'] ?> <?php else: ?> </td> <table> <td> <tr> <!-- acciones en las tareas seran añadidas mas tarde --> <th>Titulo</th> </td> <th>Estatus</th> </tr> <th>Creado</th> <?php endforeach; ?> <th>Modificado</th> </table> <th>Acciones</th> <?php endif: ?> </tr> <?php echo $this->Html->link('Agregar Tarea', <?php foreach($tareas as $tarea): ?> array('action'=>'add')); ?> <tr> <td> <?php echo $tarea['Tarea']['titulo'] ?> </td> <td> <?php if ($tarea['Tarea']['hecha']) echo "Hecha"; else echo "Pendiente"; ?> </td> <td> <?php echo $tarea ['Tarea']['creado'] ?> </td>
  • 21. VISTA en CakePHP Dentro de nuestro controlador empezaremos a controlar las vistas agregándole un acción (todo lo que se encuentre dentro de la clase Tareas Controller como publico se le conoce como acción) llamada index. <?php class TareasController extends AppController{ var $name ='Tareas'; function index(){ $this->set('tareas', $this->Tarea->find('all')); } } ?> Dentro del controlador “tareas_controller”, se tiene que hacer una conexión con el modelo de la aplicación “tarea.php”
  • 22. VISTA en CakePHP Ingresando nuevamente al http://localhost/listatareas/tareas/index se muestra configurada nuestra aplicación:
  • 23. VISTA en CakePHP Archivo vista de la acción index de 12 nuestro controlador. El nombre de la acción y el nombre de su archivo vista CTP = Cake Template Pages son siempre el mismo. Cake tiene un 10 directorio separado para colocar las Todas las vistas de un único controlador se mantienen en vistas. un subdirectorio con el mismo nombre que el controlador. 11
  • 24. VISTA en CakePHP Codigo de Index.ctp <h2>Tareas</h2> <?php if (empty($tareas)): ?> $tareas = Array creado con No hay tareas en esta lista funcion set() en la acción <?php else: ?> <table> index() <tr> <th>Titulo</th> <th>Estatus</th> <th>Creado</th> <th>Modificado</th> <th>Acciones</th> </tr> Lo que hace es recoger la <?php foreach($tareas as $tarea): ?> información que se encuentra <tr> en los distintos campos de la <td> tabla. <?php echo $tarea['Tarea']['titulo'] ?> </td> <td> <?php <td> if ($tarea['Tarea']['hecha']) echo "Hecha"; <?php echo $tarea ['Tarea']['modificado'] ?> else echo "Pendiente"; </td> ?> <td> </td> <!-- acciones en las tareas seran añadidas mas tarde --> <td> </td> <?php echo $tarea ['Tarea']['creado'] ?> </tr> </td> <?php endforeach; ?> </table> <?php endif: ?> <?php echo $this->Html->link('Agregar Tarea', Creamos un link que se llama array('action'=>'add')); ?> “Agregar Tarea”