lyrasoft / warder
Windwalker 的一个使用包。
Requires
- lyrasoft/unidev: ~1.0
- windwalker/phoenix: ~1.0
Suggests
- hybridauth/hybridauth: Install 2.* to support social login.
- 1.7.18
- 1.7.17
- 1.7.16
- 1.7.15
- 1.7.14
- 1.7.13
- 1.7.12
- 1.7.11
- 1.7.10
- 1.7.9
- 1.7.8
- 1.7.7
- 1.7.6
- 1.7.5
- 1.7.4
- 1.7.3
- 1.7.2
- 1.7.1
- 1.7
- 1.6.3
- 1.6.2
- 1.6.1
- 1.6
- 1.5.1
- 1.5
- 1.4.5
- 1.4.4
- 1.4.3
- 1.4.2
- 1.4.1
- 1.4
- 1.3.6
- 1.3.5
- 1.3.4
- 1.3.3
- 1.3.2
- 1.3.1
- 1.3
- dev-master / 1.2.x-dev
- 1.2.3
- 1.2.2
- 1.2.1
- 1.2
- 1.1.6
- 1.1.5
- 1.1.4
- 1.1.3
- 1.1.2
- 1.1.1
- 1.1
- 1.1-alpha
- 1.0.12
- 1.0.11
- 1.0.10
- 1.0.9
- 1.0.8
- 1.0.7
- 1.0.6
- 1.0.5
- 1.0.4
- 1.0.3
- 1.0.2
- 1.0.1
- 1.0.0
- 1.0.0-beta
- dev-3to4
This package is auto-updated.
Last update: 2024-09-13 18:05:43 UTC
README
通过 Composer 安装
将以下内容添加到 composer.json
并运行 composer update
。
{ "windwalker/warder": "1.*" }
注册包
将 warder 注册到 Windwalker 中,您可以准备一个 admin
和 front
包来支持后端和前端。
// src/Windwalker/Windwalker.php use Phoenix\PhoenixPackage; use Lyrasoft\Warder\WarderPackage; // ... public static function loadPackages() { return array( 'system' => new SystemPackage, 'phoenix' => new PhoenixPackage, // You must install phoenix first 'warder' => new WarderPackage, // Add warder package // Prepare an admin and frontend package 'admin' => AdminPackage, 'front' => FrontPackage ); } // ...
迁移
运行 php bin/console migration migrate -p=warder --seed
或者将 vendor/windwalker/warder/src/Migration
和 vendor/windwalker/warder/src/Seed
文件复制到
resources/migration
和 resources/seed
您可以为更多配置文件添加自己的列。
复制配置
将 vendor/windwalker/warder/src/config.dist.yml
复制到 etc/package/warder.yml
。
或者复制以下配置代码
user: login_name: username default_group: registered session_name: user table: users: users user_socials: user_socials groups: groups user_group_maps: user_group_maps actions: actions methods: warder: \Lyrasoft\Warder\Authentication\Method\WarderMethod # social: \Lyrasoft\Warder\Authentication\Method\SocialMethod frontend: package: front view: extends: _global.html redirect: login: home logout: login forget: login login: return_key: return language: prefix: warder. admin: package: admin view: extends: _global.admin.admin redirect: login: home logout: login login: return_key: return language: prefix: warder. class: handler: Lyrasoft\Warder\Handler\UserHandler data: Lyrasoft\Warder\Data\UserData
如果您的包不是名为 admin
和 front
,请在此配置中设置包别名。
注册路由
将 Warder 的路由配置和命名空间别名添加到您的包中,以便您的包可以自动获取 Warder 页面。
// src/Front/FrontPackage.php use Lyrasoft\Warder\Helper\WarderHelper; // ... // ... public function loadRouting() { // ... $routes = array_merge($routes, WarderHelper::getFrontendRouting()); return $routes; }
现在转到 /{front@routing}/login
,您将看到自动获取的登录页面。
您可以对 admin
包做同样的事情
// src/Admin/AdminPackage.php // ... public function loadRouting() { // ... $routes = array_merge($routes, WarderHelper::getAdminRouting()); return $routes; } // ...
然后您可以在 /{admin@routing}/users
看到用户 admin
覆盖对象和模板
您可以在您的包中覆盖 warder 的对象。例如,创建 Front/Controller/User/LoginGetController.php
将具有比 Windwalker/Warder/Controller/User/LoginGetController.php
更高的加载优先级。您可以在此类中覆盖某些内容。
<?php namespace Front\Controller\User; class LoginGetController extends \Lyrasoft\Warder\Controller\User\LoginGetController { protected function prepareModelState(Model $repository) { // Do something parent::prepareModelState($repository); } }
以下文件可以覆盖
前端
# Controller
src/Controller/User/AuthController.php
src/Controller/User/Forget/CompleteGetController.php
src/Controller/User/Forget/ConfirmGetController.php
src/Controller/User/Forget/ConfirmSaveController.php
src/Controller/User/Forget/RequestGetController.php
src/Controller/User/Forget/RequestSaveController.php
src/Controller/User/Forget/ResetGetController.php
src/Controller/User/Forget/ResetSaveController.php
src/Controller/User/LoginGetController.php
src/Controller/User/LoginSaveController.php
src/Controller/User/LogoutSaveController.php
src/Controller/User/Profile/GetController.php
src/Controller/User/Profile/SaveController.php
src/Controller/User/Registration/ActivateSaveController.php
src/Controller/User/Registration/RegistrationGetController.php
src/Controller/User/Registration/RegistrationSaveController.php
src/Controller/User/SocialLoginController.php
# Form
src/Form/Profile/EditDefinition.php
src/Form/User/ForgetConfirmDefinition.php
src/Form/User/ForgetRequestDefinition.php
src/Form/User/LoginDefinition.php
src/Form/User/RegistrationDefinition.php
src/Form/User/ResetDefinition.php
# Model
src/Model/ProfileModel.php
src/Model/UserModel.php
# Template
src/Templates/profile/profile.blade.php
src/Templates/user/forget/complete.blade.php
src/Templates/user/forget/confirm.blade.php
src/Templates/user/forget/request.blade.php
src/Templates/user/forget/reset.blade.php
src/Templates/user/login.blade.php
src/Templates/user/mail/forget.blade.php
src/Templates/user/mail/registration.blade.php
src/Templates/user/registration.blade.php
# View
src/View/Profile/ProfileHtmlView.php
src/View/User/UserHtmlView.php
管理员
# Controller
src/Admin/Controller/User/GetController.php
src/Admin/Controller/User/LoginGetController.php
src/Admin/Controller/User/LoginSaveController.php
src/Admin/Controller/User/LogoutSaveController.php
src/Admin/Controller/User/SaveController.php
src/Admin/Controller/Users/Batch/ActivateController.php
src/Admin/Controller/Users/Batch/BlockController.php
src/Admin/Controller/Users/Batch/UnblockController.php
src/Admin/Controller/Users/Batch/UpdateController.php
src/Admin/Controller/Users/BatchController.php
src/Admin/Controller/Users/CopyController.php
src/Admin/Controller/Users/DeleteController.php
src/Admin/Controller/Users/FilterController.php
src/Admin/Controller/Users/GetController.php
# Form
src/Admin/Form/User/EditDefinition.php
src/Admin/Form/User/LoginDefinition.php
src/Admin/Form/Users/BatchDefinition.php
src/Admin/Form/Users/FilterDefinition.php
# Model
src/Admin/Model/UserModel.php
# Templates
src/Admin/Templates/user/login.blade.php
src/Admin/Templates/user/toolbar.blade.php
src/Admin/Templates/user/user.blade.php
src/Admin/Templates/users/batch.blade.php
src/Admin/Templates/users/modal.blade.php
src/Admin/Templates/users/toolbar.blade.php
src/Admin/Templates/users/users.blade.php
# View
src/Admin/View/User/UserHtmlView.php
src/Admin/View/Users/UsersHtmlView.php
覆盖 UserHandler 和 UserData
更改配置文件中的 class.data
,您可以添加一些新方法
# etc/package/warder.yml # ... class: handler: Lyrasoft\Warder\Handler\UserHandler data: MyUserData
class MyUserData extends \Lyrasoft\Warder\Data\UserData { const CUSTOMER = 0; const FREELANCER = 1; public function isFreelancer() { return (bool) $this->freelancer == static::FREELANCER; } }
$user = User::get($id); $user->isFreelancer();
社交登录
Warder 使用 Hybrid Auth 来支持多种 OAuth 社交登录。
请首先安装 "hybridauth/hybridauth": "^2.6"
。
Composer 更新后,将 vendor/wainwaler/warder/src/secret.dist.yml
复制到 etc/secret.yml
#Social Login social_login: facebook: enabled: false id: secret: scope: email twitter: enabled: false key: secret: scope: google: enabled: false id: secret: scope: 'https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo.email' yahoo: enabled: false key: secret: scope: github: enabled: false id: secret: scope:
目前 Warder 仅支持 Facebook、Twitter、Google、Yahoo 和 GitHub。
请参阅 文档 了解如何注册应用以及获取 API 密钥和密钥代码。
当社交提供程序设置为启用时,按钮将自动出现在登录页面上
如果您使用
Additional Providers
如GitHub
,则必须将提供程序类文件从vendor/hybridauth/hybridauth/additional-providers
复制到vendor/hybridauth/hybridauth/hybridauth/Hybrid/Providers