Panneau d'administration agnostique du cadre.
essayer de le rendre aussi minime que possible. Il vous permet de créer plusieurs pages avec différents types (table, formulaire). sans intervenir beaucoup avec votre base de code.
PS: Vous devez toujours configurer vos itinéraires, l'authentification, etc.
Nous permettons à plusieurs types de réponses, comme par défaut, nous avons utilisé des vues PHP, mais nous avons pensé aux utilisateurs de Laravel comme exemple, utiliserait à la place blade , donc une solution possible consiste à créer un Renderer différent.
Pour l'instant, nous avons deux Renderers par défaut:
DefaultRenderer cela renvoie juste un tableau en tant que sortieJsonRenderer Ce renvoie la sortie JSON Pour créer un rendu, il étend AecodesAdminPanelResponsesRenderer . puis ajoutez-le à config.
PS: les widgets implémentent l'interface Widget .
config/panel.php comme point de départ.Dashboard , assurez-vous de passer la configuration en tant que tableau. $ config = require ' ./config/panel.php ' ;
Aecodes AdminPanel Dashboard:: setup ( $ config );Panel$name et $description du panneau (visible sur la page).query qui renvoie le tableau de données. function query (): array {
// get data from database.
return Page:: all ()-> toArray ();
}render qui renvoie un tableau 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 ();
} Lors de l'extension de la classe Panel , vous pouvez spécifier la propriété $layout .
Cela n'en est pas expédié avec une couche de vue. Vous pouvez utiliser les packages de vues par défaut (bientôt).
La configuration par défaut est:
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 [];
}
];