admin panel
1.0.0
框架不可知論管理面板。
試圖使其盡可能最小。它允許您創建具有不同類型的多個頁面(表,表單)。不用太多的代碼庫。
PS:您仍然需要設置路線,身份驗證等...
我們允許多種類型的響應,因為默認情況下我們使用了PHP視圖,但是我們認為Laravel用戶將使用刀片,因此可以使用blade ,因此一種可能的解決方案是創建另一個Renderer 。
目前,我們有兩個默認Renderers :
DefaultRenderer這只是返回一個數組作為輸出JsonRenderer此返回JSON輸出為了創建渲染器,使其擴展了AecodesAdminPanelResponsesRenderer 。然後將其添加到配置。
PS:小部件實現Widget界面。
config/panel.php創建一個配置文件作為起點。Dashboard類實例(Singleton)實例,請確保將配置作為數組傳遞。 $ config = require ' ./config/panel.php ' ;
Aecodes AdminPanel Dashboard:: setup ( $ config );Panel類的新類$name和$description為屬性(頁面上可見)。query方法。 function query (): array {
// get data from database.
return Page:: all ()-> toArray ();
}render方法,該方法返回一個小部件數組。 function render (): array {
return [
Table:: make ([
// (label, name) both are optional
TD :: make ( ' # ' , ' id ' ),
// it's also possible to use Table::column
Table:: column ( ' Title ' , ' title ' ),
])
// ...
];
} function render (): array {
return [
Form:: make ([
Input:: make ( ' title ' )-> title ( ' Title ' ),
// form submit
Action:: button ( ' Save ' ),
])
-> action ( ' # ' )
-> method ( ' post ' ),
// ...
];
} // callback for some route
public function index () {
// PagesTable extends Panel
return ( new Response ( new PagesTable ))-> render ();
}擴展Panel類時,您可以指定$layout屬性。
這不會帶有視圖層。您可以使用默認值(很快)視圖軟件包。
默認配置是:
return [
// current renderer.
' renderer ' => ' default ' ,
// add new renderer here.
' renderers ' => [
' json ' => Aecodes AdminPanel Responses JsonRenderer::class,
' default ' => Aecodes AdminPanel Responses DefaultRenderer::class,
],
// default classes for button and a tag.
' classes ' => [
' link ' => '' ,
' button ' => '' ,
],
// global menus, can be and array or callback
' menu ' => function () {
return [];
},
// input old value.
' old_value ' => function ( $ name , $ default ) {
return $ default ;
},
// global errors (i.e: validation errors)
' errors ' => function () {
return [];
}
];