PHP artisan vendor:publish --tag=Laravel-notifications 这段命令是什么意思,求解?

如题,谢谢

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
Sparkfly
最佳答案

项目通常有很多扩展,而每个扩展可能用到一些配置文件 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资源.......
5年前 评论
讨论数量: 5
Sparkfly

项目通常有很多扩展,而每个扩展可能用到一些配置文件 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资源.......
5年前 评论

拷贝tagLaravel-notifications的扩展包的配置、资源等文件到你的项目下。

5年前 评论
Sparkfly

项目通常有很多扩展,而每个扩展可能用到一些配置文件 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资源.......
5年前 评论

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下的目录文件到资源目录下的视图目录

5年前 评论

上面都没说到点子上,publish非常重要。 举例说明,你的项目使用了jetstream作为登录组件,显然在安装了jetstream后,你的第一件事情就是要改写登录的逻辑和样式,因为你的应用是个性化的,不会那么巧jetstream满足了你的所有要求,即便如此你也要改写登录后的操作页面和一系列登录网页吧,那么问题来了,请问你在哪里改?显然,你不能在jetstream组件的安装目录改,一方面他属于系统文件,gitignore,最重要的,一旦升级你的改写就会被新版本jetstream覆盖。你一定会想到,必须有一个办法把jetsteam涉及的全部资源复制一份到我的app里面,即:我的resource或者public等目录下面,这样我才能放心改写,好了,vendor:publish就是帮助你干这个事情的!至于目标目录,你不用操心,系统内定义好了,是有一定规则的,同时,你也不用担心改变了目录路径jetstream等组件跑不起来,没事,发布的时候publish里面的逻辑也已经帮助你更改了各个页面,遇到组件,通常是先遍历resource\vendor\jetstream\compoment之类,然后再遍历\vendor\laravel\jetstrea,\component之类,放心使用。

2年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!