Una dependencia es algún código de un tercero que nuestra aplicación usa. Por ejemplo Zend Framework 3 es una dependencia de nuestro sitio web.
Con Composer cualquier biblioteca se llama paquete. Todos los paquetes que se pueden instalar con Composer están registrados en el sitio web Packagist.org. Con Composer podemos identificar los paquetes que nuestra aplicación necesita, Composer los descargará e instalará automáticamente.
Las dependencias de la aplicación skeleton se declaran en el archivo
APP_DIR/composer.json
(ver más abajo):
{
"name": "zendframework/skeleton-application",
"description": "Skeleton Application for Zend Framework zend-mvc applications",
"type": "project",
"license": "BSD-3-Clause",
"keywords": [
"framework",
"mvc",
"zf2"
],
"homepage": "http://framework.zend.com/",
"minimum-stability": "dev",
"prefer-stable": true,
"require": {
"php": "^5.6 || ^7.0",
"zendframework/zend-component-installer": "^1.0 || ^0.3 || ^1.0.0-dev@dev",
"zendframework/zend-mvc": "^3.0.1",
"zfcampus/zf-development-mode": "^3.0",
"zendframework/zend-mvc-form": "^1.0",
"zendframework/zend-mvc-plugins": "^1.0.1",
"zendframework/zend-session": "^2.7.1"
},
"autoload": {
"psr-4": {
"Application\\": "module/Application/src/"
}
},
"autoload-dev": {
"psr-4": {
"ApplicationTest\\": "module/Application/test/"
}
},
"extra": [],
"scripts": {
"development-disable": "zf-development-mode disable",
"development-enable": "zf-development-mode enable",
"development-status": "zf-development-mode status",
"serve": "php -S 0.0.0.0:8080 -t public/ public/index.php"
}
}
¿Qué es JSON?
JSON (JavaScript Object Notation), es un archivo de texto legible por humanos para representar estructuras simples y arreglos asociados anidados. A pesar de que JSON tiene su origen en JavaScript es usado por PHP y otros lenguajes porque es conveniente para guardar datos de configuración.
En este archivo podemos ver información básica sobre la aplicación skeleton
(su nombre, descripción, licencia, palabras claves y la página oficial).
Nosotros generalmente cambiamos esta información por la de nuestra futura
aplicación. Esta información es opcional así que incluso podemos borrarla
si no tenemos planeado publicar nuestra aplicación web en el catalogo
Packagist
.
La parte interesante para nosotros es la llave require
. La llave require
contiene las declaraciones de las dependencias para nuestra aplicación.
Vemos que es necesario el motor de PHP es su versión 5.6 o superior y varios
componentes de Zend Framework como zend-mvc
, zend-mvc-form
, etc.
La información que está en el archivo composer.json
es suficiente para
encontrar las dependencias, descargarlas e instalarlas en la carpeta vendor
.
Si en algún momento necesitamos instalar otra dependencia podemos agregarla
editando el archivo composer.json
cambiando las dependencias en él y luego
escribir los siguiente comandos en la consola de comandos:
php composer.phar self-update
php composer.phar install
Los comandos de arriba actualizarán Composer a su última versión y luego instalará nuestras dependencias. Sin embargo Composer no instalará PHP, él simplemente se asegurara que está instalada la versión apropiada y si no mostrará una advertencia.
Si revisamos la subcarpeta vendor
podemos ver que ella contiene muchos
archivos. Los archivos de Zend Framework 3 se encuentran dentro de la carpeta
APP_DIR/vendor/zendframework/
(figura 2.2).
Algunos frameworks usan otra manera convencional de instalar dependencias. Es posible descargar las librerías que necesita nuestra aplicación como un archivo y colocarlo en algún lugar dentro de nuestra estructura de carpetas (generalmente en la carpeta
vendor
). Esta forma se usó en Zend Framework 1. Pero en Zend Framework 3 se recomienda instalar las dependencias mediante Composer.