composer.lock
es conocido como el archivo misterioso que no deberíamos borrar. Vamos en este post a hablar sobre ese tema para cerrar el ciclo de la serie composer.
Composer es un gran sistema, es una aplicación PHP que maneja las versiones de los paquetes PHP, con su ayuda podemos descargar y actualizar paquetes y proyectos. Es muy sencillo, ya lo hemos visto antes.
En este post voy a asumir que has hecho uso de esta aplicación (composer) instalando laravel, algún paquete o que has creado una breve aplicación. Es difícil hacerte llegar estos conceptos si no ha sucedido lo previamente mencionado.
Cuando comenzamos un proyecto tenemos a la mano al archivo composer.json
, aquí encontramos una lista con los paquetes y versiones que usará nuestra aplicación, pero en la medida que avanzamos vemos que nos aparece un archivo llamado composer.lock
y por eso estamos aquí. Este archivo (composer.json) es un plano inicial y breve, es una lista jerárquica de dependencias y aplicaciones. Cuando comenzamos no tenemos un archivo composer.lock
, este aparece en el momento que ejecutamos el comando composer install
. En otras palabras, instalamos los paquetes y el misterioso archivo composer.lock
nace y tiene vida.
Por favor, puedes ir a mirar este archivo antes de continuar... ¡es un archivo inmenso!
Revelemos el misterio, en composer.json
tenemos una breve lista con las versiones aproximadas de dependencia que Composer debe instalar, y el archivo composer.lock
tiene el registro exacto de las versiones de dependencia que se han instalado.
Si fuiste a mirar el archivo composer.lock
habrás notado que es un super archivo, y eso se debe a que tiene item a item la versión precisa que se instaló cuando Composer siguió las instrucciones de archivo composer.json
. Este archivo también realiza un seguimiento de todas las versiones de las dependencias de sus dependencias. Tienes todo aquí, dependencias de dependencias de dependencia que a su vez puede tener dependencias... Bueno, entiendes la idea.
Todo, absolutamente todo tu sistema a nivel jerárquico de dependencias tendrá sus versiones en el archivo composer.lock
.
Lo que puedes estarte preguntando es ¿para que me sirve?... Y esto es bastante simple. Si eliminas a la carpeta vendor a su vez estarás elimimando todos los paquetes y dependencias. Entonces no te preocupas, solo ejecutas el comando composer install
y composer verá que tienes un archivo llamado composer.lock
. Entonces en lugar de encontrar versiones compatibles de su dependencias para completar el archivo composer.json
, él instalará la versión exacta de su dependencias como se define en el archivo composer.lock
.
Esto significa que tenemos la versión exacta de nuestras dependencias que teníamos instaladas antes borrar la carpeta vendor. Y eso si resulta bastante útil.
Otra pregunta, ¿qué causaría que el archivo composer.lock cambie?
Este archivo cambia si ejecutas el comando composer update
y no recomiendo hacerlo a cada rato, debes usar composer install
para instalar tu nuevo paquete sin actualizar las versiones de tus otros paquetes. Esto sería mucho más seguro y evitamos fallas por actualizar nuevos paquetes y dependencias.
Usa
composer update
sabiendo con claridad lo que estás haciendo, no te arriesgues
Adquiere en preventa y aprovecha un gran descuento TDD en Laravel
Comparte en
el auth de laravel trabaja basado en tokens o con el objeto session de php ...
Buenas a todos, tengo un problema, ultimamente, cada vez que creo un nuevo proyecto de Laravel las rutas de este no funcionan. Por ejemplo: si creo el proyecto, éste se crea, pero al agregarle el sistema de autenticación: "auth" se generan tanto las rutas en el archivo web.php y las vistas. pero si intento acceder a la sección de registro o inicio de sesión me aparece el e...
Hola, tengo una consulta por hacer. Quisiera conocer sus opiniones, sobre como mostrar los errores de validación con ajax cuando utlizo la clase Form Request. Debo decir que el mensaje de registrado con éxito si lo muestra, sin embargo los mensajes de error no los he podido mostrar. Gracias
//FORM REQUEST
public function rules()
{
return [
...
Hola buenas a todos estoy trabajando en un sistema en el cuál, en un formulario tengo un select para seleccionar datos de una tabla, y en la vista del formulario me funciona ya que me carga todos los datos que tengo almacenados en dicha tabla; pero cuando selecciono una de las opciones, sea cual séa la que seleccione, siempre se guarda el primer registro de la tabla... Es com...