asciito/laravel-package

用于构建Laravel包的简单包

v0.4.4 2024-04-29 01:36 UTC

This package is auto-updated.

Last update: 2024-10-01 00:11:14 UTC


README

Latest Version on Packagist Licence on Packagist Tests Total Downloads

这个PHP包可以帮助你更轻松地创建Laravel包,至少对我来说是这样的。

安装和使用

只需运行以下命令

composer require asciito/laravel-package

然后,我们需要遵循一些关于如何组织包文件夹的规则。所以我们将遵循Laravel约定。


<your-package>
├─ src
│   ├─ Console
│   │   └─ Commands
│   │       └─ ...
│   └─ YourPackageServiceProvider.php
├─ config
│   └─ package-config.php
├─ database
│   └─ migrations
│       ├─ your_package_migration_table.php
│       ├─ other_package_migration_table.php
│       └─ ...
├─ test
│   └─ ...
├─ composer.json
├─ composer.lock
├─ README.md
├ ...
.

注意

您可以通过编辑文件夹结构部分来编辑文件夹结构

现在,在您的服务提供者中,您应该声明两个方法以使您的包生效。一个是方法static::configurePackage(Package $package)static::getNamespace()

这是服务提供者最基本的配置,但这并没有为您做很多事情。如果您想要注册命令、配置文件和迁移文件,您需要向包链式调用更多方法。

class LaravelPackageServiceProvider extends PackageServiceProvider
{
    protected function configurePackage(Package $package): void
    {
        $package->setName('<your-package-name>');
    }
}

注册命令

要注册您的包命令,请调用方法static::withCommands(string|string[] ...$command)。现在不要担心方法的签名,如果您只是调用该方法,这将注册来自默认命令文件夹<your-package-folder>/src/Console/Commands的命令。

protected function configurePackage(Package $package): string
{
    $package
        ->setName('<your-package-name>')
        ->withCommands();
}

注册配置文件

添加配置文件与上一部分相同,只需调用方法static::withConfig(string|array $config = [], bool $publish = false)。现在不要担心签名,如果您调用该方法,您将能够加载和发布所有配置文件。

protected function configurePackage(Package $package): string
{
    $package
        ->setName('<your-package-name>')
        ->withConfig();
}

有了这个,您应该可以通过调用命令php artisan vendor:publish --tag=<your-package-name>-config来发布所有配置文件,就是这样,所有来自您的包的配置文件都将被发布,并且如最后一节所述,您的默认文件夹应该是<your-package-folder>/config

注册迁移文件

要注册我们的迁移,只需调用方法static::withMigrations(string|array $config = [], bool $publish = false)。现在不要担心方法的签名,如果您只是调用该方法,这将注册来自默认迁移文件夹<your-package-folder>/database/migrations的命令。

protected function configurePackage(Package $package): string
{
    $package
        ->setName('<your-package-name>')
        ->withMigrations();
}

有了这个,您应该可以通过调用命令php artisan vendor:publish --tag=<your-package-name>-migrations来发布所有迁移文件,就是这样,所有来自您的包的迁移文件都将被发布,并且如最后一节所述,您的默认文件夹应该是<your-package-folder>/database/migrations


注意

Laravel默认不发现您的包,因此您需要手动注册服务提供者(在v5.5之前),但您可以通过将服务提供者添加到composer.json中的extra属性来指示Laravel自动发现您的包(v5.5或更高版本)。

例如

{
  "extra": {
      "laravel": {
          "providers": [
              "Vendor\\YourPackageName\\YourPackageServiceProvider"
          ]
      }
  }
}

如果您将服务提供者添加到这个属性,Laravel将自动发现您的包。

您可以在Laravel官方文档上了解更多信息。

文档

正在加载...

编辑文件夹结构

正在加载...

许可证

laravel-package是开源软件,根据MIT许可证许可。