tjventurini/service-provider

一个简单的Laravel ServiceProvider类,用于标准化包。

v0.0.2 2021-03-05 23:40 UTC

This package is auto-updated.

Last update: 2024-09-06 07:00:47 UTC


README

此包提供了SimpleServiceProvider类,您可以使用它来加速您的Laravel包开发。

此包并非受到启发,而是受到了spatie/laravel-package-tools的高度影响。😉

安装

要安装此包,您可以运行以下命令。

composer require tjventurini/service-provider

为了在包中使用它,您应该在您的composer.json文件中将它添加为依赖项。

功能

  • 自动检测您包提供的资源 🔍
  • 可以处理和自动检测配置
  • 可以处理和自动检测迁移
  • 可以处理和自动检测翻译
  • 可以处理和自动检测视图
  • 可以处理Artisan命令
  • 可以处理服务
  • 可以处理和自动检测GraphQL模式
  • 可以处理GraphQL命名空间
  • 可以处理路由文件

用法

要使用SimpleServiceProvider类,只需在您的ServiceProvider上扩展它。

use Tjventurini\ServiceProvider\SimpleServiceProvider;

class YourPackageServiceProvider extends SimpleServiceProvider

默认情况下,服务提供程序将尝试自动检测并设置您的包提供的资源,而无需您采取任何额外步骤。如果您需要更多的设置灵活性,请继续阅读。

配置

use Tjventurini\ServiceProvider\SimpleServiceProvider;

class YourPackageServiceProvider extends SimpleServiceProvider
{
    /**
     * Setup the configuration for the given package.
     *
     * @param  Package $Package
     * @return void
     */
    public function configurePackage(Package $Package): void
    {
        $Package
            ->setPackageSlug('your-package-slug')
            ->hasConfig()
            ->hasMigrations()
            ->hasTranslations()
            ->hasCommands([
                SomeCommand::class,
                AnotherCommand::class
            ])
            ->hasGraphQLSchema()
            ->hasGraphQLNamespaces([
                'models' => 'Foo\\Bar'
            ])
            ->registerService(SomeService::class)
            ->registerService(ServiceWithConfig::class, ['api_key' => 'some-key'])
            ->hasWebRoutes()
            ->hasApiRoutes()
            ->registerRouteFile('routes/admin.php');
    }
}

有关更多信息,请参阅SimpleServiceProviderPackage类 🕵

路线图 🛣

  • 自动检测命令
  • 自动检测服务
  • 自动检测GraphQL命名空间
  • 启用处理多个配置文件
  • 启用处理多个GraphQL模式文件