ajoutUtilisateurs
This commit is contained in:
58
README.md
58
README.md
@@ -1,3 +1,57 @@
|
||||
# Les Recettes des Papis
|
||||
# Les recettes des Papis
|
||||
|
||||
modif sur la partie bd jusqu'au 30/03/26 a 15h
|
||||
## Installation
|
||||
- Décompressez l'archive du site.
|
||||
- Pointez votre domaine sur le dossier "public".
|
||||
- Modifiez les fichiers de configuration dans "config".
|
||||
|
||||
## Informations pratiques sur le PHP.
|
||||
|
||||
- Ce site utilise le principe des routes. Afin de ne pas avoir x fichiers publiques identiques pour chaque page.
|
||||
- Tout est géré par le fichier public/index.php.
|
||||
- index.php va charger le Kernel (Noyau) de l'application.
|
||||
- Le noyau fonctionne sur le principe d'élément unique. La méthode ``Kernel::getInstance()`` va permettre d'avoir l'unique instance de la classe Kernel.
|
||||
- Une fois ``Kernel::getInstance()->init()`` déclenché, le noyau enregistre l'autoloading des fichiers, puis enregistre la configuration.
|
||||
- La configuration sont des fichiers dans le dossier config/ qui vont renvoyer un tableau clé/valeur. Exemple
|
||||
|
||||
```php
|
||||
// Fichier config/test.php
|
||||
<?php return [
|
||||
'cle_1' => "Val1",
|
||||
'cle_2' => "Val2",
|
||||
// ...
|
||||
] ?>
|
||||
```
|
||||
|
||||
- Les fichiers de configuration sont chargés via la méthode ``ConfigFactory::loadConfigFile()`` qui va vérifier si le fichier de configuration existe et le charge en conséquence.
|
||||
- On enchaine ensuite sur le Router.
|
||||
- Le Router est une classe utilitaire qui va permettre de faire le lien entre la route saisie ``/test/...`` de l'utilisateur et les routes enregistrés par le site.
|
||||
- Le Router va d'abord commencer par récupérer la route voulue par l'utilisateur.
|
||||
- Puis, le router va rechercher tous les Controllers existants.
|
||||
- Un Controller est une classe qui va permettre de définir les routes et de dire, qu'est-ce qui se passe quand je prends cette route. Les routes du Controller sont définis par la methode ``Controller::defineRoutes()``
|
||||
- Pour définir les routes dans la méthode précédente, vous pouvez soit créer un objet ``Route`` en remplissant tous les champs, ou bien la méthode ``Controller::Route()`` qui va préremplir certains champs.
|
||||
- Exemple de Controller
|
||||
```php
|
||||
class TestController extends Controller {
|
||||
|
||||
public static function defineRoutes(): array {
|
||||
return [
|
||||
self::Route( routeUrl: '/test', routeName: "Test", routeAction: "test" ),
|
||||
new Route( routeUrl: "/test2", routeName: "Test2", routeController: "TestController", routeAction: "test2", routeMethods = [ 'GET' ] )
|
||||
];
|
||||
}
|
||||
|
||||
public function test(){
|
||||
echo "Je suis déclenché lorsque j'atteinds la route /test";
|
||||
}
|
||||
|
||||
public function test2(){
|
||||
echo "Je suis déclenché lorsque j'atteinds la route /test2 !!!";
|
||||
}
|
||||
}
|
||||
```
|
||||
- Retournons au routeur, pour chercher les controllers, il va scanner les fichiers du dossier src/Domain avec un Iterator Récursif. (Pour se simplifier un peu la tâche.)
|
||||
- Il va traiter le nom du chemin absolu pour obtenir le nom de la classe, puis va vérifier si cette classe est une sous-classe de Controller.
|
||||
- Après avoir trouvé tous les Controllers, il va récupérer toutes les routes de chaque controller.
|
||||
- Enfin, il va vérifier si la route utilisateur correspond à une des routes dans sa liste, si ça correspond, le Router va charger la méthode ``new {RouteController}()->{RouteAction}()``
|
||||
- Si par exemple, le router trouve la route ``/test`` voulu par l'utilisateur, il va déclencher la méthode ``new TestController()->test()``.
|
||||
Reference in New Issue
Block a user