Iniciar un proyecto con Composer puede parecer una tarea intimidante al principio debido a la estructura del archivo composer.json. Sin embargo, Composer ofrece herramientas que simplifican el proceso, como el comando composer init, que actúa como un asistente para guiarte en la generación de este archivo esencial. Este enfoque te permite crear y configurar tu composer.json sin la necesidad de memorizar toda su estructura. Veamos cómo lograrlo de manera eficiente.
¿Cómo ejecutar el comando composer init?
Para iniciar, utiliza el comando composer init, que te llevará por una serie de preguntas que definirán la configuración inicial de tu proyecto:
composer init
Al ejecutar este comando, Composer te da la bienvenida al generador de configuración. El proceso comienza pidiendo el nombre del proveedor y del paquete usando la estructura vendor/name. Este asistente también detecta la configuración de usuario almacenada en Git y el nombre de la carpeta, aunque puedes modificar estos valores si lo deseas.
¿Qué información necesitas proporcionar?
Descripción: Inserta una descripción clara y precisa de tu proyecto.
Autor: Composer puede tomar datos del sistema Git, pero puedes cambiar esta información.
Estabilidad mínima: Puedes dejarlo vacío o especificar niveles de estabilidad como dev, alpha, beta, o stable.
Tipo de proyecto: Especifica si es una librería, un proyecto tipo Laravel, etc.
Licencia: Aunque complejo, usar la licencia MIT es un estándar en software libre.
¿Cómo gestionar las dependencias en Composer?
Composer te preguntará sobre las necesidades de paquetes para producción y desarrollo. Es esencial elegir correctamente las dependencias para garantizar el funcionamiento óptimo de tu proyecto.
Paquetes en producción: Si decides necesitar paquetes, Composer solicitará nombres de los mismos y buscará en Internet las últimas versiones disponibles, permitiéndote elegir la adecuada.
Paquetes para desarrollo: Composer te pregunta sobre las herramientas necesarias para tu desarrollo, como PHPUnit. Sigues el mismo proceso que para los paquetes de producción.
¿Cómo confirmar y ejecutar la instalación?
Al completar las preguntas, Composer te mostrará un resumen y te pedirá confirmar los datos. Puedes decidir si deseas que los componentes se instalen inmediatamente o hacerlo más tarde mediante:
composerinstall
¿Qué sucede durante la instalación?
Cuando ejecutas composer install, Composer realiza una conexión a Internet:
Descarga los paquetes necesarios y sus dependencias.
Crea la carpeta vendor, donde almacena todos los componentes requeridos.
Si un paquete depende de otros, Composer los buscará e instalará automáticamente, resolviendo todas las dependencias.
¿Cómo aprovechar las ventajas de Composer?
Con el archivo composer.json configurado y composer install ejecutado, podrás disfrutar de las bondades del autoloading de Composer. Esto implica cargar automáticamente las clases y funciones necesarias en tu archivo principal, como index.php, maximizando la eficiencia y orden de tu desarrollo en PHP.
Ser proactivo al inicio de un proyecto es clave para un desarrollo exitoso. El uso estratégico de Composer te facilitará gestionar las dependencias en producción y desarrollo, creando un entorno de trabajo más robusto y organizado. ¡Sigue explorando y aprendiendo!
Una ventaja de composer es que, si tu necesitas migrar tu proyecto a un servidor o a alguna otra computadora, no es necesario que te copies todas las carpetas, de hecho, la carpeta vendor se suele ignorar, esto es porque, al tener el archivo composer.json, simplemente con correr el comando composer install, composer buscará las dependencias y creará la carpeta vendor automáticamente en cualquier máquina que se ejecute.
¿Y qué pasa si dos dependencias distintas requieren de la misma dependencia? ¿Se instala dos veces? No, Composer es tan inteligente que si ve que dos dependencias distintas requieren de una misma dependencia simplemente la instala una sola vez :D
Buena explicación.
Gracias por el aporte
La instalación de paquetes es muy importante cuando quieran hacer proyectos en frameworks como Laravel.
El comando composer install es muy utilizado, les recomiendo tomar muy en cuenta lo que aprendieron en esta clase.
Cómo iniciar un proyecto
Al igual que la mayoría de gestores de paquetes, Composer también tiene un comando especial para empezar un proyecto con y que este pueda descargar las dependencias que necesitamos de una vez.
composer init
Para instalar las dependencias recuerda utilizar el comando:
composerinstall
Yo tenía una falsa idea sobre lo que era php, me vendieron que php era un lenguaje con código spaghetti y de malas prácticas. Por lo que me limité a no aprenderlo, y evitar usarlo a toda costa. Pero ahora he crecido profesional y personalmente. He dejado a un lado todos los sesgos y prejuicios que tenía sobre php y he decidido aprenderlo. Gracias profe Italo, por hacer que enamorara de php ahora y enseñarnos composer; herramienta bastante poderosa que hace a php mejor. Nunca pararé de aprender.
Top 10 personas bendecidas por Jesuscrito:
PHP Rocks !!! 🏆
.
El lenguaje es muy permisivo SI, y eso es un peligro con las personas novatas. Las malas practicas son de las personas.
.
Asi es aprender y crecer !! Esa es la actitud 😎 !!
👾 Iniciamos composer y realizamos la configuración del proyecto con los siguientes comandos:
composer init
composerinstall
Master Ítalo, debería dar todas las clase de programación.
estoy de acuerdo, que bueno seria que diera swift
Cuando se usa Composer todo gira al rededor del archivo composer.json, para no tener que memorizar toda la estructura que este necesita existe un comando que lo hace más fácil.
El comando composer init nos provee de un generador de el archivo composer.json que nos guiará para la creación de este.
Cuando ingresemos los datos básicos del archivo nos preguntará si queremos definir las dependencias que usaremos en producción, si le decimos que sí nos pedirá que ingresemos el nombre del paquete, luego de poner el nombre nos mostrará una lista de las dependencias que encontró en Composer y debemos seleccionar la que necesitemos. Luego nos pedirá que ingresemos la versión que queremos.
Después de definir las dependencias de producción se repetirá el proceso pero ahora para las dependencias de desarrollo.
Al final del proceso nos pedirá confirmación y procederá a descargar las dependencias que se agregaron.
¡Hay alguna forma de crear el archivo composer.json con la configuración por defecto como se hace por ejemplo en NPM con:
npm init --yes?
Creo que son distintos gestores de paquetes
Después de esta explicación, composer me queda mas que claro.
ayuda
tienes visual? inténtalo desde ahí
Me sale el mismo problema
Me sale el siguiente mensaje:
No lock file found. Updating dependencies instead of installing from lock file. Use composer update over composer install if you do not have a lock file.
y después me crea un archivo llamado composer.lock
No entiendo muy bien por qué pasa esto
Qué más te aparece aparte de eso? Algun mensaje de error aparte?
No creo que sea un error, a mí también me salió, me creo el fichero ++composer.lock++ , y luego me instaló las dependencias...
Creo que seguro es que Composer trata de actualizar primero antes de instalar los paquetes.. Debe ser una validación que hace de por medio...
Me sale este error en la terminal de VSC, usando la terminal externa si sirve el comando. composer init
Hola Jose, ¿qué terminal estás utilizando desde vsCode? ¿No te muestra otro mensaje aparte de este? Te pregunto porque el error indica que es un problema en la ejecución del código no en la consola como tal
Utilizo bash, sé que no es la ideal para estas cosas, pero solamente en el editor pasa eso, cuando abro bash normal si sirve... Que raro
Lamentablemente composer no me funcionó en mi MAC y visual code studio no se me ve como a ti, muy enredado el curso por lo menos para mi =/
11. Cómo iniciar un proyecto
Existe un comando que sirve como asistente para crear un proyecto:
composer init
Este comando nos va a guiar paso a paso para crear un proyecto de composer.
Como punto y aparte, siento que esto no es tanto una introducción a PHP, porque no hemos visto tipos de variables, cómo funciona PHP, tipos de datos o el tipado, sino que estamos viendo bastante cómo funciona composer.
claro, porque esto no es una introduccion a PHP, pero si hay cursos basicos de PHP, deberias seguir la Ruta "Desarrollo WeB Backend con PHP".
Hace meses ESTE era el curso de Introduccion a PHP, no lo ves ahora porque ahora si han agregado cursos introductorios, pero bueno, igual es correcto tu comentario.
¡Hola! a mi composer me preguntó algo que al profesor no, quizás por alguna diferencia en versiones. La pregunta es la siguiente:
Se que tiene que ver con el autoload de clases pasadas. Pienso que podría ser útil, pero no se como aprovecharlo... ¿Me podrían compartir algo de información sobre esta parte?
Hola
Te comparto información que espero te ayude a profundizar más sobre PSR-4, comenzando con una buena descripción de lo que hace PSR-4 y otra discusión sobre las diferencias entre PSR-0 y PSR-4.
Saludos
El gitignore debe incluir la carpeta vendor?
Deberías incluirla en tu archivo .gitignore porque es la carpeta que genera composer al instalar los paquetes y no es necesario que la tengas en tu repositorio
Hola, a mi me sale un error cuando inicio el proyecto en windows con Visual Code
composer init
Welcome to the Composer config generator
This command will guide you through creating your composer.json config.Packagename(<vendor>/<name>)[johanna/curso-php]:[Symfony\Component\Console\Exception\RuntimeException]Abortedinit [--name NAME][--description DESCRIPTION][--author AUTHOR][--type [TYPE]][--homepage HOMEPAGE][--require REQUIRE][--require-dev REQUIRE-DEV][-s|--stability STABILITY][-l|--license LICENSE][--repository REPOSITORY]
Hola!
¿Haz intentado probando con otro tipo de Shell?
Yo también utilicé la terminal integrada de VSCode, pero PowerShell, y me corrió sin problemas..
Tengo un problema al querer crear el proyecto
Hola Jorge
Veo en el error que no tienes para conectarte y clonar un repositorio privado... ¿podrías mostrar una captura más completa para poder ayudarte mejor?
¿Qué diferencia hay entre una dependencia dev y una que no es dev?
Las devDependencies son dependencias que usas solo para la fase de desarrollo comúnmente, tranpiles taskrunner y unit test se manejan como devDependencies ej. grunt gulp babel mocha chai etc. estas dependencias no son necesarias en producción y tu aplicación puede funcionar si ellas.
Los dependencies son las que utilizas para que tu proyecto trabaja e.j express monngoose lodash body-parser estas dependencias son parte de la lógica de tu aplicación y son necesarias para que el proyecto funcione correctamente en producción.
Este curso me esta abriendo los ojos de muchas cosas que no conocía bien de PHP