¿Qué son las dependencias en Laravel y por qué se necesitan?

publicado por: Anonymous

Al hacer deploy de Laravel si migro la base de datos, no necesito el Composer para hacer migraciones y si no hago cambios cuando mi proyecto está en el server tampoco lo voy a necesitar para crear cotrollers, etc… Pero aún así se necesita instalación del Composer para “crear las dependencias”. No sé ni qué son ni cómo funcionan ni porqué se necesitan.

solución

Composer es un administrador de paquetes. La idea principal es usar programas que ya funcionan y nos evita volver a escribir el codigo. entonces al desarrollar usamos estos paquetes. lo mismo pasa con el desarrollo de laravel y el desarrollo de las dependencias que usa laravel. Ahora bien, composer hace que todo eso funcione en conjunto. ¿Y cómo lo hace?

supongamos que tenemos en nuestro composer.json:

"require": {
        "laravel/framework": "5.2.*",
    }

eso significa que en la carpeta vendor en nuestro proyecto hay una carpeta laravel/framework, y dentro de esta carpeta hay un archivo composer.json en la que estan las dependencias de laravel.

"require": {
        "php": ">=5.5.9",
        "ext-mbstring": "*",
        "ext-openssl": "*",
        "classpreloader/classpreloader": "~3.0",
        "doctrine/inflector": "~1.0",
        "jeremeamia/superclosure": "~2.2",
        "league/flysystem": "~1.0",
        "monolog/monolog": "~1.11",
        "mtdowling/cron-expression": "~1.0",
        "nesbot/carbon": "~1.20",
        "paragonie/random_compat": "~1.4",
        "psy/psysh": "0.7.*",
        "swiftmailer/swiftmailer": "~5.1",
        "symfony/console": "2.8.*|3.0.*",
        "symfony/debug": "2.8.*|3.0.*",
        "symfony/finder": "2.8.*|3.0.*",
        "symfony/http-foundation": "2.8.*|3.0.*",
        "symfony/http-kernel": "2.8.*|3.0.*",
        "symfony/polyfill-php56": "~1.0",
        "symfony/process": "2.8.*|3.0.*",
        "symfony/routing": "2.8.*|3.0.*",
        "symfony/translation": "2.8.*|3.0.*",
        "symfony/var-dumper": "2.8.*|3.0.*",
        "vlucas/phpdotenv": "~2.2"
    },

De pronto encontramos todas esas dependencias que son de laravel estan en nuestra carpeta vendor. y asi podemos darnos una idea de como se organiza composer.

¿Como usamos esos programas?

Dentro de la carpeta vendor se encuentra el archivo autoload.php. este es el que incluimos en nuestro proyecto y es el que nos vincula con todas las dependencias a las cuales podemos acceder a traves de namespaces, tambien funciona con nuestras propias clases

Para el uso adecuado de Composer puedes leer la documentacion.
Pero la consigna en general es actualizar el autoload (dump) cuando agreguemos dependencias y actualizar en el servidor.

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *