laravel学习-安装entrust和l5-repository2个基本依赖

葛泳
2023-12-01
1.安装 'l5-repository':
	直接参照github文档:https://github.com/andersao/l5-repository

	1>composer require prettus/l5-repository

	2>vim config/app.php
		给 'providers' 元素,添加 'Prettus\Repository\Providers\RepositoryServiceProvider::class,'

	3>php artisan vendor:publish	
		在 config/ 下,生成一个 'repository.php' 的配置文件

	4>安装 'league/fractal',l5-repository的presenter可能需要
		https://packagist.org/packages/leagua/fractal - 官方镜像包介绍
		composer require league/fractal - 进行安装

	5>vim repository.php
		我们配置命令的生成器:
		    'generator'  => [
		        'basePath'      => app_path(),
		        'rootNamespace' => 'App\\',
		        'paths'         => [
		            'models'       => 'Models',
		            'repositories' => 'Repositories',
		            'interfaces'   => 'Repositories',
		            'transformers' => 'Transformers',
		            'presenters'   => 'Presenters',
		            // 'validators'   => 'Validators',
		            // 'controllers'  => 'Http/Controllers',
		            // 'provider'     => 'RepositoryServiceProvider',
		            // 'criteria'     => 'Criteria',
		            // 'stubsOverridePath' => app_path()
		        ]
		    ]
		这个只是针对生成的目录进行配置,不想生成这些文件,还不行

	6>l5-repository的相关的一些命令:
		php artisan make:entity Post - 有提示,需要生成哪些文件,yes | no
		php artisan make:repository "Blog\Post" - 只生成repository,会生成 'model/repository/migration'
		php artisan make:transformer Post - 生成 transformers
		php artisan make:presenter Post - 生成 presenters

		// 这2个使用较少
		php artisan make:bindings Post - 会生成 'repositoryProviderServer.php',并绑定一个post相关的服务
		php artisan make:criteria My - 生成 MyCriteria

2.安装 'Zizaco/entrust'

	直接参照github文档:
		https://github.com/Zizaco/entrust
	中文相关资料:
		http://laravelacademy.org/post/3755.html
		http://laravelacademy.org/post/3761.html

	1>composer require zizaco/entrust 5.2.x-dev

	2>vim config/app.php
		1)给 'providers' 元素,添加 'Zizaco\Entrust\EntrustServiceProvider::class,'
		2)给 'aliases' 元素,添加 ''Entrust' => Zizaco\Entrust\EntrustFacade::class,'

	3>php artisan vendor:publish	
		在 config/ 下,生成一个 'entrust.php' 的配置文件

	4>vim config/auth.php,可添加 '用户认证' 配置:

		假设我们需要验证的是后台用户表 'admin_users':

		'guards' 元素:
	        'admin' => [
	            'driver' => 'session',
	            'provider' => 'admin_users',
	        ],

		'providers' 元素:
	        'admin_users' => [
	            'driver' => 'eloquent',
	            'model' => App\Models\AdminUser::class,
	            'table' => 'admin_users',
	        ],

	    'passwords' 元素:
	        'admin_users' => [
	            'provider' => 'admin_users',
	            'email' => 'auth.emails.password',
	            'table' => 'admin_password_resets',
	            'expire' => 60,
	        ],

	5>vim app/Http/Kernel.php
		给 'routeMiddleware' 数组,添加 'entrust' 自带的中间件:
			'role' => \Zizaco\Entrust\Middleware\EntrustRole::class,
			'permission' => \Zizaco\Entrust\Middleware\EntrustPermission::class,
			'ability' => \Zizaco\Entrust\Middleware\EntrustAbility::class,

	6>生成迁移数据表:
		这里我们需要进行配置:config/entrust.php 进行RBAC权限表的配置。
		php artisan entrust:migration - 根据我们的entrust.php的配置,生成迁移的数据表语句

	7>创建真实数据表(暂不执行):
		php artisan migrate

3.安装的RBAC后台权限认证,是没有用户表的,所以我们还得创建 'admin_users' 数据表,以及模仿laravel自带的Auth前台认证。
	1>参阅laravel的Auth用户认证文档:
		http://laravelacademy.org/post/3074.html
	快速配置出前台用户认证:
		1)php artisan make:auth - 生成一堆文件,以及添加视图:
		2)vim app/Http/Controllers/Auth/AuthController.php
			protected $redirectTo = '/home';		// 默认是 '/',登录认证成功后的跳转地址
		3)php artisan migrate - 生成Auth认证相关数据表(暂不执行,因为一旦执行,会生成所有的数据表)
		就可访问前端页面,登录、注册、忘记密码等页面。

	2>我们搭建后台认证
		可查看项目源码,模仿 admin_users 后台用户认证:
			https://github.com/yuansir/laravel5-rbac-example

/*
	模仿 'laravel5-rbac-example' 项目进行修改:
 */
1.数据库相关:
	1>找到我们项目中的 database/migrations/xx_entrust_setup_table.php,对照 'laravel5-rbac-example' 的database/migrations/的 'xx_entrust_base.php' 和 'xx_entrust_pivot_admin_user_role.php' 进行比对。我们修改成我们自己想要的后台一些字段!
	2>admin_users数据表和忘记密码表
		创建2个迁移记录:
			php artisan make:migration create_admin_users_table
			php artisan make:migration create_admin_password_resets_table
		编辑2个迁移记录:	
			xx_create_admin_users_table.php
			xx_create_admin_password_resets_table.php

2.开始搞admin_users相关内容:
	1>控制器:app/Http/Controllers/Admin
	2>中间件:app/Http/Middleware/AuthenticateAdmin.php
		php artisan make:middleware AuthenticateAdmin
		编辑进行修改
	3>Kernel.php - 将上面的admin相关的中间件,得注册到 中间件配置文件中
		vim Kernel.php,在 $routeMiddleware 数组中,添加:
			'auth.admin' => \App\Http\Middleware\AuthenticateAdmin::class,
	4>表单请求验证:app/Http/Requests/
	5>routes.php - 添加后台所有相关的路由
	6>后台所有相关的 'Model',我们定的目录为 'app/Models/'
	7>后台模板:resources/views/admin
	8>public:存放后台静态文件,图片、js、css
	--------
	9>复制l5-repository依赖相关目录,这个也是需要的:
		app/Repositories
		app/Presenters
		app/Transformers
	10>对复制过来的各个东西进行修改

 类似资料: