zend-framework2 Introducción a zend-framework2

Observaciones

Zend Framework 2 (ZF2) es un marco PHP moderno y flexible que ayuda a los desarrolladores web a crear aplicaciones web de diferentes complejidades. El principal patrocinador de la empresa Zend Framework es Zend Technologies, lo que la hace muy fuerte y estable. Hay dos mejoras importantes de esta segunda versión sobre ZF1. En primer lugar, se ha adoptado una arquitectura basada en módulos de forma predeterminada sin ningún ajuste. Esto es útil cuando se desarrolla una aplicación web de gran tamaño que requiere una descomposición en módulos. En segundo lugar, ZF2 implementa todas las características que PHP5.3+ puede ofrecer, en particular, los espacios de nombres. En las versiones anteriores, una clase de controlador se nombra de la siguiente manera:

class IndexController extends Zend_Controller_Action{}

Esta misma clase se reescribe en ZF2 de la siguiente manera:

namespace Application\Controller;use Zend\Mvc\Controller\AbstractActionController;class IndexController extends AbstractActionController{}

Las siguientes son algunas otras características interesantes de ZF2:

  • Inyección de dependencias
  • EventManager
  • ServiceManager

Un simple Hello World

En su línea de comandos, ingrese al directorio en el que desea crear el proyecto y luego escriba: composer create-project zendframework/skeleton-application helloWorldTest . Durante la instalación, se le preguntará si desea una instalación mínima: Digamos que sí por el momento, solo estamos probando.

Para simplificar, usaremos el servidor CLI PHP integrado. Desde la línea de comandos, entra en el directorio raíz de tu proyecto (helloWorldTest) y, a continuación, ejecuta : php -S 0.0.0.0:8080 -t public/ public/index.php . Ahora, abra su navegador web y vaya a http://localhost/, debería ver la página de bienvenida de la aplicación ZF2 Skeleton.

Si lo hace, ahora configuraremos una nueva página. En module/Application/config/module.config.php puede ver que una ruta dinámica ya está configurada para la subcarpeta de la aplicación:

return , 'application' => ', 'defaults' => , ], ], ], ], 

Establecer una nueva acción «helloWorldAction() » en module/Applicaiton/src/Controller/IndexController.php :

class IndexController extends AbstractActionController{ public function indexAction() { ... } public function helloWorldAction() { return new ViewModel(); }} 

Finalmente, cree el archivo de vista module/Application/view/application/index/hello-world.phtml con el siguiente contenido:

<?phpecho "Hello World !"; 

Ahora, vaya a http://localhost/ aplicación / hola-mundo,y diga hola a ZF2 !

Cómo crear una fábrica

Cuando una clase necesita ser provista de dependencias duras la mejor práctica es usar un patrón de inyección de constructor donde esas dependencias se inyectan usando una fábrica.

Supongamos que MyClass depende en gran medida de un valor $dependency que debe resolverse desde la configuración de la aplicación.

<?phpnamespace Application\Folder;use Zend\ServiceManager\FactoryInterface;use Zend\ServiceManager\ServiceLocatorInterface;class MyClass{ protected $dependency; public function __construct($dependency) { $this->dependency = $dependency; }} 

Para inyectar esta dependencia se crea una clase de fábrica. Esta fábrica resolverá la dependencia de la configuración e inyectará el valor de configuración en la construcción de la clase y devolverá el resultado:

<?phpnamespace Application\Factory;use Zend\ServiceManager\FactoryInterface;use Zend\ServiceManager\ServiceLocatorInterface;class MyClassFactory implements FactoryInterface{ public function createService(ServiceLocatorInterface $serviceLocator) { $config = $servicelocator->get('Config'); $dependency = $config; $myClass = new MyClass($dependency); return $myClass; }} 

Ahora que se ha creado la clase de fábrica, debe registrarse dentro de la configuración del administrador de servicios en el archivo de configuración del módulo module.config.php bajo las fábricas de claves. Es una buena práctica usar los mismos nombres tanto para la clase como para la fábrica, por lo que es fácil encontrarlos en el árbol de carpetas del proyecto:

<?phpnamespace Application;return array( //... 'service_manager' => ], //...); 

Alternativamente, se pueden usar las constantes de nombre de clase para registrarlas:

<?phpnamespace Application;use Application\Folder\MyClass;use Application\Factory\MyClassFactory;return array( //... 'service_manager' => ], //...); 

Ahora la clase se puede recopilar en el administrador de servicios utilizando la clave que usamos al registrar la fábrica para esa clase:

 $serviceManager->get('Application\Folder\MyClass'); 

o

 $serviceManager->get(MyClass::class); 

El administrador de servicios encontrará, recopilará y ejecutará la fábrica y luego devolverá la instancia de clase con la dependencia inyectada.

Instalación o configuración

Instrucciones detalladas para configurar o instalar Zend Framework 2. Hay varias formas de instalar el framework. A continuación se muestran algunos de ellos:

Utilizando la forma recomendada por el compositor

Suponiendo que composer esté instalado en el cuadro de destino.

Para instalar una aplicación MVC esqueleto, ejecute en su terminal para crear un nuevo proyecto de zend framework 2 en la ubicación especificada:

php composer.phar create-project -sdev \ --repository-url="https://packages.zendframework.com" \ zendframework/skeleton-application path/to/install 

para instalar manualmente un ZF2 mínimo (Zend MVC + su puñado de dependencias), ejecute en la línea de comandos:

composer require zendframework/zend-mvc 

o para un ZF2 completo (+64 módulos):

composer require zendframework/zendframework` 

Tenga en cuenta que la primera opción ejecuta un instalador que le proporcionará una aplicación completamente funcional junto con la estructura habitual de directorios de aplicaciones. Otras opciones le permitirán construir toda la aplicación desde cero, ya que simplemente proporciona módulos ZF2 para construir.

Usando submódulos de Git

Ejecute el siguiente comando para clonar zf2 y sus dependencias recursivamente desde Github:

git clone git://github.com/zendframework/ZendSkeletonApplication.git --recursive 

Configuración del servidor HTTP

Una aplicación web típica requiere ejecutar un servicio HTTP escuchando un puerto dedicado (generalmente: 80) para pasar las solicitudes entrantes a la aplicación, procesar y devolver la salida (respuesta).

Nota: También puede escribir aplicaciones compatibles con la consola en Zend Framework 2 sin necesidad de un servidor HTTP.

OPCIÓN 1-Servidor CLI PHP

La forma más sencilla de comenzar si está utilizando PHP 5.4 o superior es iniciar el servidor cli PHP interno en el directorio raíz.

Ir al directorio del proyecto y ejecutar:

php -S 0.0.0.0:8080 -t public/ public/index.php`. 

Esto iniciará el servidor cli incorporado en el puerto 8080 y lo vinculará a todas las interfaces de red.

OPCIÓN 2: Un servidor HTTP personalizado

Configure un virtualhost en el servidor Apache o Microsoft IIS o Nginx y pase las solicitudes HTTP entrantes a la aplicación.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.