Por

download Por

of 118

description

k

Transcript of Por

Informacin generalAplicaciones Yii se organizan de acuerdo con elmodelo-vista-controlador (MVC)patrn arquitectnico.Modelosrepresentar datos, lgica de negocio y reglas;vistasson la representacin de salida de los modelos;ycontroladorestoman de entrada y la convierten a los comandos delos modelosypuntos devista.Adems de MVC, aplicaciones Yii tambin tienen las siguientes entidades: guiones deentrada:son scripts PHP que son directamente accesibles por los usuarios finales.Ellos son responsables de iniciar un ciclo de manejo peticin. aplicaciones: son globalmente objetos accesibles que gestionan los componentes de aplicaciones y coordinan a cumplir con las solicitudes. componentes de laaplicacin:son objetos registrados en las aplicaciones y proporcionan varios servicios para el cumplimiento de las solicitudes. Mdulos: son paquetes independientes que contienen completa MVC por s mismos.Una aplicacin puede ser organizado en trminos de mltiples mdulos. filtros: representan cdigo que necesita ser invocado antes y despus de la manipulacin real de cada solicitud por los controladores. Widgets: son objetos que se pueden incrustar envistas.Pueden contener lgica del controlador y pueden ser reutilizados en diferentes puntos de vista.El siguiente diagrama muestra la estructura esttica de una aplicacin:

Scripts de Entrada1. Aplicaciones web2. Aplicaciones de Consola3. Definicin de ConstantesSecuencias de comandos de entrada son el primer paso en el proceso de bootstrapping aplicacin.Una aplicacin (ya sea de aplicacin Web o una aplicacin de consola) tiene una nica secuencia de comandos de entrada.Los usuarios finales hacen peticiones a los scripts de entrada, que ejemplifican los casos de aplicacin y remitir la solicitud a ellos.Guiones de entrada para aplicaciones web deben ser almacenados bajo directorios accesibles Web para que puedan tener acceso a los usuarios finales.A menudo se nombran comoindex.php, pero tambin se puede usar cualquier otro nombre, servidores web proporcionados pueden localizarlos.Guiones de entrada para aplicaciones de consola generalmente se almacenan bajo laruta de la basede las solicitudes y se nombran comoy(con la.phpsufijo).Ellos deben hacer ejecutable de manera que los usuarios pueden ejecutar aplicaciones de consola mediante el comando./yii [argumentos][opciones].Guiones de entrada hacen principalmente los siguientes trabajos: Definir constantes globales; RegistrarseCompositor cargadorautomtico; Incluya elYiiarchivo de clase; Configuracin de la aplicacin de carga; Crear y configurar unaaplicacin deejemplo; Llamey \ Base \ Application :: run ()para procesar la solicitud entrante.Aplicaciones webEl siguiente es el cdigo en el script de entrada para laplantilla de proyecto WebBsica. Cors :: className (), 'coros' => ['Origen' = > ['http://www.myserver.net'], 'Access-Control-Request-Mtodo' => ['GET', 'cabeza', 'Opciones'],],],], padres :: comportamientos ());}Usted puede sintonizar las cabeceras CORS por imperiosas parmetros por defecto en una base por accin.Por ejemplo la adicin de losAccess-Control-Allow-credencialespara elinicio de sesinde accin que se podra hacer as:uso Yii \ Filtros \ Cors; utilizar y \ ayudantes \ ArrayHelper; funcin pblica

