Vamos a añadir a nuestro proyecto un manejador de dependencias de PHP llamado Composer, no solo nos ayudara a traer librerías de tercero al proyecto además va a implementar el estándar PSR4 que nos va a permitir tener el cargado de archivos automático.
composer.phar será un documento que nos servirá para manejar las dependencias en PHP, esta va muy de la mano con otro archivo llamado composer.json.
Abres cmd y te diriges a la carpeta donde está tu proyecto:
“cd C:\wamp64\www\CURSO-INTRODUCCION-PHP”
3.Instalas
"composer install"
hola podrias poner algo mas detallado? no eh podido avanzar por no poder instalar el composer en windows 😕
link del curso pasado de php, donde se explica cómo instalar composer:
Para poder realizar la parte de composer, en Windows … lo que tuve que hacer primero fue descargar desde la pagina de Composer el instalador ( ) , una vez instalado el mismo …(en la instalacion pide la ruta de php, ubicada dentro de la carpeta del servidor.) … pude ejecutar desde el cmd los comandos presentador por el profesor…
Espero sirva… [matias_garces89]
Composer para Windows
Después de realizar la instalación como bien describe @matias_garces89 no hace falta descargar el archivo composer.phar (era una duda que yo tenía por lo que sigue después, quizá les ayude). Luego para iniciar Composer en la carpeta del proyecto que estemos creando solamente ponemos:
composer install
en lugar de:
php composer.phar install
Veremos que nos crea la famosa carpeta “vendor” con el autoload.php y la carpeta composer.
Aclaración por las dudas: el archivo composer.json sí debemos crearlo a mano en la raíz de nuestro proyecto.
[gusgonzalez060]
En resumidas cuentas, si a alguien mas le pasó que se sintió perdido con la entrada de composer de repente al curso, hago un breve resumen de su logica y uso; COMPOSER en Manejador de dependencias para php, nos ahorra el trabajo de tener que usar require, require_once y use, podemos configurar lo para que simplemente con los nameSpaces podamos instanciar objetos despreocupando nos de las demás cosas.
Instalación y Uso: composer list => Muestra todas las utilidades que ofrece composer.
Descargar el instalador y correrlo normal, en este caso para win.
en CMD ejecutamos: composer --version => Así verificamos que funcione viendo la versión.
Dirigirnos al dir base de nuestro proyecto con: CD en CMD.
Iniciar el proyecto con: composer init => Composer pedirá datos de nomProyecto, Propietario, Descripción, estabilidad y si deseamos buscar paquetes de dependencias de externos. al terminar se generará el archivo base de instalación: composer.json.
modificamos composer.json asi:
{"name":"pascualdas/mis-dependencias","description":"primer ejercicio de dependencias propias","type":"project","require":{"twitter/bootstrap":"^4.3"},"license":"MIT","autoload":{"psr-4":{"App\\":"App/","Libs\\":"Libs/"}},"authors":[{"name":"Dany Pascual Gomez Sanchez","email":"pascualdas@gmail.com"}]}
Es la sección del autoload la que modificaremos para referenciar nuestros directorios con nuestros nameSpaces, es decir, para decirle en que directorio se encuentran nuestras clases.
"autoload": {
"psr-4": {
"App\": "App/", => "NomNameSpace\":"Directorio/" => se deben conservar los \ y /
"Libs\": "Libs/"
}
}
Ahora corremos composer install => Creará la carpeta vendor que es la que contiene toda la maquinaria interna y los paquetes de externos que requiere composer. Importante para nuestras dependencias propias el archivo /vendor/autoload.php, es quien contiene nuestras dependencias.
Ahora podemos utilizar nuestras instancias sin require ni uses, unicamente agregando el require de la configuracion que hicimos, el "vendor/autoload.php" así:
index.php =>
require_once("vendor/autoload.php");
$matematica = new \App\Matematicas\Calculo();
Si necesitamos agregar mas dependencias, modificamos el composer.json en la parte de autoload, psr-4 y agregamos la nueva ruta; para finalizar ejecutamos en CMD: composer update.
Nota: resumen del vídeo de composer y larevel del curso de platzi.
Saludos.
gracias me salvaste de una
Muchas gracias, muy gran aporte!
desde el segundo 4:34 al 4:50 aparece mágicamente la coma faltaste en composer.json
“autoload”:{“psr-4”:{“App\”: “app/”
}},//<------Esta! estoy sospechando que estos detalles los deja a proposito"requere":{}}```
joder llevaba un puto dia intentando googlear el problema y nada, que no me salia nada. Y justo tenia la respuesta en la cara. Muchas gracias por tu aporte compa
Me salvaste men, llevo un día pensando en cual es el problema
Existe un pequeño error y dolor de cabeza de todo programador falta una "," en el archivo composer.json para separar las claves de autoload y require
Me hubiera gustado profundizar en lo básico de PHP antes de utilizar librerías o herramientas externas, esta parte sería interesante como anexo.
Composer.json
Básicamente, composer.json es el archivo donde configuramos que es lo que queremos que haga composer en sí. Aquí configuramos que librerías y estructura tiene nuestro proyecto para poder usar los namespace dejando de depender de todos los includes. 😄
Como Tip: vean el curso dos veces o al menos a partir de los namespaces en adelante, quedará todo súper claro.
> Pasos para usar Composer
>
> 1. Descargar el instalador de la página oficial LINK_COMPOSER.
> 2. Para verficar si composer funciona podemos ejecutar el siguiente comando en la terminal
>
> bash > composer --version #Así verificamos que funcione viendo la versión. >
>
>
>
> de esa manera nos aseguramos que ya tenemos instalado composer en el sistema.
>
> 3. Nos dirigimos a la raíz de nuestro proyecto y ejecutamos el siguiente comando:
>
> bash > composer init #Para los que estén familiarizados con npm este punto es algo similar >
>
>
>
> (en mi caso esa es la raíz de mi proyecto)
>
> después de ejecutar el comando nos pedirá datos de datos del proyecto como ser: nombre del proyecto , autor, etc. toda esta información se almacenara en el archivo composer.json.
>
> en mi caso esta es la información que presenta composer.json .
>
> json > { > "name": "william/proyecto-php", > "description": "Aprendiendo Php", > "license": "MIT", > "authors": [ > { > "name": "WilliamAbelCondori", > "email": "1williamcondori1@gmail.com" > } > ], > "require": {}, > } >
>
> agregando la configuración de la clase el archivo quedaría de la siguiente manera:
>
> bash > { > "name": "william/proyecto-php", > "description": "Aprendiendo Php", > "license": "MIT", > "authors": [ > { > "name": "WilliamAbelCondori", > "email": "1williamcondori1@gmail.com" > } > ], > "require": {}, > "autoload": { > "psr-4": { > "App\\":"app/" > } > } > } >
>
>
>
> 4. Ahora podemos ejecutar el siguiente comando para que se empiecen a descargar las dependencias.
>
> bash > composer install >
>
> Creará la carpeta vendor que es la que contiene toda la maquinaria interna y los paquetes de externos que requiere composer. Importante para nuestras dependencias propias el archivo /vendor/autoload.php, es quien contiene nuestras dependencias.
>
>
>
> 5. hora podemos quitar los require de paquete app/Model y únicamente agregamos el require de la configuración que hicimos, el “vendor/autoload.php” así: (este paso se lo puede ver mas a detalle en la clase)
>
>
>
buen tutorial
me gusto mucho la clase, pero se me hizo algo difícil instalar el composer tuve que buscar ayuda de google por que uso windows 7u7 pero ya me salio :'3
solo instalen el Composer-Setup.exe :
luego, abrí cmd y solo busque la ruta de mi proyecto y como ven en la imagen solo puse composer install y listo :'3
espero les haya servido uwu... saludos :'3
A los que les esta dando el error de Fatal error: Uncaught Error: Class 'App\Models\Job' not found in..., les comparto cual era mi problema y como lo solucione.
Mi carpeta Models estaba escrita como models. Cuando el autoload empieza a buscar los subdirectorios (en este caso Models), lo hace con el mismo nombre que esta en el use. Mi use es
use App\Models\{Job,Project,Printable};
Esto generaba error ya que mi carpeta se llamaba models en vez de Models. Al hacer el cambio de la primera letra por mayuscula ya funciono. Este es una de las cosas que podria estar generando errores en su proyecto. Espero ayude a alguien!
Gracias bro. A mi me salió el mismo el error. Mi solución fue la misma pero para App
Por error puse
use app\Models\{Job,Project,Printable};
Y era
use App\Models\{Job,Project,Printable};
jaja 😆
Entonces si entendí…
Composer lo que hace unificarme todos los require que tenga en mi proyecto en un uno solo y a medida que vaya utilizando mas solo debo actualizarlo y ya esta.
una cosa es composer y otra es el autoload. composer es el manejador de dependencias y como implementa PSR4 es que se puede usar el autoload
Holy shit!! 🤯 Siento el poder de Composer reproduciéndose en mi sangre.
En resumen, el composer sirve para el cargado de archivos automático y asi evitar declarar requires de mas... Gracias!
PARA WINDOWS
1 - SE INSTALA EL COMPOSER DESDE DOWNLOAD PERO EN EL <a> QUE DICE Composer-Setup.exe
2 - UNA VEZ INSTALADO EL COMPOSEER EN NUESTRO ORDENADOR, PARA INSTALARLO EN LA RUTA DESEADA; SE ABRE EL CMD, TE UBICAS DONDE QUIERE INSTALARLO Y UNA VEZ AHI ESCRIBES; composer require
Y YA.
Excelente tutorial.
de forma sencilla se puede decir que el autoload nos permite realizar los require de todas nuestras clases automáticamente según nuestros namespace
Composer ayuda a instalar paquetes de terceros.
En Windows, luego de instalar el composer usando el instalador, dirigirse a la carpeta del proyecto, abrir el CMD desde alli y escribir el comando "composer install" sin las comillas, para que asi cree las carpetas. Si da un error en el json y lo tienen igual que en el video, solamente crear de nuevo el json.
En Windows y con Xampp deben agregar php como variable de entorno. Php se encuentra en la ruta C:/xampp/php/. https://www.youtube.com/watch?v=TuZBMM-kDlk&vl=en . Y ojo con el archivo composer.json que el profesor pone una coma en la línea 6 en el minuto 4:50, si no la ponen les va a generar error.