在使用composer后目录中会出现2个文件,composer.lock
和composer.json
,现在来说说这两个文件的作用。
1、composer.json
composer.json文件中保存的是我们安装的组件及组件的版本要求。
2、comopser.lock
composer.lock文件中保存的是组件及其依赖的具体版本,在多人协同开发的情况下,这个文件能很好的解决组件不同而产生的问题。在使用composer install
的时候是不会修改composer.lock
这个文件,所以会把这个文件也放入版本管理中,其它人在使用时只需要composer install
就可以了。而使用composer update
后修改这个文件。
综上所述:composer.lock
这个文件主要是解决在协同开发中组件及其依赖的版本记录,防止不同人使用的组件及依赖版本不同。
注意:
composer 安装依赖的时候需要调用环境变量中的 php.exe,所以当前最好仅有一个php.exe再环境变量中。
问:对于composer如何切换调用php的版本
答:直接修改环境变量中php的指向即可,可以使用cmd打印php -v 的版本
laravel Please provide a valid cache path
这是因为laravel的缓存路径没有找到
laravel缓存文件路径是在 config/cache.php中设置,默认存在storage文件夹中
'file' => [ 'driver' => 'file', 'path' => storage_path('framework/cache/data'), ],
解决:
需要保证storage/framework下面创建 sessions, views, cache 文件夹并确保可写权限
composer 只更新自动加载而不去更新依赖
在composer.json
中添加了psr-4
自动加载
然后执行composer update
才能加载那个添加的目录
执行update
的时候总是会更新依赖包
如何才能做到 只更新自动加载而不去更新依赖
--补充--
对于在项目根目录下由开发者自定义的命名空间、类和文件,需要在新增后手动运行 composer dump-auto
命令将其更新到 vendor/composer
目录下相应的自动加载配置中,否则系统将无法找到对应的类和文件。
composer dump-autoload
composer dumpautoload -o