comportamientos () {regresan

ArrayHelper :: merge ([["clase" => Cors :: className (), 'coros' => ['Origen' = > ['http://www.myserver.net'], "Acceso-Control-Request-Mtodo'=> [' GET ',' cabeza ',' Opciones '],],' acciones'=> [' login '=> [' Access-Control-Allow-Credenciales '=> true,]]],], padres :: comportamientos ());}Reproductores1. El uso de Widgets2. La creacin de Widgets3. Mejores prcticasLos widgets son bloques de construccin reutilizables usados enpuntos de vistapara crear elementos de la interfaz de usuario complejas y configurables en una forma orientada a objetos.Por ejemplo, un widget selector de fechas puede generar un selector de fechas de fantasa que permite a los usuarios elegir una fecha como su entrada.Todo lo que necesitas hacer es insertar el cdigo en una vista como la siguiente:

Hay un buen nmero de widgets incluido con Yii, comoformaactiva,men,los widgets jQueryUI,widgets de TwitterBootstrap.A continuacin, vamos a introducir los conocimientos bsicos acerca de los widgets.Por favor, consulte la documentacin de la API clase si quieres aprender sobre el uso de un widget en particular.El uso de WidgetsWidgets se utilizan principalmente enpuntos devista.Usted puede llamar aly \ Base \ Widget :: widget de ()mtodo para usar un widget en una vista.El mtodo tiene unaconfiguracin dematriz para la inicializacin del widget y devuelve el resultado prestacin del widget.Por ejemplo, el cdigo siguiente inserta un widget selector de fecha que est configurado para utilizar la lengua rusa y mantener la entrada en elFROM_DATEatributo de$modelo.

Algunos widgets pueden tomar un bloque de contenido que debe ser encerrado entre la invocacin dey \ Base \ Widget :: begin ()yy \ Base \ Widget :: end().Por ejemplo, el cdigo siguiente utiliza lasYii \ Widgets \ ActiveFormwidget para generar un formulario de acceso.El widget se generar la apertura y cierreetiquetas en el lugar dondecomenzar ()yend ()se llaman, respectivamente.Cualquier cosa en el medio se representa como es.

Tenga en cuenta que a diferencia dey \ Base \ Widget :: widget de(),que devuelve el resultado prestacin de un widget, el mtodoy \ Base \ Widget :: begin ()devuelve una instancia del widget que se puede utilizar para construir el contenido del widget.Configuracin de los valores predeterminados globalesValores predeterminados globales para un tipo de widget puede ser configurado a travs de contenedores DI:\ Yii :: $ contenedor -> set ('y \ Widgets \ LinkPager', ['maxButtonCount' => 5]);Veala seccin "Uso prctico" en la inyeccin de dependencias gua de contenedorespara los detalles.La creacin de WidgetsPara crear un widget, se extienden desdey \ Base \ Widgety anular ely \ Base \ Widget :: init ()y / o() y \ Base \ Widget :: runmtodos.Por lo general, elinit ()mtodo debe contener el cdigo que normaliza las propiedades del widget, mientras que elrun ()mtodo debe contener el cdigo que genera el resultado prestacin del widget.El resultado de representacin puede estar directamente "eco" o devuelto como una cadena derun().En el siguiente ejemplo,HelloWidgetHTML-codifica y muestra el contenido asignado a sumensaje dela propiedad.Si la propiedad no est definida, se mostrar "Hello World" de forma predeterminada.namespace app \ components ; use

yii \ base \ Widget ; use yii \ helpers \ Html ; class

HelloWidget extends Widget { public $message ; public funcin

init () {padres :: init (); si ($ this -> mensaje === nula) {$ this -> mensaje = 'Hola Mundo';}} public function

run () {volver Html :: encode ( $ this -> mensaje);}}Para usar este widget, simplemente inserte el cdigo siguiente en una visin:

contenido que puede contener 's

A veces, un widget puede tener que hacer una gran parte de los contenidos.Si bien se puede incrustar el contenido dentro delrun ()mtodo, un enfoque mejor es ponerlo en unavistay llamaday \ Base \ Widget :: render ()para hacerlo.Por ejemplo,funcin pblica run () {volver

$ this -> render ('hola');}Por defecto, las vistas de un widget se deben guardar en los archivos de laWidgetPath / vistasde directorio, dondeWidgetPathrepresenta el directorio que contiene el archivo de clase de widgets.Por lo tanto, el ejemplo de arriba har que la vista de archivos@ app / componentes / views /hello.php,asumiendo la clase Widget se encuentra debajo@ app /componentes.Usted puede anular ely \ Base \ Widget :: () getViewPathmtodo para personalizar el directorio que contiene los archivos de vista de widgets.Mejores prcticasLos widgets son una forma orientada a objetos de la reutilizacin de vista de cdigo.Al crear widgets, an debe seguir el patrn MVC.En general, usted debe mantener la lgica en las clases de widgets y mantenga su presentacin enpuntos devista.Reproductores deben ser diseados para ser autnomo.Es decir, cuando se utiliza un widget, usted debera ser capaz de simplemente dejarlo caer en una vista sin hacer nada ms.Esto podra ser difcil si un widget requiere recursos externos, tales como CSS, JavaScript, imgenes, etc. Afortunadamente, Yii proporciona el soporte parapaquetes deactivos,que pueden ser utilizados para resolver el problema.Cuando un widget contiene vista de cdigo solamente, que es muy similar a unavista.De hecho, en este caso, la nica diferencia es que un widget es una clase redistribuible, mientras que un punto de vista es slo un script PHP claro que prefiere mantenerse dentro de su aplicacin.Activos1. Paquetes de activos2. Definicin de paquetes de activos3. El uso de paquetes de activos4. Paquetes de activos comnmente usados5. Conversin de Activos6. Combinando y Comprimir ActivosUn activo en Yii es un archivo que puede ser referenciado en una pgina Web.Puede ser un archivo CSS, un archivo JavaScript, un archivo de imagen o vdeo, etc. Los activos se encuentran en los directorios web accesibles y estn directamente servido por los servidores Web.A menudo es preferible administrar los activos mediante programacin.Por ejemplo, cuando se utiliza ely \ jui \ DatePickerWidget en una pgina, incluir automticamente el CSS necesario y archivos de JavaScript, en lugar de pedir que encontrar manualmente estos archivos e incluirlos.Y cuando se actualiza el widget a una nueva versin, se utilizar automticamente la nueva versin de los archivos activos.En este tutorial, vamos a describir la capacidad de gestin de activos de gran alcance previsto en Yii.Paquetes de activosYii gestiona activos en la unidad delpaquete deactivos.Un paquete de activos es simplemente una coleccin de activos situados en un directorio.Cuando se registra un paquete de activos en unavista, que incluir la CSS y los archivos JavaScript en el paquete en la pgina web prestado.Definicin de paquetes de activosPaquetes de activos se especifican como clases PHP que se extienden desdey \ web \AssetBundle.El nombre de un paquete es simplemente su correspondiente nombre completo de la clase PHP (sin la barra invertida inicial).Una clase de paquete de activos debe serautocargable.Por lo general, especifica dnde se encuentran los activos, lo CSS y JavaScript archivos del paquete contiene, y cmo el paquete depende de otros paquetes.El cdigo siguiente define el haz principal activo utilizado porla plantilla bsica delproyecto: