Publicado el 22 de Diciembre del 2018
2.009 visualizaciones desde el 22 de Diciembre del 2018
2,1 MB
452 paginas
Creado hace 5a (04/07/2018)
Guía Definitiva de Yii 2.0
http://www.yiiframework.com/doc/guide
Qiang Xue,
Alexander Makarov,
Carsten Brandt,
Klimov Paul,
and
many contributors from the Yii community
Español translation provided by:
Antonio Ramirez,
Daniel Gómez Pan,
’larnu’,
Luciano Baraglia
This tutorial is released under the Terms of Yii Documentation.
Copyright 2014 Yii Software LLC. All Rights Reserved.
Índice general
1. Introducción
1.1. ¿Qué es Yii? . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2. Actualizar desde Yii 1.1 . . . . . . . . . . . . . . . . . . . . .
2. Primeros pasos
Instalar Yii
2.1.
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2. Corriendo Aplicaciones . . . . . . . . . . . . . . . . . . . . . .
2.3. Diciendo Hola . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.4. Trabajando con Formularios . . . . . . . . . . . . . . . . . . .
2.5. Trabajar con Bases de Datos
. . . . . . . . . . . . . . . . . .
2.6. Generando Código con Gii . . . . . . . . . . . . . . . . . . . .
2.7. Mirando Hacia Adelante . . . . . . . . . . . . . . . . . . . . .
1
1
2
15
15
20
25
28
33
39
45
3. Estructura de una aplicación
47
47
3.1.
Información general . . . . . . . . . . . . . . . . . . . . . . . .
48
3.2. Scripts de Entrada . . . . . . . . . . . . . . . . . . . . . . . .
50
3.3. Aplicaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . .
62
3.4. Componentes de la Aplicación . . . . . . . . . . . . . . . . . .
64
3.5. Controladores . . . . . . . . . . . . . . . . . . . . . . . . . . .
74
3.6. Modelos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
84
3.7. Vistas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.8. Filtros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
99
3.9. Widgets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
3.10. Módulos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
3.11. Assets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
3.12. Extensiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
4. Gestión de las peticiones
Información General
143
4.1.
. . . . . . . . . . . . . . . . . . . . . . . 143
4.2. Bootstrapping . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
4.3. Enrutamiento y Creación de URLS . . . . . . . . . . . . . . . 145
4.4. Peticiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
4.5. Respuestas
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
iii
iv
ÍNDICE GENERAL
4.6. Sesiones (Sessions) y Cookies
. . . . . . . . . . . . . . . . . . 168
4.7. Gestión de Errores . . . . . . . . . . . . . . . . . . . . . . . . 175
4.8. Registro de anotaciones
. . . . . . . . . . . . . . . . . . . . . 179
5. Conceptos clave
189
5.1. Componentes . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
5.2. Propiedades . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
5.3. Eventos
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
5.4. Comportamientos . . . . . . . . . . . . . . . . . . . . . . . . . 199
5.5. Configuración . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
5.6. Alias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
5.7. Autocarga de clases . . . . . . . . . . . . . . . . . . . . . . . . 213
5.8. Localizador de Servicios . . . . . . . . . . . . . . . . . . . . . 215
5.9. Contenedor de Inyección de Dependencias . . . . . . . . . . . 217
6. Trabajar con bases de datos
225
. . . . . . . . . . . . . . 225
6.1. Objetos de Acceso a Bases de Datos
6.2. Constructor de Consultas
. . . . . . . . . . . . . . . . . . . . 237
6.3. Migración de Base de Datos . . . . . . . . . . . . . . . . . . . 248
7. Obtener datos de los usuarios
271
7.1. Validación de Entrada . . . . . . . . . . . . . . . . . . . . . . 273
7.2. Subir Archivos
. . . . . . . . . . . . . . . . . . . . . . . . . . 287
7.3. Obtención de datos para los modelos de múltiples . . . . . . . 293
8. Visualizar datos
295
8.1. Paginación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
8.2. Trabajar con Scripts del Cliente . . . . . . . . . . . . . . . . . 302
8.3. Temas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
9. Seguridad
307
9.1. Autorización . . . . . . . . . . . . . . . . . . . . . . . . . . . 309
9.2. Trabajar con Passwords
. . . . . . . . . . . . . . . . . . . . . 324
10.Caché
329
10.1. El Almacenamiento en Caché . . . . . . . . . . . . . . . . . . 329
10.2. Almacenamiento de Datos en Caché
. . . . . . . . . . . . . . 329
10.3. Caché de Fragmentos . . . . . . . . . . . . . . . . . . . . . . . 338
10.4. Caché de Páginas . . . . . . . . . . . . . . . . . . . . . . . . . 342
10.5. Caché HTTP . . . . . . . . . . . . . . . . . . . . . . . . . . . 343
11.Servicios Web RESTful
347
11.1. Guía Breve . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347
11.2. Recursos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
11.3. Controladores . . . . . . . . . . . . . . . . . . . . . . . . . . . 356
ÍNDICE GENERAL
v
11.4. Enrutamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . 359
11.5. Formato de Respuesta . . . . . . . . . . . . . . . . . . . . . . 361
11.6. Autenticación . . . . . . . . . . . . . . . . . . . . . . . . . . . 364
11.7. Limitando el rango (rate)
. . . . . . . . . . . . . . . . . . . . 367
11.8. Versionado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368
11.9. Manejo de errores . . . . . . . . . . . . . . . . . . . . . . . . . 371
12.Herramientas de Desarrollo
375
13.Pruebas
379
13.1. Preparación del entorno de test . . . . . . . . . . . . . . . . . 381
13.2. Tests de Unidad . . . . . . . . . . . . . . . . . . . . . . . . . 382
13.3. Tests Funcionales . . . . . . . . . . . . . . . . . . . . . . . . . 382
13.4. Fixtures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384
13.5. Administrar Fixtures . . . . . . . . . . . . . . . . . . . . . . . 389
14.Temas especiales
393
14.1. Crear tu propia estructura de Aplicación . . . . . . . . . . . . 395
14.2. Validadores del framework . . . . . . . . . . . . . . . . . . . . 398
14.3. Envío de Emails
. . . . . . . . . . . . . . . . . . . . . . . . . 411
14.4. Usar motores de plantillas . . . . . . . . . . . . . . . . . . . . 418
14.5. Trabajar con código de terceros . . . . . . . . . . . . . . . . . 419
15.Widgets
423
16.Clases auxiliares
427
16.1. Helpers
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 427
16.2. ArrayHelper . . . . . . . . . . . . . . . . . . . . . . . . . . . . 429
. . . . . . . . . . . . . . . 436
16.3. Clase auxiliar Html (Html helper)
16.4. Clase Auxiliar URL (URL Helper)
. . . . . . . . . . . . . . . 443
vi
ÍNDICE GENERAL
Capítulo 1
Introducción
1.1.
¿Qué es Yii?
Yii es un framework de PHP de alto rendimiento, basado en componentes
para desarrollar aplicaciones web modernas en poco tiempo. El nombre Yii
significa “simple y evolutivo” en chino. También se puede considerar como
un acrónimo de Yes It Is (que en inglés significa Sí, eso es)!
1.1.1.
¿En qué es mejor Yii?
Yii es un framework genérico de programación web, lo que significa que se
puede utilizar para desarrollar todo tipo de aplicaciones web en PHP. Debido
a su arquitectura basada en componentes y a su sofisticada compatibilidad
de caché, es especialmente apropiado para el desarrollo de aplicaciones de
gran envergadura, como portales, foros, sistemas de gestión de contenidos
(CMS), proyectos de comercio electrónico, servicios web compatibles con la
arquitectura REST y muchas más.
1.1.2.
¿Cómo se compara Yii con otros frameworks?
Si estás familiarizado con otros framework, puedes apreciar como se com-
para Yii con ellos:
Como la mayoría de los framework de PHP, Yii implementa el patrón de
diseño MVC (Modelo-Vista-Controlador) y promueve la organización
de código basada en este patrón.
La filosofía de Yii consiste en escribir el código de manera simple y
elegante, sin sobrediseñar nunca por el mero hecho de seguir un patrón
de diseño determinado.
Yii es un framework completo que provee muchas características pro-
badas y listas para usar, como los constructores de consultas y la clase
ActiveRecord para las bases de datos relacionales y NoSQL, la compa-
1
2
CAPÍTULO 1. INTRODUCCI ÓN
tibilidad con la arquitectura REST para desarrollar API, la compati-
bilidad de caché en varios niveles y muchas más.
Yii es extremadamente extensible. Puedes personalizar o reemplazar
prácticamente cualquier pieza de código de base, como se puede tam-
bién aprovechar su sólida arquitectura de extensiones para utilizar o
desarrollar extensiones distribuibles.
El alto rendimiento es siempre la meta principal de Yii.
Yii no es un proyecto de un sola persona, detrás de Yii hay un sólido equipo de
desarrollo1, así como una gran comunidad en la que numerosos profesionales
contribuyen constantemente a su desarrollo. El equipo de desarrollo de Yii
se mantiene atento a las últimas tendencias de desarrollo web, así como
a las mejores prácticas y características de otros frameworks y proyectos.
Las buenas prácticas y características más relevantes de otros proyectos se
incorporan regularmente a la base del framework y se exponen a través de
interfaces simples y elegantes.
1.1.3. Versiones de Yii
Actualmente existen dos versiones principales de Yii: la versión 1.1 y la
versión 2.0. Para la versión 1.1, que es de la generación anterior, actualmente
solo se ofrece mantenimiento. La versión 2.0 está completamente reescrita
y adopta las últimas tecnologías y protocolos, incluidos Composer, PSR,
namespaces, traits, etc. La versión 2.0 representa la actual generación del
framework y su desarrollo recibirá el principal esfuerzo en los próximos años.
Esta guía está basada principalmente en la versión 2.0. del framework.
1.1.4. Requisitos
Yii 2.0 requiere PHP 5.4.0 o una versi´
Comentarios de: Guía Definitiva de Yii 2.0 (0)
No hay comentarios