Proyecto láminas (anteriormente Zend Framework o ZF ) es un código abierto , orientado a objetos marco de aplicación web implementada en PHP 7 y licenciado bajo la licencia BSD Nueva . [3] El marco es básicamente una colección de paquetes profesionales basados en PHP [4] . [5] El marco utiliza varios paquetes mediante el uso de Composer como parte de sus administradores de dependencia de paquetes; algunos de ellos son PHPUnit para probar todos los paquetes, Travis CI para servicios de integración continuos. Laminas proporciona a los usuarios un soporte del modelo-vista-controlador(MVC) en combinación con la solución Front Controller. [6] La implementación de MVC en Laminas tiene cinco áreas principales. El enrutador y el despachador funcionan para decidir qué controlador ejecutar en función de los datos de la URL , y el controlador funciona en combinación con el modelo y la vista para desarrollar y crear la página web final. [5]
Autor (es) original (es) | Tecnologías Zend |
---|---|
Desarrollador (es) | Fundación Linux |
Versión inicial | 3 de marzo de 2006 [1] |
Lanzamiento estable | 3.0.0 [2] / 28 de junio de 2016 |
Repositorio | Repositorio Zend |
Escrito en | PHP 7 |
Sistema operativo | Multiplataforma |
Licencia | Nueva licencia BSD |
Sitio web | getlaminas |
El 17 de abril de 2019 se anunció [7] que el marco se está transformando en un proyecto de código abierto alojado por la Fundación Linux que se conocerá como Laminas.
Licencia
Laminas tiene la licencia de Nueva BSD aprobada por Open Source Initiative (OSI) . Para ZFv1 todos los contribuyentes de código deben firmar un acuerdo de licencia para colaboradores (CLA) en base a la Apache Software Foundation ‘s CLA . Las políticas de concesión de licencias y contribuciones se establecieron para evitar problemas de propiedad intelectual para los usuarios comerciales de ZF, según Andi Gutmans de Zend. [8] ZF2 y versiones posteriores no tienen CLA. [9] También hay un apoyo a largo plazo disponible para el marco (apoyo a largo plazo o LTS) por una duración total de 3 años.
Componentes y control de versiones
A partir de Zend Framework versión 2.5, los componentes se dividen en paquetes con versiones independientes y zendframework / zendframework se convierte en un metapaquete de Composer. Los componentes del marco introducidos después de la división no se agregan al metapaquete.
Si bien la versión de lanzamiento del metapaquete zendframework / zendframework permanece en 3.0.0, le indicará a Composer que instale las últimas versiones compatibles de los componentes del marco, según las versiones semánticas. De modo que el componente zend-mvc se instalará en su versión actual 3.1.1, zend-servicemanager en la versión 3.3.0 y zend-form en la versión 2.10.2.
Las láminas incluyen los siguientes componentes: [10]
Componente | Descripción |
---|---|
Autenticación | Autentique a los usuarios a través de una variedad de adaptadores y proporcione la identidad autenticada a su aplicación. |
Código de barras | Cree y procese códigos de barras mediante programación como imágenes o en PDF. |
Cache | Implementación de almacenamiento en caché con una variedad de opciones de almacenamiento, así como estrategias de almacenamiento en caché codificadas para devoluciones de llamada, clases y salida. |
Captcha | Genere y valide CAPTCHA usando Figlets, imágenes, ReCaptcha y más. |
Código | Extensiones a la API PHP Reflection, escaneo de código estático y generación de código. |
Instalador de componentes | Complemento de Composer para inyectar módulos y proveedores de configuración en la configuración de la aplicación. |
Config | Leer y escribir archivos de configuración. |
Agregador de configuración | Agregue y combine la configuración de una variedad de fuentes. |
Consola | Cree aplicaciones de consola utilizando la sintaxis o el enrutamiento de getopt, con indicaciones |
Cripta | Herramientas de criptografía sólidas y hash de contraseñas. |
DB | Capa de abstracción de base de datos, abstracción de SQL, abstracción de conjunto de resultados e implementaciones de RowDataGateway y TableDataGateway. |
Depurar | Vuelque de forma segura la información de depuración en HTML. |
DI | Inyección automatizada de dependencias y administrador de instancias. |
Diactoros | Implementaciones de mensajes HTTP PSR-7. |
DOM | Consulte documentos HTML y XML utilizando selectores XPath o CSS. |
Escaper | Escapa de forma segura y segura de HTML, atributos HTML, JavaScript, CSS y URL. |
Administrador de evento | ¡Implemente eventos, ranuras de señales, aspectos y observadores! |
Expresivo | Middleware PSR-7 en minutos. |
Alimentación | Consuma y genere fuentes Atom y RSS e interactúe con Pubsubhubbub. |
Archivo | Busque los archivos de clase PHP. |
Filtrar | Filtre y normalice mediante programación datos y archivos. |
Formulario | Valide y muestre formularios simples y complejos, transmitiendo formularios a objetos comerciales y viceversa. |
HAL para PSR-7 | Lenguaje de aplicación de hipertexto (HAL) para PSR-7. |
HTTP | Abstracciones de encabezado y mensaje HTTP e implementación de cliente HTTP. (No es una implementación de PSR-7). |
Hidratante | Serialice objetos en matrices y viceversa. |
InputFilter | Normalice y valide los conjuntos de entrada de la web, las API, la CLI y más, incluidos los archivos. |
Internacionalización | Proporcione traducciones para su aplicación y filtre y valide valores internacionalizados. |
JSON | Deserializar JSON en PHP, incluidas las expresiones de JavaScript. |
Servidor JSON-RPC | Implementación JSON-RPC para PHP. |
LDAP | Realice operaciones LDAP, incluida la vinculación, búsqueda y modificación de entradas en un directorio LDAP. |
Cargador | Estrategias de carga automática y de complementos. |
Tronco | Registrador compuesto robusto con filtrado, formateo y compatibilidad con PSR-3. |
Correo | Analice, cree, almacene y envíe mensajes de correo electrónico mediante una variedad de protocolos de almacenamiento y transporte. |
Matemáticas | Cree números pseudoaleatorios criptográficamente seguros y administre números enteros grandes. |
Memoria | Gestione datos en un entorno con memoria limitada. |
MÍMICA | Cree y analice mensajes y partes MIME. |
Gerente de módulo | Sistema de aplicación modular para aplicaciones zend-mvc. |
MVC | La capa MVC impulsada por eventos de Laminas, incluidas las aplicaciones, controladores y complementos MVC. |
Integración MVC-Console | Integración entre zend-mvc y zend-console. |
Integración MVC-i18n | Integración entre zend-mvc y zend-i18n. |
complemento fileprg () | Publicar / Redirigir / Obtener complemento con manejo de carga de archivos para controladores zend-mvc. |
complemento flashmessenger () | Complemento para crear y exponer mensajes flash a través de controladores zend-mvc. |
complemento de identidad () | Complemento para recuperar la identidad autenticada actual dentro de los controladores zend-mvc. |
complemento prg () | Publicar / Redirigir / Obtener complemento para controladores zend-mvc. |
Navegación | Gestione árboles de punteros a páginas web para construir sistemas de navegación. |
Paginador | Paginar colecciones de datos de fuentes arbitrarias. |
ACL | Cree, administre y consulte listas de control de acceso. |
RBAC | Proporcione y consulte los controles de acceso basados en roles para su aplicación. |
Detalles del problema | Detalles del problema PSR-7 para respuestas de API HTTP y middleware. |
Barra de progreso | Crea y actualiza barras de progreso en diferentes entornos. |
Puente PSR-7 | Conversiones de mensajes PSR-7 <-> zend-http. |
Enrutador | Sistema de enrutamiento flexible para HTTP y aplicaciones de consola. |
Serializador | Serializar y deserializar estructuras PHP en una variedad de representaciones. |
Servidor | Cree servidores RPC basados en Reflection. |
Supervisor | Contenedor de inyección de dependencia impulsado por la fábrica |
Integración ServiceManager-Di | integración zend-di para zend-servicemanager |
Sesión | Interfaz orientada a objetos para sesiones PHP y almacenamiento. |
JABÓN | Cree, sirva y acceda a aplicaciones SOAP, y analice y genere WSDL. |
Stdlib | Extensiones SPL, utilidades de matriz, controladores de errores y más. |
Estratigilidad | Base de middleware PSR-7 para construir y distribuir canalizaciones de middleware. |
Etiqueta | Manipule y pese elementos etiquetables y cree nubes de etiquetas. |
Prueba | Herramientas para facilitar las pruebas unitarias de aplicaciones zend-mvc. |
Texto | Cree FIGlets y tablas basadas en texto. |
URI | Interfaz orientada a objetos para URI, con facilidades para la validación. |
Validador | Clases de validación para una amplia gama de dominios y la capacidad de encadenar validadores para crear criterios de validación complejos. |
Vista | Capa de vista flexible que admite y proporciona múltiples capas de vista, ayudantes y más. |
XML-RPC | Implementaciones de cliente y servidor XML-RPC con todas las funciones. |
XML2JSON | Convierta documentos XML a JSON. |
Instalación
El método de instalación admitido oficialmente es a través del administrador de paquetes Composer .
Laminas proporciona un metapaquete que incluye 61 componentes, pero la forma recomendada es instalar los componentes necesarios del marco de forma individual. Composer resolverá e instalará todas las dependencias adicionales.
Por ejemplo, si necesita el paquete MVC, puede instalarlo con el siguiente comando:
$ composer requiere zendframework / zend-mvc
La lista completa de componentes está disponible en la documentación de Zend Framework. [10]
Anatomía del marco
Laminas sigue un enfoque de configuración por encima de la convención y no impone ninguna estructura de aplicación en particular. Las aplicaciones esqueléticas para zend-mvc y zend-expressive están disponibles y proporcionan todo lo necesario para ejecutar aplicaciones y servir como un buen punto de partida.
Estructura de directorio de la aplicación MVC recomendada
ZendSkeletonApplication, aplicación esqueleto que utiliza sistemas de módulos y capas Laminas MVC, se puede instalar con:
$ composer crear-proyecto zendframework / skeleton-application
Creará una estructura de archivo similar a esta:
/ ├── config /│ ├── autocarga /│ │ ├── global.php│ │ └── local.php.dist│ ├── application.config.php│ └── modules.config.php├── datos /│ └── caché /├── módulo /├── público /│ └── index.php├── vendedor /├── composer.json├── composer.lock└── phpunit.xml.dist
El directorio config / tiene configuraciones para toda la aplicación. módulo / directorio contiene módulos locales que se comprometen junto con la aplicación. vendor / contiene el código del proveedor y otros módulos administrados independientemente de la aplicación, el contenido de la carpeta normalmente lo administra Composer.
El módulo Laminas solo tiene un requisito: la clase de módulo existe en un espacio de nombres de módulo y se puede cargar automáticamente. La clase de módulo proporciona lógica de configuración e inicialización a la aplicación. La estructura del módulo recomendada es la siguiente:
├── config /│ └── module.config.php├── src /│ └── Module.php├── prueba /├── ver /├── composer.json└── phpunit.xml.dist
El directorio config / contiene las configuraciones del módulo, el directorio src / contiene el código fuente del módulo, como se define en el estándar de carga automática PSR-4 , el directorio test / contiene pruebas unitarias para el módulo y el directorio view / contiene los scripts de visualización.
Creando la estructura del proyecto
Laminas admite la entrada de línea de comandos para crear la estructura de directorios. Usaremos la interfaz de línea de comandos para comenzar a crear la estructura de directorios para nuestro proyecto. Esto le dará una comprensión estructural completa de los directorios. La interfaz admite y proporciona la interfaz Zend_Tool que brinda una gran cantidad de funcionalidades de comando.
- Abra la interfaz de línea de comandos y cambie el directorio hellozend.
- Los usuarios de Windows escriben: bin \ zf \ bat create project
- Los usuarios de Linux / Mac escriben: bin \ zf.sh create project
Este procedimiento creará el proyecto Laminas en su propia ubicación especificada. Después de ejecutar Zend_Toll, creará el esqueleto básico de la aplicación. [11] Esto no solo creará una estructura de directorio, sino también todos los elementos básicos del marco MVC . [11] Para obtener las funcionalidades de Apache , la configuración del host virtual será la siguiente: [11]
Escuche 8080 *: 8080 > DocumentRoot / User / keithpope / Sites / hellozend / public
La estructura de directorio básica creada será algo como se menciona en la estructura de directorio antes mencionada de Zend Framework con una explicación similar. Hay otro aspecto de Zend-Tool que se inicializa automáticamente durante la instalación y es el bootstrapping. Aquí el propósito básico es inicializar la solicitud de página por parte del desarrollador. La entrada principal aquí creada por Zend Framework es el archivo de índice. El archivo de índice proporciona una función para manejar la solicitud del usuario. Este es el principal punto de entrada para todas las solicitudes. A continuación se muestran las funcionalidades. [11]
- Ruta de la aplicación: define la ruta al directorio de la aplicación.
- Application_Env: cambia el comportamiento de la aplicación dependiendo de varios factores, como cómo se utiliza la aplicación.
- getenv (): comprueba el entorno del sistema.
- Inicializar la aplicación Zend-Application: incluye Zend-Application y crea una instancia de la misma.
- Llame al método bootstrap () junto con el método run () iniciando MVC .
En general, Zend-Tool crea muchas estructuras de directorios importantes. Este sistema se basa en la tecnología de desarrollo rápido de aplicaciones . Como regla general de apoyo, el marco se centra en la codificación y las estructuras del proyecto en lugar de centrarse en partes más pequeñas. [12]
- Estructura del directorio del proyecto
- Controladores
- Comportamiento
- Puntos de vista
- Archivo de Bootstrap
Controladores
El controlador es la entrada principal a la aplicación Laminas. [13] El controlador del controlador frontal es el centro principal para aceptar solicitudes y ejecutar las acciones precisas según lo solicitado por los comandos. Todo el proceso de solicitar y reaccionar es el enrutamiento y el envío (que básicamente significa llamar a los métodos correctos en una clase), lo que determina la funcionalidad del código. [13] Esto es implementado por Zend_Controller_Router_- Interface. [13] La funcionalidad del enrutador es encontrar qué acciones deben ejecutarse y, por el contrario, el despachador ejecuta esas acciones solicitadas. [13] El controlador en Laminas está conectado en una variedad diversa de directorios estructurales, lo que proporciona un soporte para un enrutamiento eficiente. [13] El punto de entrada principal y el controlador de comando es el Zend_Controller_Front, este funciona como una base que delega el trabajo recibido y enviado. La solicitud se forma y encapsula con una instancia de Zend Controller Request HTTP , como proveedor de acceso a las solicitudes HTTP . [13] El HTTP contiene todas las superglobales del marco ($ _GET, $ _POST, $ _COOKIE, $ _SERVER y $ _ENV) con sus rutas relevantes. Además, el controlador también proporciona funciones getParam () que permiten la recopilación de variables solicitadas.
Comportamiento
Las acciones son funcionalidades importantes. Los controladores no funcionan sin acciones. Para este propósito, creamos otro método que tiene una acción agregada en su nombre y automáticamente el controlador frontal lo reconocerá como una acción. [11] La acción tiene el método init () que muestra su naturaleza privada y no es accesible para nadie. [11] Los siguientes comandos se ejecutan para que Zend_Tool pueda crear una acción para nosotros. [11] Mediante el uso del despachador estándar, todas las funciones se nombran después del nombre de la acción y seguidas de la palabra "Acción" adjunta. [13] Esto conduce a una clase de acción del controlador que contiene métodos como indexAction (), viewAction (), editAction () y deleteAction ().
Usuarios de Windows:
bin \ zf.bat crea acciones sobre el índice
Usuarios de Linux y Mac :
bin / zf.sh crear acción sobre índice
Un ejemplo de formas y acciones: [14]
espacio de nombres Album \ Form ;use Zend \ Form \ Form ;class AlbumForm extiende Form { función pública __construct ( $ name = null ) { // queremos ignorar el nombre pasado parent :: __construct ( 'album' ); $ esto -> agregar ( matriz ( 'nombre' => 'id' , 'tipo' => 'Oculto' , )); $ esto -> agregar ( matriz ( 'nombre' => 'título' , 'tipo' => 'Texto' , 'opciones' => matriz ( 'etiqueta' => 'Título' , ), )); $ esto -> agregar ( matriz ( 'nombre' => 'artista' , 'tipo' => 'Texto' , 'opciones' => matriz ( 'etiqueta' => 'Artista' , ), )); $ esto -> agregar ( matriz ( 'nombre' => 'enviar' , 'tipo' => 'Enviar' , 'atributos' => matriz ( 'valor' => 'Ir' , 'id' => 'botón enviar' , ), )); } // fuente: Zend Framework Guide }
Enrutador estándar
El enrutador estándar es una herramienta importante del controlador frontal. Aquí se toman las principales decisiones en orden de qué módulo, controlador y acción se solicita. [11] Todos estos se procesan aquí. Las siguientes son estructuras predeterminadas.
- Módulo
- Controlador
- Comportamiento
La solicitud sigue un patrón, la primera información se toma del extremo de la URL de HTTP . URI es el punto final de la solicitud. La estructura de la URL es la siguiente: [11] http://domain.com/moduleName/controllerName/actionName
Ejemplo de código de enrutador predeterminado: [15]
// Suponiendo lo siguiente: $ ctrl -> setControllerDirectory ( array ( 'default' => '/ path / to / default / controllers' , 'news' => '/ path / to / news / controllers' , 'blog' = > '/ ruta / a / blog / controllers' ) );
Solo módulo:
http: // ejemplo /
módulo de noticias == noticias
El módulo no es válido se asigna al nombre del controlador:
http: // ejemplo /
controlador foo ==
módulo foo + controlador:
http: // ejemplo / blog /
módulo de archivo ==
controlador de blog ==
Módulo de archivo + controlador + acción:
http: // ejemplo / blog / archivo /
módulo de lista ==
controlador de blog ==
acción de archivo ==
Módulo de lista + controlador + acción + parámetros:
http: // ejemplo / blog / archivo / list / sort / alpha / date / desc
module == blog
controller == archive
action == list
sort == alpha
date == desc
Métodos de utilidad
El Proyecto Laminas también proporciona algunos métodos de utilidad. A continuación se muestran algunos métodos de utilidad proporcionados en el marco. [11]
- _hacia adelante()
- se usa para llamar a la acción
_forward{$action, $controller = null, $module = null, array $params = null}
- $ acciones
- cadena, acción requerida
- $ controlador
- parámetro de cadena opcional y es el lugar donde se encuentra el controlador.
- $ módulo
- string, tiene módulo en el que tenemos el controlador.
- $ params
- matriz, parámetro de usuario
Otro método es el método de utilidad de redireccionamiento. Esto es lo opuesto al método _forward () mencionado anteriormente. [11] _redirect () realiza HTTP en la redirección en la creación de una nueva solicitud. [11] Los métodos _redirect () aceptan dos argumentos, a saber, $ url y $ options.
Además, Action Helpers también es una forma de proporcionar funcionalidades adicionales dentro del marco. Los ayudantes de acción son útiles cuando existe la necesidad de proporcionar funcionalidad entre controladores. [11]
//application/controllers/IndexController.php public function init () { $ this -> _helper -> viewRenderer -> setNoRender (); }
Durante la fase de inicialización de IndexController y ContactController, se llama a viewReader y se llama al indicador noRender en el objeto de vista. [11] La falta de este proceso crea un error en nuestra aplicación.
Ver directorios
Laminas proporciona el marco de visualización para nuestro proyecto y controlador, y las acciones se proporcionan automáticamente a nuestra aplicación. Dentro de la carpeta Laminas en vista observamos las siguientes carpetas. [11]
- Vista
- Ayudantes
- Guiones
- Contactos
- errores
- índice
Para crear una vista seguimos: [11]
< html > < head > < title > < Hello Zend title > head > < body > < hi > Hello Zend hi > < p > Hola desde Zend Framework p > body > html >
Ver muestra: [16]
// https://framework.zend.com/manual/2.4/en/modules/zend.view.quick-start.html espacio de nombres Foo \ Controller ;use Zend \ Mvc \ Controller \ AbstractActionController ; use Zend \ View \ Model \ ViewModel ;class BazBatController extiende AbstractActionController { función pública doSomethingCrazyAction () { $ view = new ViewModel ( array ( 'message' => 'Hello world' , )); $ vista -> setTemplate ( 'foo / baz-bat / do-something-crazy' ); return $ vista ; } }
Patrocinador y socios
Zend Technologies , cofundada por los colaboradores principales de PHP Andi Gutmans y Zeev Suraski , fue el patrocinador corporativo original de Zend Framework. [17] Los socios tecnológicos incluyen IBM , [18] Google , [19] Microsoft , [20] Adobe Systems , [21] y StrikeIron . [22]
Características
Las características de las láminas incluyen: [23]
- Todos los componentes están totalmente orientados a objetos PHP 5 y son compatibles con E_STRICT, lo que ayuda en el desarrollo de pruebas de construcción y escritura de códigos de una manera de aplicación a prueba de fallos y sin errores. [24]
- Arquitectura de uso a voluntad con componentes poco acoplados e interdependencias mínimas
- Implementación extensible de MVC que admite diseños y plantillas basadas en PHP de forma predeterminada
- Soporte para múltiples proveedores y sistemas de bases de datos, incluidos MariaDB , MySQL , Oracle , IBM DB2 , Microsoft SQL Server , PostgreSQL , SQLite e Informix Dynamic Server
- Redacción y entrega de correo electrónico, recuperación a través de mbox , Maildir , POP3 e IMAP4
- Subsistema de almacenamiento en caché flexible con soporte para muchos tipos de backends, como memoria o un sistema de archivos .
- Con la ayuda de los servicios de llamada a procedimiento remoto (RPC) y REST ( Representational State Transfer ), Zend Apigility ayuda a los desarrolladores a crear API, autenticación de API , documentación de API, Easy Modification [25]
Desarrollo de aplicaciones
Las aplicaciones de Laminas pueden ejecutarse en cualquier pila PHP que cumpla con los requisitos técnicos. Zend Technologies proporciona una pila PHP, Zend Server (o Zend Server Community Edition), que se anuncia que está optimizado para ejecutar aplicaciones Laminas. Zend Server incluye Zend Framework en sus instaladores, junto con PHP y todas las extensiones necesarias. Según Zend Technologies, Zend Server proporciona un rendimiento mejorado para PHP y especialmente las aplicaciones Zend Framework a través de la aceleración del código de operación y varias capacidades de almacenamiento en caché, e incluye funciones de diagnóstico y monitoreo de aplicaciones. [26] Zend Studio es un IDE que incluye características específicamente para integrarse con Zend Framework. Proporciona una vista MVC, generación de código MVC basada en Zend_Tool (un componente de Zend Framework), un formateador de código, finalización de código, asistencia de parámetros y más. [27] Zend Studio no es software libre, mientras que Zend Framework y Zend Server Community Edition son gratuitos. Zend Server es compatible con herramientas de depuración comunes como Xdebug . Otros desarrolladores pueden querer usar una pila PHP diferente y otro IDE como Eclipse PDT que funciona bien junto con Zend Server. Una versión gratuita preconfigurada de Eclipse PDT con Zend Debug está disponible en el sitio web de Zend.
Estándares de código, documentación y prueba
Las contribuciones de código a Laminas están sujetas a rigurosos estándares de código, documentación y pruebas. Todo el código debe cumplir con los estándares de codificación del proyecto y las pruebas unitarias deben alcanzar una cobertura de código del 80% antes de que el código correspondiente pueda moverse a la rama de lanzamiento. [28]
API de nube simple
El 22 de septiembre de 2009, Zend Technologies anunció [29] que trabajaría con socios tecnológicos como Microsoft , IBM , Rackspace , Nirvanix y GoGrid junto con la comunidad Zend Framework para desarrollar una API común para servicios de aplicaciones en la nube denominada Simple Cloud. API . Este proyecto es parte de Zend Framework y estará alojado en el sitio web de Zend Framework, [30] pero se ha lanzado un sitio separado llamado simplecloud.org [31] para discutir y descargar las versiones más actuales de la API. y varios servicios en la nube se incluyen en Zend Framework. Los adaptadores a los populares servicios en la nube han alcanzado la calidad de producción.
Hola mundo: archivo por archivo
Para crear el programa Hello World, hay varios pasos que incluyen:
- Primero cree cuatro archivos dentro de la estructura del directorio. Estos archivos son un archivo de arranque, un archivo de control de Apache ( .htaccess ), un archivo de controlador y un controlador de vista para la vista. [13]
- En segundo lugar, es necesario desarrollar una copia de Zend Framework. Con el crecimiento de la complejidad, se requiere un código adicional que proporcione la funcionalidad y que sea relativamente pequeño y se centre en los beneficios del sistema MVC . [13] Con respecto al proceso con más detalle, el archivo de arranque es la inicialización de una forma u otra.
A continuación, debe asegurarse de que el entorno sea correcto y que no haya errores, seguido de la configuración de la fecha y la hora para la funcionalidad de seguimiento. [13] Para configurar la fecha y la hora, se pueden seguir muchos procedimientos; por ejemplo, se puede llamar al método data_default_timezone_set () y Zend asume que el directorio predeterminado incluirá la ruta phd. [13] Zend Framework no depende de ningún archivo específico, pero las clases auxiliares son útiles en este caso. A continuación se muestran algunos ejemplos:
- Zend_Loader :: loadClass () el propósito principal aquí es corregir el archivo para el nombre de clase proporcionado.
- Después de esto, los guiones bajos se convierten en estructuras específicas de directorio. [13] Como resultado, las líneas de código Zend_Loader :: loadClass ('Zend_Controller_Front'); e include_once 'Zend / Controller / Front.php'; muestran resultados similares.
- Zend_Debug :: dump () funciona en términos de información de depuración y se centra en la salida var_dump () formateada. [13] Finalmente, el bootstrap ejecuta el controlador frontal y lo inicializa. El patrón de diseño utilizado por Zend_Controller_Front es el diseño Singleton y getInstance () se utiliza para obtener la instancia única. [13]
El desarrollo actual
Zend Framework 3.0 se lanzó el 28 de junio de 2016. Incluye nuevos componentes como un servidor JSON RPC, un conversor de XML a JSON, funcionalidad PSR-7 y compatibilidad con PHP 7. Zend Framework 3.0 se ejecuta hasta 4 veces más rápido que Zend Framework 2, y los paquetes se han desacoplado para permitir una mayor reutilización. [32] Los colaboradores de Zend Framework están fomentando activamente el uso de Zend Framework versión 3.x. El fin de vida indicado para Zend Framework 1 es 2016-09-28, y para Zend Framework 2 es 2018-03-31. La primera versión de desarrollo de Zend Framework 2.0 se publicó el 6 de agosto de 2010. [33] Los cambios realizados en esta versión fueron la eliminación de las declaraciones require_once , la migración a los espacios de nombres PHP 5.3, un conjunto de pruebas refactorizado, un Zend \ Session reescrito y el adición del nuevo Zend \ Stdlib . La segunda versión de desarrollo fue el 3 de noviembre de 2010. [34] La primera versión estable de Zend Framework 2.0 se lanzó el 5 de septiembre de 2012. [35]
Ver también
- Comparación de frameworks web
- Nueva licencia BSD
- Servidor Zend
- Estudio Zend
Referencias
- ^ "Archivos" . Zend Framework . Consultado el 1 de mayo de 2013 .
- ^ "zendframework / zendframework" . GitHub . Consultado el 17 de mayo de 2017 .
- ^ "Introducción a Zend Framework" . Guía de referencia del programador de ZF . Consultado el 12 de febrero de 2009 .
- ^ "Tutorial de PHP 5" . www.w3schools.com . Consultado el 20 de febrero de 2017 .
- ^ a b Company, Zend, una ola rebelde. "Zend Framework - Acerca de" . framework.zend.com . Consultado el 5 de febrero de 2017 .
- ^ Supaartagorn, C. (2011). PHP Framework para la gestión de bases de datos basado en el patrón MVC. Revista Internacional de Ciencias de la Computación y Tecnología de la Información (IJCSIT) , 3 (2), 251-258.
- ^ "De Zend a Laminas" . 17 de abril de 2019.
- ^ Gutmans, Andi (27 de octubre de 2005). "Zend Framework (la publicación es demasiado larga, así que asegúrese de tomar un café)" . Andi en Web y TI . Consultado el 11 de febrero de 2009 .
- ^ "Guía del colaborador (ZF v1)" .
- ^ a b "Documentación de los componentes ZF" .
- ^ a b c d e f g h i j k l m n o p Papa, Keith. Desarrollo de aplicaciones web Zend Framework 1.8 (1). Olton, GB: Packt Publishing, 2009. ProQuest ebrary. Web. 13 de febrero de 2017.
- ^ Padilla, A. (2009). Inicio de Zend Framework . Presione.
- ↑ a b c d e f g h i j k l m n Allen, R., Lo, N. y Brown, S. (2009). Zend framework en acción . Manning.
- ^ Company, Zend, una ola rebelde. "Zend Framework - Problema" . framework.zend.com . Consultado el 14 de febrero de 2017 .
- ^ Company, Zend, una ola rebelde. "Zend Framework - Problema" . framework.zend.com . Consultado el 14 de febrero de 2017 .
- ^ Company, Zend, una ola rebelde. "Zend Framework - Problema" . framework.zend.com . Consultado el 14 de febrero de 2017 .
- ^ "Historia de PHP y proyectos relacionados" . El Grupo PHP . Consultado el 11 de febrero de 2009 .
- ^ LaMonica, Martin (25 de febrero de 2005). "IBM respalda el software web de código abierto" . cnet.com . Consultado el 11 de febrero de 2009 .
- ^ Kernel, Sean Michael (20 de diciembre de 2006). "Google Data se une a PHP Zend Framework" . internetnews.com . Consultado el 11 de febrero de 2009 .
- ^ Krill, Paul (31 de octubre de 2006). "Microsoft, Zend impulsa PHP para Windows" . infoworld.com . Consultado el 11 de febrero de 2009 .
- ^ Potter, Mike (21 de mayo de 2014). "Adobe contribuye con el soporte de AMF a Zend Framework" . El blog oficial del equipo Flex . Archivado desde el original el 7 de febrero de 2009 . Consultado el 11 de febrero de 2009 .
- ^ "Socios destacados de StrikeIron" . Consultado el 11 de febrero de 2009 .
- ^ "Acerca de Zend Framework" . Consultado el 11 de febrero de 2009 .
- ^ ¿Por qué utilizar Zend Framework? Por SuntecOSS, recuperado el 21 de abril de 2016
- ^ Apigility de Zend, un generador de API de código abierto para desarrollar API de calidad por SuntecOSS, obtenido el 19 de mayo de 2016
- ^ "Sitio Zend" . Zend.com . Consultado el 17 de mayo de 2017 .
- ^ "Descargar Zend Studio - IDE, generador de perfiles de PHP, móvil, pruebas unitarias y más" . www.Zend.com . Consultado el 17 de mayo de 2017 .
- ^ "Guía del colaborador de Zend Framework" . 1 de julio de 2006 . Consultado el 14 de julio de 2008 .
- ^ "Comunicado de prensa de API de nube simple" . Archivado desde el original el 1 de diciembre de 2009 . Consultado el 5 de noviembre de 2009 .
- ^ "Sitio web de Zend Framework" . Consultado el 5 de noviembre de 2009 .
- ^ simplecloud.org
- ^ zendframework (28 de junio de 2016). "¡Lanzamiento de Zend Framework 3!" . Consultado el 12 de octubre de 2016 .
- ^ "Zend Framework 2.0.0dev1" . 2010-08-06 . Consultado el 4 de septiembre de 2010 .
- ^ "Zend Framework 2.0.0dev2" . 2011-11-03 . Consultado el 18 de marzo de 2011 .
- ^ "Zend Framework 2.0.0 STABLE lanzado! - Zend Framework - Zend Framework" . Framework.zend.com. 5 de septiembre de 2012 . Consultado el 14 de junio de 2013 .
enlaces externos
- Página web oficial
- Zend Framework