3. 1. INTRODUCCIÓN
Arquitectura MVC (ModeloVistaControlador).
●
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.
●
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
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');
}
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
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
●
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()
{
}
}
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.
28. Licenza da ponencia
Creative Commons AttributionShareAlike 2.5 License
Texto da licenza dispoñible en http://creativecommons.org/licenses/by-sa/2.5/legalcode