项目通常有很多扩展,而每个扩展可能用到一些配置文件
View
之类的资源
我们 composer require 安装完成一个扩展,这个扩展是存在vendor 目录的,这个目录是.gitignore,所以需要把资源Copy或者说发布到正确的地方。
所以,需要用到这个命令。
但是使用这个命令之前 ,通常要把provider进行配置关联,如 config/app.php
'providers' => [
/*
* Application Service Providers...
*/
Maatwebsite\Excel\ExcelServiceProvider::class, // 第三方扩展Provider
]
Maatwebsite\Excel\ExcelServiceProvider 这个文件发布一个配置资源
$this->publishes([
__DIR__ . '/../../config/excel.php' => config_path('excel.php'),
]);
PHP artisan vendor:publish
这个命令有很多参数,比如指定provider,指定标记tag资源.......
项目通常有很多扩展,而每个扩展可能用到一些配置文件
View
之类的资源
我们 composer require 安装完成一个扩展,这个扩展是存在vendor 目录的,这个目录是.gitignore,所以需要把资源Copy或者说发布到正确的地方。
所以,需要用到这个命令。
但是使用这个命令之前 ,通常要把provider进行配置关联,如 config/app.php
'providers' => [
/*
* Application Service Providers...
*/
Maatwebsite\Excel\ExcelServiceProvider::class, // 第三方扩展Provider
]
Maatwebsite\Excel\ExcelServiceProvider 这个文件发布一个配置资源
$this->publishes([
__DIR__ . '/../../config/excel.php' => config_path('excel.php'),
]);
PHP artisan vendor:publish
这个命令有很多参数,比如指定provider,指定标记tag资源.......
vagrant@homestead:~/Code/sample$ php artisan vendor:publish --tag=laravel-notifications
Copied Directory [/vendor/laravel/framework/src/Illuminate/Notifications/resources/views] To [/resources/views/vendor/notifications]
Publishing complete.
正如 Sparkfly 所说,这条命令就是拷贝了vendor下的目录文件到资源目录下的视图目录
上面都没说到点子上,publish非常重要。 举例说明,你的项目使用了jetstream作为登录组件,显然在安装了jetstream后,你的第一件事情就是要改写登录的逻辑和样式,因为你的应用是个性化的,不会那么巧jetstream满足了你的所有要求,即便如此你也要改写登录后的操作页面和一系列登录网页吧,那么问题来了,请问你在哪里改?显然,你不能在jetstream组件的安装目录改,一方面他属于系统文件,gitignore,最重要的,一旦升级你的改写就会被新版本jetstream覆盖。你一定会想到,必须有一个办法把jetsteam涉及的全部资源复制一份到我的app里面,即:我的resource或者public等目录下面,这样我才能放心改写,好了,vendor:publish就是帮助你干这个事情的!至于目标目录,你不用操心,系统内定义好了,是有一定规则的,同时,你也不用担心改变了目录路径jetstream等组件跑不起来,没事,发布的时候publish里面的逻辑也已经帮助你更改了各个页面,遇到组件,通常是先遍历resource\vendor\jetstream\compoment之类,然后再遍历\vendor\laravel\jetstrea,\component之类,放心使用。
项目通常有很多扩展,而每个扩展可能用到一些
配置文件
View
之类的资源我们 composer require 安装完成一个扩展,这个扩展是存在vendor 目录的,这个目录是.gitignore,所以需要把资源Copy或者说发布到正确的地方。
所以,需要用到这个命令。
但是使用这个命令之前 ,通常要把provider进行配置关联,如 config/app.php
Maatwebsite\Excel\ExcelServiceProvider 这个文件发布一个配置资源