Speedy - 簡潔靈活的 Laravel 管理後臺

Hanson發表於2017-02-13

Speedy是基於 vue2 + bootstrap 的 laravel 管理後臺,能夠快速開發好一個許可權後臺,而且能夠非常方便的生成一級或者二級選單。

專案地址: https://github.com/HanSon/speedy

歡迎前來 star 以及提 issue !

file

安裝

laravel 5.1 以上:

composer require hanson/speedy

laravel 5.1 :

composer require hanson/speedy:~v0.5.0

配置

新增服務提供者

新增 Hanson\Speedy\SpeedyServiceProvider::class,app.phpproviders

釋出資源

php artisan vendor:publish --provider="Hanson\Speedy\SpeedyServiceProvider"

修改配置

Speedy 的配置在 config/speedy.php 中,涉及Model的名稱空間以及表名(Speedy 會根據配置生成 Models 以及 Migration)

return [
    'class' => [
        'namespace' => 'App\\Models\\',
        'model' => [
            'role' => 'Role',
            'user' => 'User',
            'permission' => 'Permission',
            'permission_role' => 'PermissionRole',
        ]
    ],

    'table' => [
        'role' => 'role',
        'permission' => 'permission',
        'user' => 'users',
        'permission_role' => 'permission_role',
    ],
    // ...
]

安裝 Speedy

php artisan speedy:install
此命令將會

  • 執行 migration
  • 生成 models
  • 執行 seeder , 生成預設的角色 admin
  • 根據 menu 生成 permission
  • web.php 生成相關路由

建立管理員

php artisan speedy:admin admin@email.com --create
或者設定已有使用者為管理員
php artisan speedy:admin admin@email.com
(PS: 沒錯,這裡是 voyager 的程式碼)

也許你想直接用 laravel 自帶的 auth

php artisan make:auth
在生成的 LoginController 中, 修改 $redirectTo = '/home'$redirectTo = '/admin'
記得更改 auth.phpproviders
providers['users']['model'] => App\Models\User::class

執行

執行 php artisan serve 後, 訪問 http://localhost:8000/admin 開啟你的 Speedy 之旅吧

文件

Speedy 比較適合開發一些簡單許可權的後臺,不適合於複雜的許可權管理。
在 Speedy 中,一個選單將會生成一個許可權,當一個使用者使用者這個選單的許可權時,意味著這個使用者能夠使用該選單的所有功能。

選單

通過修改 config/speedy.php 的 menus ,然後執行 php artisan speedy:menu 將自動重新整理許可權、選單,並且賦予管理員所有許可權。
選單的屬性主要有

  • display 選單顯示名稱
  • url 當前選單URL
  • sub 是否二級選單,包含著多個子選單,當設定了此引數時,將會忽略引數 url
  • target 跳轉方式,預設當前開啟

頁面

Speedy 的頁面在 resources/views/vendor/speedy 中,在 resources/views/vendor/speedy/layouts/app.blade 中,你可以給一些資源替換一些國內的CDN (使用預設的app.js 以及 app.css 會出現奇怪的問題,例如二級選單箭頭刷不出,JS 報錯,然而版本都是一致的)

中介軟體

Speedy 配有中介軟體 Hanson\Speedy\Http\Middleware\SpeedyAdminMiddleware 進行許可權驗證
Controller 可以繼承 Hanson\Speedy\Http\Controllers\BaseController , 並重寫屬性 permissionName 為選單的key即可驗證許可權

語言

Speedy 內建了中文語言包,源自

config/app.php 中設定 localezh-cn 即可

resource/lang/zh-cn/view.php 為頁面的內容
resource/lang/zh-cn/attribute.php 為表單驗證的欄位,可參考 config/validator 的key

表單驗證

表單驗證的 rules 位於 config/validator

Speedy Vs Voyager

Voyager 是一個很出色的 laravel 後臺管理包,能夠很好的在後臺新增所需要的表單,設定其欄位,達到不需要敲程式碼也能完成後臺開發工作。但本人覺得 Voyager 有點過於使用資源,導致每個頁面都會引入一堆的 CSS 以及 JS,要想去掉也是比較麻煩的事情。路由也比較龐大,也許在高配的開發電腦上體驗不到,但在我家用電腦跟公司比較下,差距就放大了很多倍了。

許可權思想不一樣是兩者最大的區別, Speedy 的許可權比較特殊,沒有細化到某個功能,只有某個模組,非常適合一些小型專案或者對許可權要求不復雜的專案。許可權並沒有直接在管理後臺中修改,而是通過修改選單時才生成許可權。只引入了 bootstrap 以及 vue 2 去控制頁面,盡最大可能簡化頁面。

PS:其實一開始,我只是想寫個sidebar,沒想到寫了個後臺

本作品採用《CC 協議》,轉載必須註明作者和本文連結

提供優質的軟體服務

相關文章