¿Qué es Laminas?
El proyecto laminas es una continuación open-source de Zend Framework. Laminas abarca los siguientes proyectos:
* Laminas Components y MVC.
* Mezzio, también llamado Zend Expressive 3 antes de moverse a Laminas y es una alternativa a Laminas MVC.
* Laminas API Tools es la continuación de Apigility.
¿Por qué usar Láminas?
El principal argumento para usar Laminas es la difusión de buenas prácticas y patrones de diseño entre los desarrolladores web. Permite a los desarrolladores decidir la forma de manejar las dependencias del proyecto.
No es solo un framework monolítico que proporciona todo en un stack de cosas que tu quieres, todo el framework son componentes individuales que puedes instalar con mínimas dependencias. La belleza de laminas es que puedes usar sus componentes por sí solos.
Está centrado en aplicaciones empresariales por lo tanto la seguridad es una de las preocupaciones más importantes. En la forma en que se escribe el código se busca la mantenibilidad para asegurar que nuestro código se pueda actualizar y escalar en forma que pueda ser continuamente actualizado sin romperse. Laminas se desarrolla teniendo en cuenta la mantenibilidad a largo plazo.
Instalando Laminas-MVC Skeleton
Usa composer para crear un nuevo proyecto desde cero, en este caso vamos a crear una lista de tareas pero tu puedes llamar a tu proyecto como desees:
$ composer create-project -s dev laminas/laminas-mvc-skeleton todolist
El comando de arriba descarga la Laminas Skeleton Application en la carpeta todolist y ejecuta su instalador interactivo. Debemos responder varias preguntas de tipo yes/no. Las respuestas ayudarán al instalador a determinar qué dependencias instalar. Para comenzar podemos responder de la siguiente manera:
Do you want a minimal install (no optional packages)? Y/n
n
Would you like to install the developer toolbar? y/N
y
Will install laminas/laminas-developer-tools (^2.0.1)
When prompted to install as a module, select development.config.php.dist
Would you like to install caching support? y/N
n
Would you like to install database support (installs laminas-db)? y/N
y
Will install laminas/laminas-db (^2.10.0)
When prompted to install as a module, select application.config.php or modules.config.php
Would you like to install forms support? y/N
y
Will install laminas/laminas-mvc-form (^1.0)
When prompted to install as a module, select application.config.php or modules.config.php
Would you like to install JSON de/serialization support? y/N
n
Would you like to install logging support? y/N
y
Will install laminas/laminas-log (^2.11)
When prompted to install as a module, select application.config.php or modules.config.php
Would you like to install MVC-based console support? (We recommend migrating to zf-console, symfony/console, or Aura.CLI) y/N
n
Would you like to install i18n support? y/N
n
Would you like to install the official MVC plugins, including PRG support, identity, and flash messages? y/N
y
Will install laminas/laminas-mvc-plugins (^1.0.1)
When prompted to install as a module, select application.config.php or modules.config.php
Would you like to use the PSR-7 middleware dispatcher? y/N
y
Will install laminas/laminas-psr7bridge (^1.2.0)
Would you like to install sessions support? y/N
y
Will install laminas/laminas-session (^2.9.1)
When prompted to install as a module, select application.config.php or modules.config.php
Would you like to install MVC testing tools for testing support? y/N
n
Would you like to install the laminas-di for laminas-servicemanager? y/N
n
Una vez que respondimos las preguntas el instalador nos preguntará en qué archivo de configuración queremos inyectar la información de los módulos instalados. A esto respondemos con la opción “1” o podemos presionar la tecla enter ya que es la opción por defecto.
Please select which config file you wish to inject 'Laminas\Db' into:
[0] Do not inject
[1] config/modules.config.php
[2] config/development.config.php.dist
Make your selection (default is 1):
Remember this option for other packages of the same type? (Y/n)y
Installing Laminas\Db from package laminas/laminas-db
Please select which config file you wish to inject 'Laminas\DeveloperTools' into:
[0] Do not inject
[1] config/modules.config.php
[2] config/development.config.php.dist
Make your selection (default is 1):
Remember this option for other packages of the same type? (Y/n)y
Por último el instalador nos pregunta si queremos borrar el archivo de control de versiones del proyecto. Como vamos a usar nuestro propio sistema de control de versiones (GIT) no necesitamos los archivos existentes.
Do you want to remove the existing VCS (.git, .svn..) history? [Y,n]? y
> laminas-development-mode enable
You are now in development mode.
> php bin/update-gitignore.php
> php -r 'if (file_exists("bin/remove-package-artifacts.php")) include "bin/remove-package-artifacts.php";'
> php -r 'if (file_exists("CHANGELOG.md")) unlink("CHANGELOG.md");'
Automáticamente el instalador nos activa el modo de desarrollo, para verificar esto tecleamos lo siguiente:
$ composer development-status
> laminas-development-mode status
Development mode is ENABLED
Una vez que hayamos terminado de descargar e instalar nuestra aplicación de Laminas framework podemos usar el built-in web server para desarrollar nuestra aplicación, en la terminal y en el directorio de la aplicación ejecutar lo siguiente:
php -S 0.0.0.0:8080 -t public public/index.php
Podremos acceder al sitio de la aplicación mediante el navegador y escribiendo la dirección:
http://localhost:8080
Si todo va bien debemos ver algo como esto:
Estructura de directorios del Skeleton Application.
Una vez que hayamos creado nuestro proyecto, vamos a abrirlo con nuestro editor de código favorito, en este caso PHPStorm. Vamos a ver la estructura de carpetas que tiene la carpeta de Skeleton de nuestra aplicación llamada Application.
Los archivos de configuración del framework se encuentran en el directorio config/. Los archivos que se encuentran son archivos PHP regulares.
Laminas por default viene con un primer módulo llamado Application. Este módulo de ejemplo está diseñado principalmente para mostrar información estática del sitio con links a la documentación o a páginas de ayuda.
Los directorios bajo el módulo Application son: Directorio config/, se encuentra el archivo module.config.php allí se guarda información de las rutas de tu aplicación, los controllers que usa la aplicación y la configuración de las vistas de la aplicación.
Directorio src/, dentro vamos a colocar todo el código fuente que vayamos a crear. Dentro de esta carpeta se encuentra otra llamada Controllers donde se van a colocar los controladores de la aplicación. También se encuentra el archivo Module.php donde vamos a colocar la configuración de nuestra aplicación.
Directorio test/, aquí vamos a colocar los archivos de testing para nuestra aplicación, en este curso no abordaremos los tests.
Directorio views/, dentro vamos a encontrar otros tres directorios: application la cual contiene las vistas de nuestra aplicación definida por cada action que tenga nuestros controllers, error contiene las vistas de error para la aplicación y el directorio layout, contiene el diseño general que se va a usar en nuestra aplicación.
Por ahora es todo, proximamente ire construyendo la aplicación de lista de tareas.
Saludos.
Actualización. Aquí dejo los links del tutorial: Creando un CRUD con Laminas.
-
Instalando Laminas-mvc Skeleton.
-
Creando Un Crud Con Laminas Ultima Parte: Refactorizar Vistas
Y el repositorio del proyecto: Tutorial con laminas