mykemeynell / archuser
该包最新版本(1.0.8)没有提供许可证信息。
Laravel的用户层架构(服务、仓库、实体)
1.0.8
2019-11-28 10:44 UTC
Requires
- mykemeynell/archlayer: ^1.0
- mykemeynell/laraveluuid: ^1.0
README
一个用于设置用户存储服务、仓库和实体的小型包。您可以通过扩展此包内的类和接口来添加自己的额外功能,或者使用此包中提供的默认功能。
通过Composer安装
- 为您的应用程序获取最新版本的ArchUser。
composer require mykemeynell/archuser
- 在您的应用程序中包含服务提供者。
... \ArchLayerUser\Provider\ArchUserServiceProvider::class, ...
- 将服务、仓库和实体绑定到您的应用程序。
public function register(): void { $this->app->bind('user.entity', \ArchLayerUser\Entity\UserEntity::class); $this->app->bind('userRole.entity', \ArchLayerUser\Entity\UserRoleEntity::class); $this->app->bind('userRolePermission.entity', \ArchLayerUser\Entity\UserRolePermissionEntity::class); $this->app->singleton('user.repository', \ArchLayerUser\Repository\UserRepository::class); $this->app->singleton('userRole.repository', \ArchLayerUser\Repository\UserRoleRepository::class); $this->app->singleton('userRolePermission.repository', \ArchLayerUser\Repository\UserRolePermissionRepository::class); $this->app->singleton('user.service', \ArchLayerUser\Service\UserService::class); $this->app->singleton('userRole.service', \ArchLayerUser\Service\UserRoleService::class); $this->app->singleton('userRolePermission.service', \ArchLayerUser\Service\UserRolePermissionService::class); }
- 注册任何别名并适当地填充您的提供者
provides(): void方法,我有一些包在mykemeynell/laravel-alias-service和mykemeynell/laravel-provides-service。以下说明基于使用这些包。
class AppServiceProvider extends ServiceProvider { use mykemeynell\Support\Providers\Concern\AliasService, mykemeynell\Support\Providers\Concern\ProvidesService; /** * Services that are to be aliased into application. * * @var array */ protected $aliases = [ 'user.entity' => [\ArchLayerUser\Entity\Contract\UserEntityInterface::class], 'userRole.entity' => [\ArchLayerUser\Entity\Contract\UserRoleEntityInterface::class], 'userRolePermission.entity' => [\ArchLayerUser\Entity\Contract\UserRolePermissionsEntityInterface::class], 'user.repository' => [\ArchLayerUser\Repository\Contract\UserRepositoryInterface::class], 'userRole.repository' > [\ArchLayerUser\Repository\Contract\UserRoleRepositoryInterface::class], 'userRolePermission.repository' => [[\ArchLayerUser\Repository\Contract\UserRolePermissionsRepositoryInterface::class]], 'user.service' => [\ArchLayerUser\Service\Contract\UserServiceInterface::class], 'userRole.service' => [\ArchLayerUser\Service\Contract\UserRoleServiceInterface::class], 'userRolePermission.service' => [\ArchLayerUser\Service\Contract\UserRolePermissionsServiceInterface::class], ]; ...
- 调用
AliasService::registerAliases(): void方法。
public function register(): void { $this->registerAliases(); ...