Análisis SCRUM Seguridad SEO optimización buscadores Vtiger Javascript Bases de datos SQL AJAX Marketing para bodegas Usabilidad Wordpress Charlas Libros CSS Sistemas Facebook PHP Productividad Joomla Diseño Gráfico Opencart CakePHP Herramientas Motivación y Emprendedores Creatividad Gestión de la empresa Marketing y publicidad Community Manager
David Nieves Coronado | 2 comentarios
CakePHP es un marco de desarrollo [framework] rápido para PHP, libre, de código abierto. Se trata de una estructura que sirve de base a los programadores para que éstos puedan crear aplicaciones Web. Nuestro principal objetivo es que puedas trabajar de forma estructurada y rápida, sin pérdida de flexibilidad.
Con CakePHP el desarrollo web ya no es monótono porque ofrecemos las herramientas para que empieces a escribir el código que realmente necesitas: la lógica específica de tu aplicación. Consigue una copia de CakePHP, empieza con lo verdaderamente importante y no reinventes la rueda cada vez que te incorpores a un nuevo proyecto.
Las aplicaciones CakePHP bien escritas siguen el patrón de diseño de software MVC (Modelo-Vista-Controlador). Programar utilizando MVC consiste en separar la aplicación en tres partes principales. El modelo representa los datos de la aplicación, la vista hace una presentación del modelo de datos, y el controlador maneja y enruta las peticiones [requests] hechas por los usuarios.
En la raíz de nuestro sitio CakePhp tendremos estas 3 carpetas:
Vamos a crear una aplicación cuya función sea mostrar articulos de nuestra base de datos.
1.- Crear un modelos para los artículos. app/model/post.php
<?php
class Post extends AppModel
{
var $name = ‘Post’;
}
?>
Nombrando nuestro modelo como Post, CakePHP puede automáticamente inferir que este modelo será usado en el controlador PostsController, y será atado a la tabla de la base de datos llamada posts.
2.- Crear un controlador para nuestros artículos. app/controller/posts_controller.php
<?php
class PostsController extends AppController
{
var $name = ‘Posts’; //Hasta aquí es como debe verse un controlador básico.
//Agregamos una acción a nuestro controlador (funcion index()) esto representaría a la hora de poner una url www.example.com/posts/index o www.example.com/posts/
function index()
{
$this->set(‘posts’, $this->Post->find(‘all’)); //Con la función set() pasaremos los datos del controlador a la vista, lo que estamos haciendo es igualar la variable ‘posts’ al valor retornado por el método del modelo Post find(‘all’)
}
}
?>
3.- Crear una vista para los articulos, para la acción index. app/views/posts/index.ctp
<?php
foreach ($posts as $post):
echo $post['Post']['id']; //Mostramos el id del artículo.
echo $html->link($post['Post']['title'],”
/posts/view/”.$post['Post']['id']); //Con la función Link() fabricamos un enlace para ver el articulo aparte. Esto te gereraría por ejemplo: <a href=”/posts/view/3″>Titulo del articulo (con id=3)</a> LA ACCIÓN VIEW LA DEFINIREMOS MÁS ADELANTE.
echo $post['Post']['created']; //Mostramos la fecha de creación.
endforeach;
?>
4.- Crear una nueva acción (view) para nuestros articulos en el controlador. app/controller/posts_controller.php
En el punto 2 creamos una acción (function index()) para que nos represente la vista a la hora de entrar al index, la cual la acabamos de desarrollar en el punto 3 mostrando una lista de todos nuestros artículos. Lo que vamos a hacer ahora es otra acción que muestre el post individual pasándole como condición el id del mismo.
En nuestro controlador, Debajo de la acción “function index()” crearemos la nueva acción “function view()” con el siguiente código.
function view($id = null)
{
$this->Post->id = $id;
$this->set(‘post’, $this->Post->read()); //igualamos la variable ‘posts’ al valor retornado por el método del modelo Post read()
}
Una vez creada la acción y la vista (punto 5) si por ejemplo en nuestro navegador ponemos la dirección http://nombreWebCakePhp/posts/view/5 nos mostrará el artículo con id=5.
5.- Creamos la vista para nuestra acción view. app/views/posts/view.ctp
<h1><?php echo $post['Post']['title']?></h1>
<p><small>Creado: <?php echo $post['Post']['created']?></small></p>
<p><?php echo $post['Post']['body']?></p>
<< Post Anterior | Post Siguiente >>Recopilación Básica CakePhp fue posteado el diciembre 22, 2011 a las 10:30 en CakePHP y. fue modificado el diciembre 22, 2011 at 12:06. Puedes seguir cualquier respuesta a esta entrada a través de la RSS 2.0 feed. Puedes dejar una respuesta o hacer un trackback desde tu web.
2 Comments
Baldomero on 01/31/2013 at 13:58.
Hola, muy bueno tu tutorial, queria hacerte una consulta, necesito cargar una libreria ( colorbox) pero yo se que se tiene que importar en algun archivo para que sea generico, ya que si importo en home.ctp, esa libreria solo estara en ese archivo.
la pregunta es facil pero soy un nobato con MVC.
gracias de antemano
David Nieves Coronado on 02/01/2013 at 13:29.
Hola Baldomero, lo primero gracias por tu pregunta.
La mejor forma de que un archivo sea genérico, ya sea una librería, un css, un simple js etc… Debes añadirlo en el Layout principal, previamente has de tener tu plataforma cakephp organizada con todos los archivos/carpetas que componen tu layout. Para entrar más en detalle visita -> http://book.cakephp.org/2.0/en/views.html
Saludos desde Consultoria Innova.