Ce projet utilise le repository github : boards-symfony. |
Vous pouvez au choix :
A partir du dossier du projet, exécuter :
composer update
Dans le fichier .env, ajuster la valeur de la variable DATABASE_URL.
Démarrer le serveur (Mysql) et le serveur http de dévelopement :
php bin/console server:run
Les repositories de chacun des models héritent de MainRepository, définissant les opérations de base CRUD sur les objets.
Chaque Repository héritant de MainRepository a juste à définir dans son constructeur la classe métier auquel il correspond :
<?php namespace App\Repository; use Symfony\Bridge\Doctrine\RegistryInterface; use App\Entity\Developer; class DeveloperRepository extends MainRepository{ public function __construct(RegistryInterface $registry){ parent::__construct($registry, Developer::class); } }
Les services Semantic de chacun des models héritent de SemanticGui, classe définissant les opérations utilisables dans tous les contrôleurs.
Chaque Classe Gui dérivée de SemanticGui doit logiquement redéfinir les méthodes dataTable et dataForm.
Chaque contrôleur pilotant une classe métier hérite de CrudController, qui définit l'ensemble des opérations CRUD.
<?php class DevelopersController extends CrudController{ public function __construct(DevelopersGui $gui,DeveloperRepository $repo){ $this->gui=$gui; $this->repository=$repo; $this->type="developers"; $this->subHeader="Developer list"; $this->icon="users"; } /** * @Route("/developers", name="developers") */ public function index(){ return $this->_index(); } /** * @Route("/developers/refresh", name="developers_refresh") */ public function refresh(){ return $this->_refresh(); } /** * @Route("/developers/edit/{id}", name="developers_edit") */ public function edit($id){ return $this->_edit($id); } /** * @Route("/developers/new", name="developers_new") */ public function add(){ return $this->_add("\App\Entity\Developer"); } /** * @Route("/developers/update", name="developers_update") */ public function update(Request $request){ return $this->_update($request, "\App\Entity\Developer"); } /** * @Route("/developers/confirmDelete/{id}", name="developers_confirm_delete") */ public function deleteConfirm($id){ return $this->_deleteConfirm($id); } /** * @Route("/developers/delete/{id}", name="developers_delete") */ public function delete($id,Request $request){ return $this->_delete($id, $request); } }
//TODO 1.1
Pour les models Tag, Step, Task, ajouter les fonctionnalités de base CRUD :
Consignes :