Iniciando con Composer
Composer es un manejador de dependencias de PHP, similar a NPM en node.js y a los bundles de Ruby. a https://getcomposer.org/ Composer es una de las mejores herramientas disponibles para el desarrollo en PHP hoy en día. Para instalarlo ingresamos en la consola (Terminal) en Mac y si tenemos la libreria curl instalada colocamos:
1 |
curl -sS https://getcomposer.org/installer | php |
1 |
php -r "readfile('https://getcomposer.org/installer');" | php |

Nos ubicamos en la carpeta donde se quiera empezar nuestro proyecto creamos un archivo llamado composer.json. Dentro de este archivo vamos a especificar todos los elementos necesarios. Este archivo tendra los siguientes elementos:
- require: esta palabra simplemente le dice a Composer que necesitamos la libreria que le indicamos dentro de los corchetes {}
- Nombre del paquete o libreria: está separado en dos partes vendedor/proyecto, normalmente estos dos son iguales como en este caso o pueden ser distintos por ejemplo “illuminate/foundation”.
- Versiones del paquete: después de los dos puntos ( : ) indicamos la versión que queremos de este paquete. Tenemos varias opciones:
- Versión exacta: podemos decirle a Composer que queremos una versión específica como por ejemplo 1.0.1.
- Rango: Podemos definir rangos de versiones con los operadores >, >=, <, <=, !=. Por ejemplo si queremos una versión mayor a la 2 colocariamos >2. También podemos definir entre dos versiones separando con comas, por ejemplo >=1.0, <2.0.
- Comodín: podemos usar el comodín ( o wildcard ) * para definir versiones, como ejemplo 1.0.* esto quiere decir cualquier versión dentro de 1.0 ( 1.0.1, 1.0.2 … 1.0.8 etc.)
- Por último tenemos el operador ~, es un poco dificil de explicar así que usaremos un ejemplo: tenemos una librería que tiene la versión 1.x y 2.x pero no son compatibles entre ellas y queremos la última de 1.x y no la de 2.x entonces utilizaríamos el operador de esta forma ~1.2 que es equivalente a >=1.2, <2.0, mientras si vamos a algo más específico como ~1.3.1 es equivalente a >=1.3.1, <1.4
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
{ "name": "carlescliment/html2pdf-service", "description": "A REST microservice that converts html input into pdf files. Written in Silex.", "version": "0.0.1", "type": "project", "keywords": ["printing", "pdf"], "license": "GPL-2.0", "authors": [ { "name": "Cesar Suarez", "email": "cesar@smartarabbit.co", "homepage": "https://smartrabbit.co", "role": "Desarrollador" } ], "require": { "php": ">=5.3.2", # ... }, "require-dev": { "phpunit/phpunit": "3.7.*" }, "autoload": { "psr-0": { "carlescliment\\Html2Pdf": "src" } }, "minimum-stability" : "stable" } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
{ "name":"smartrabbit/comprimir_imagen", "type":"project", "author":[ { "name":"cesar suarez", "email":"cesar@smartrabbit.co" } ], "require":{ "php":">=5.3.2", "nyholm/zebra-image": "1.0.0" }, "autoload":{ "psr-4":{ } } } |
1 |
composer install |

Si realizamos algun cambio en nuestro archivo composer.json ejecutamos la siguiente instruccion para actualizar
1 |
composer update |
En nuestro proyecto creamos una carpeta public y dentro de ella colocamos una imagen y un archivo index.php.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
<?php require '../vendor/autoload.php'; $image=new \Nyholm\ZebraImage\ZebraImage(); // indicate a target image // note that there's no extra property to set in order to specify the target // image's type -simply by writing '.jpg' as extension will instruct the script // to create a 'jpg' file $image->source_path = 'dog1.jpg'; $image->target_path = 'dog1_small.jpg'; // since in this example we're going to have a jpeg file, let's set the output // image's quality $image->jpeg_quality = 100; // some additional properties that can be set // read about them in the documentation $image->preserve_aspect_ratio = true; $image->enlarge_smaller_images = true; $image->preserve_time = true; if (!$image->resize(100, 100, ZEBRA_IMAGE_CROP_CENTER)) { // if there was an error, let's see what the error is about switch ($image->error) { case 1: echo 'Source file could not be found!'; break; case 2: echo 'Source file is not readable!'; break; case 3: echo 'Could not write target file!'; break; case 4: echo 'Unsupported source file format!'; break; case 5: echo 'Unsupported target file format!'; break; case 6: echo 'GD library version does not support target file format!'; break; case 7: echo 'GD library is not installed!'; break; } // if no errors } else { echo 'Success!'; } ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
{ "name":"smartrabbit/comprimir_imagen", "type":"project", "author":[ { "name":"cesar suarez", "email":"cesar@smartrabbit.co" } ], "require":{ "php":">=5.3.2", "nyholm/zebra-image": "1.0.0" }, "autoload":{ "psr-4":{ "App\\":"clases/" } } } |
1 |
composer dumpautoload |
Etiquetas:composer, PHP, psr-4, zebraphp
"Trackback" Enlace desde tu web.