从 Laravel 中包含的包发布配置和迁移

Mig*_*ens 6 php package laravel

我正在使用 Laravel 构建一个包,其中将包含一些管理功能,并将包含一些其他包。

我已经包含了一个包含迁移和配置文件的包,但是如何将它们复制到 Laravel 中的正确文件夹中。该包有自己的 ServiceProvider,但如何从我的包中调用它?

我正在使用以下内容在我的包中注册该包。

class CldServiceProvider extends ServiceProvider {

    public function register()
    {
       $this->app->register(MediaLibraryServiceProvider::class);
    }
}
Run Code Online (Sandbox Code Playgroud)

我试过了

php artisan vendor:publish 
Run Code Online (Sandbox Code Playgroud)

但它说没有什么可发布的。因为它只查看此 Laravel 安装的包,而不是嵌套的包。

Lew*_*s42 4

就我而言,我发现我需要将我的包包含在我正在处理的应用程序中。我遵循的原始教程中未包含此步骤。

所以在composer.json主应用程序中:

"repositories": [
    {
        "type": "path",
        "url": "packages/namespace/name",
        "options": {
            "symlink": true
        }
    }
],
"require": {
    // ...
    "namespace/name": "dev-master"
},
Run Code Online (Sandbox Code Playgroud)

然后我们从主文件夹运行此命令:

composer update

之后运行php artisan vendor:publish将包括发布子包的选项。

注意:此信息的来源是:https://laraveldaily.com/how-to-create-a-laravel-5-package-in-10-easy-steps/