tjventurini / service-provider
一个简单的Laravel ServiceProvider类,用于标准化包。
v0.0.2
2021-03-05 23:40 UTC
Requires (Dev)
- phpunit/phpunit: ^9.5
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'); } }
有关更多信息,请参阅SimpleServiceProvider和Package类 🕵
路线图 🛣
- 自动检测命令
- 自动检测服务
- 自动检测GraphQL命名空间
- 启用处理多个配置文件
- 启用处理多个GraphQL模式文件