admin panel
1.0.0
フレームワークアグノーシス管理パネル。
できるだけ最小限にしようとしています。これにより、異なるタイプ(テーブル、フォーム)の複数のページを作成できます。コードベースにあまり介入することなく。
PS:ルート、認証などをセットアップする必要があります...
デフォルトとしてPHPビューを使用したデフォルトとして、複数のタイプの応答を許可しますが、Laravelユーザーには代わりにbladeを使用すると考えていたため、1つの可能なソリューションは異なるRendererを作成することです。
今のところ、2つのデフォルト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 [];
}
];