Panel de administración agnóstico marco.
tratando de hacerlo lo más mínimo posible. Le permite crear varias páginas con diferentes tipos (tabla, forma). sin intervenir mucho con su base de código.
PD: Todavía necesita configurar sus rutas, la autenticación, etc.
Permitimos múltiples tipos de respuestas, como un valor predeterminado, utilizamos vistas de PHP, pero pensamos que los usuarios de Laravel como ejemplo usarían blade , por lo que una posible solución es crear un Renderer diferente.
Por ahora tenemos dos Renderers predeterminados:
DefaultRenderer esto solo devuelve una matriz como salidaJsonRenderer esto devuelve la salida de JSON Para crear un renderizador, se extiende AecodesAdminPanelResponsesRenderer . Luego agrégalo a la configuración.
PD: Widgets implementa la interfaz Widget .
config/panel.php como punto de partida.Dashboard , asegúrese de pasar la configuración como una matriz. $ config = require ' ./config/panel.php ' ;
Aecodes AdminPanel Dashboard:: setup ( $ config );Panel$name y $description del panel (visible en la página).query que devuelva la matriz de datos. function query (): array {
// get data from database.
return Page:: all ()-> toArray ();
}render que devuelva una matriz de widgets. 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 ();
} Al extender la clase Panel , puede especificar la propiedad $layout .
Esto no se envía con una capa de vista. Puede usar los paquetes predeterminados (pronto) de vista.
La configuración predeterminada es:
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 [];
}
];