Your SlideShare is downloading. ×
  • Like
PROGRAMACIÓN DE APLICACIÓNS CO FRAMEWORK CAKEPHP
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

PROGRAMACIÓN DE APLICACIÓNS CO FRAMEWORK CAKEPHP

  • 2,571 views
Published

Introdución o uso de cake nas I Xornadas de Programación Web en Software Libre de Ousli

Introdución o uso de cake nas I Xornadas de Programación Web en Software Libre de Ousli

Published in Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
2,571
On SlideShare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
155
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. PROGRAMACIÓN DE APLICACIÓNS CO FRAMEWORK CAKEPHP Toni Martínez Carballo - http://ousli.org
  • 2. INDICE 1.INTRODUCCIÓN 2.INSTALACIÓN E CONFIGURACIÓN DE CAKEPHP 3.MVC 4.CONVENCIÓNS DE CAKE 5.MODELO 6.CONTROLADOR 7.VISTA 8.BIBLIOGRAFÍA
  • 3. 1. INTRODUCCIÓN Arquitectura MVC (Modelo­Vista­Controlador). ● Integración de CRUD (Acrónimo de Create Read Update Delete). Esto permitiranos  ● facer consultas coa base de datos de forma sinxela, abstraéndonos en moitos  casos do uso de SQL. Uso de URL amigables para os buscadores, ademais de poder personalizalas o  ● noso gusto. Application Scaffolding ● Validación de formularios integrada ● Sistema de templates doado e rápido ● Sistema ACL propio. ● Limpeza de Datos, moi útil para liberar dos datos enviados polos usuarios de  ● ataques ou datos non desexados. Flexible sistema de Cache. ●
  • 4. 1. INTRODUCCIÓN Cake php ademais conta con outras características,  non tan técnicas, que fan deste framework unha  solución para ter moi en conta o planificar o  desenvolvemento dunha aplicación web. Comunidade activa e amigable. ● Licencia Flexible ­­> MIT License ● Compatible con PHP 4 e PHP 5 ●
  • 5. 2. INSTALACIÓN E CONFIGURACIÓN DE  CAKEPHP Requisitos Antes de empezar a instalación debemos comprobar os  requerimentos básicos para o uso do framework. Os seus  requerementos son: Un servidor HTTP, como apache (non provei en outro), que  ● teña habilitado as sesións e o módulo mod_rewrite. PHP en verisións superioriores a 4.3.2 se se trata de php4, en  ● php5 tamé funciona perfectamente. Unha base de datos. Cake soporta MySQL e PostgreSQL  ● aínda que pode funcionar con máis cun wraper para ADODB.
  • 6. 2. INSTALACIÓN E CONFIGURACIÓN DE  CAKEPHP ¡Vamos coa Instalación! DESCARGAR CAKE PHP ● Cakephp ten neste intre dous brazos de desenvolvemento: 1.1.x.x ­­­> Actualmente 1.1.4797 – 1.2.x.x ­­> Aínda ¡Inestable! – Descargamos cakephp da súa web http://cakephp.org en concreto de  http://cakeforge.org/projects/cakephp/ DESCOMPRIMIR    tar xvfz cake_1.1.13.4797.tar.gz ●
  • 7. 2. INSTALACIÓN E CONFIGURACIÓN DE  CAKEPHP PARA A INSTALACIÓN  TEMOS TRES OPCIÓNS INSTALACIÓN PARA DESENVOLVEMENTO (¡Rápida!) – CONFIGURACIÓN DE PRODUCCIÓN – CONFIGURACIÓN AVANZADA –
  • 8. 2. INSTALACIÓN E CONFIGURACIÓN DE  CAKEPHP INSTALACIÓN PARA DESENVOLVEMENTO Simplemente consiste en copiar os ficheiros de cakephp nuna carpeta dentro  do noso DocumentRoot, neste caso o noso DocumentRoot será /var/www/ polo  que podemos copiar o contido da descompresión anterior no ake en  /var/www/cake/ e deste modo facendo un http://localhost/cake/ xa podemos  acceeder a nosa instalación. <Directory "/var/www/cake3/"> Options Indexes MultiViews FollowSymLinks AllowOverride All Order allow,Deny Allow from all </Directory> ¡PERO! mod_rewrite instalado e con AllowOverride All para ó directorio 
  • 9. 2. INSTALACIÓN E CONFIGURACIÓN DE  CAKEPHP INSTALACIÓN PARA DESENVOLVEMENTO ¿FUNCIONA?
  • 10. 2. INSTALACIÓN E CONFIGURACIÓN DE CAKEPHP INSTALACIÓN DE PRODUCCIÓN Esta configuración, poderíamos dicir que é unha adaptación da ● anterior pero para unha web en producción, é dicir, nun dominio de internet no que tan só funcione esa web. mod_rewrite instalado e con AllowOverride All para ó directorio  ● Para que sexa nun dominio concreto, configuraremos un VirtualHost ● <VirtualHost *>         ServerName charlacake.net         DocumentRoot /var/www/cake3/app/webroot/         <Directory "/var/www/cake3/app/webroot/">                         Options Indexes MultiViews FollowSymLinks                         AllowOverride All                         Order allow,Deny                         Allow from all         </Directory> </VirtualHost>
  • 11. 2. INSTALACIÓN E CONFIGURACIÓN DE CAKEPHP CONFIGURACIÓN AVANZADA A configuración avanzada consiste en que tódolas webs que empregen cake e que teñamos no noso servidor, empregen a mesma librería de cake para que non teña que ser incluida en cada unha das webs.
  • 12. 2. INSTALACIÓN E CONFIGURACIÓN DE CAKEPHP CONFIGURACIÓN A BASE DE DATOS Temos que crear unha base de datos e darlle acceso a un usuario a ela. ● As opcións de configuración están en cake/app/config/database.php ● Este ficheiro o creamos a partir do que trae cake de exemplo e que se ● chama cake/app/config/databas.php.default var $default = array('driver' => 'mysql',                                                   'connect' => 'mysql_connect',                      'host' => 'localhost',                      'login' => 'inestable',                      'password' => 'inestable',                      'database' => 'xestion',                      'prefix' => '');
  • 13. 2. INSTALACIÓN E CONFIGURACIÓN DE CAKEPHP CONFIGURACIÓN AVANZADA Por exemplo, poderíamos facer a seguinte instalación: /usr/lib/cake -----> Aquí gardaríamos a librería de cake. ● /home/toni/miweb ---> Aquí gardaríamos os php da nosa aplicación. ● /var/www/toniblog ---> Aquí gardaríamos o webroot (ese directorio indícase ● no DocumentRoot de apache). Inicializamos as constantes no index.php do noso DocumentRoot if (!defined('ROOT')) { define('ROOT', DS.'home'.DS.'toni'); } if (!defined('APP_DIR')) { define ('APP_DIR', 'miweb'); } if (!defined('CAKE_CORE_INCLUDE_PATH')) { define('CAKE_CORE_INCLUDE_PATH', DS.'usr'.DS.'lib'); }
  • 14. 3.MVC
  • 15. 4. CONVENCIÓNS DE CAKE Nome dos modelos: <nome_singular_obxeto>, coa primeira letra en  ● maiúscula. Por exemplo o modelo que reflexa a entidade count é  Count. O nome do ficheiro php que codifica o modelo ten o seu  mesmo nome pero en minúsculas, ex: count.php Nome dos controladores: <nome_plural_modelo>Controller Por  ● exemplo CountsController e o seu ficheiro sería en minúsculas e  unha barra baixa para separar as verbas: counts_controller.php Nome das vistas: <nome_da_acción> Por exemplo: add.thtml ● Claves foráneas: <nome_modelo_singular_id> Por exemplo en a  ● clave foranea de Count en Transaction é count_id. Nome das táboas: <nome_modelo_plural>, en minúsculas. Por  ● exemplo a táboa de Count é counts
  • 16. 5. MODELO ¡IMPLEMENTAREMOS ESTA APLICACIÓN! Faremos un exemplo en  ¡vivo! dunha simple  aplicación que xestione a  contabilidade (a moi menor  escala) dunha entidade
  • 17. 5. MODELO ASOCIACIÓNS ENTRE MODELOS Un dos puntos principais que proporciona cake que é as asociacións  existentes entre modelos que nos permitirán reflexar as relacións entre  táboas. As relacións existentes son: hasOne: Utilizada para indicar unha relación de 1 a 1. ● hasMany: Utilizada para indicar unha relación de 1 a N. ● belongsTo: Utilizada para indicar unha relación de N a 1. ● hasAndBelongsToMany: Utilizada para indicar unha relación de N a N. ●
  • 18. 5. MODELO VARIABLES DO MODELO $primaryKey ● $recursive ● $recursive = 0 (Cake colle os datos da táboa) – $recursive = 1 (Cake colle os datos da taboa e os dos seus asociados) – $recursive = 2 (Cake colle os datos da taboa, os dos seus asociados e  – os dos asociados dos seus asociados) $transactional ● $useTable ● $useDbConfig ●
  • 19. 5. MODELO VARIABLES DO MODELO $validate ● var $validate = array( 'count_id' => VALID_NOT_EMPTY, 'name' => VALID_NOT_EMPTY, 'amount' => VALID_NUMBER, 'date' => VALID_NOT_EMPTY, 'user_id' => VALID_NOT_EMPTY, ); VALID_NOT_EMPTY  ● VALID_NUMBER  ● VALID_EMAIL  ● VALID_YEAR  ● Predefinidas en /cake/lib/validators.php empregando expresións regulares. ●
  • 20. 5. MODELO FUNCIÓNS DE DATOS DO MODELO find ($conditions, $fields, $order, $recursive) ● findAll ($conditions, $fields, $order, $limit, $page, $recursive) ● field ($name, $conditions=null, $order=null) ● findAllBy<fieldName>($value) ● findBy<fieldName>($value) ● findNeighbours ($conditions, $field, $value) ● findCount($conditions) ● generateList ($conditions, $order, $limit, $keyPath, $valuePath) ● read ($fields, $id) ● query($data) ● execute($data) ●
  • 21. 5. MODELO FUNCIÓNS DE CALLBACK beforeFind(&$queryData) ● afterFind($results) ● beforeValidate() ● beforeSave() ● afterSave() ● beforeDelete() ● afterDelete() ●
  • 22. 6. CONTROLADOR No controlador definiremos o código que se debe de executar en cada  ● unha das accións. Todos os controladores, deberemos de gardalos en /app/controllers ● class PostsController extends AppController {     var $name = 'Posts';     function index()     {     }     function view($id)     {     }     function add()     {     }      }
  • 23. 6. CONTROLADOR VARIABLES DO CONTROLADOR $name ● $uses ● $helpers ● var $helpers = array('Html','Ajax','Javascript'); – $layout ● $autoRender ● $beforeFilter ● $components ●
  • 24. 6. CONTROLADOR PARÁMETROS DO CONTROLADOR $this­>data  ● $this­>params['form'] ● $this­>params['ajax'] ● $this­>params['controller'] ● $this­>params['action'] ● $this­>params['pass'] ● $this­>params['url'] ●
  • 25. 6. CONTROLADOR FUNCIÓNS DE DATOS DO CONTROLADOR set($var,$value) ● validateErrors() ● validate() ● redirect($url) ● flash($message,$url,$pause) ● requestAction($url,$extra) ● log($message,$type) ● FUNCIÓNS DE CALLBACK beforeFilter() ● afterFilter() ● beforeRender() ●
  • 26. 7. VISTA A vista é unha plantilla que se chama despois da acción. Estará formada  ● por HTML e PHP. Cake proporciona elementos que permiten a partir de  simples funcións xerar código HTML. Gárdanse en /app/views/posts/add.html ● Os datos que utiliza para mostralos o colle a partir do modelo o cal  ● inicializa unha variable (soe ser arry) mediante a funcion set(). Layouts: Ademáis das vistas, pódense engadir plantillas. Por defecto xa  ● existe unha plantilla que se pode personalizar e ademáis pódense engadir  máis inicializando a variable $layout no modelo. Elements: Permite xerar bloques específicos de HTML de forma  ● automática. Son moi útiles en caso de listas que nos xere a partir dun  array.
  • 27. BIBLIOGRAFÍA http://manual.cakephp.org ● http://api.cakephp.org ● http://cakephp.org/screencasts ● http://es.wikipedia.org/wiki/Modelo_Vista_Controlado ● http://www.mononeurona.org/index.php?idp=738 ●
  • 28. Licenza da ponencia Creative Commons Attribution­ShareAlike 2.5 License Texto da licenza dispoñible en http://creativecommons.org/licenses/by-sa/2.5/legalcode
  • 29. GRAZAS POLA ATENCIÓN ¿DÚBIDAS?
  • 30. GRAZAS POLA ATENCIÓN UNHA COUSIÑA MÁIS