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

如题,谢谢

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《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年前 评论

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