Skip to content

Commit

Permalink
Adding Documentation
Browse files Browse the repository at this point in the history
  • Loading branch information
Acksop committed Oct 1, 2022
1 parent 24f6cbd commit 50bf9e1
Show file tree
Hide file tree
Showing 12 changed files with 149 additions and 77 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -54,15 +54,15 @@ Afin de pouvoir démarrer un projet SAND, vous devez mettre en place votre envir

Commençons par cloner le dépot docker nécessaire au framework par la commande `git clone` :

`git clone https://anonymous@git.renater.fr/authscm/eroy5/git/mvc-sand-frame/docker-lamp.git`
`git clone https://github.com/Acksop/docker-compose-lamp.git`

puis déplacez-vous dans le dossier www par la commande `cd` :

`cd docker-lamp/www`

et cloner le dépot du framework dans ce dossier sous le nom my-new-project-directory par la commande `git clone` :

`git clone https://anonymous@git.renater.fr/authscm/eroy5/git/mvc-sand-frame/mvc-sand-frame.git my-new-sand-projet-directory`
`git clone https://github.com/Acksop/SAND-framework.git my-new-sand-projet-directory`

Voilà vous avez le nécessaire pour scruter le code du Framework et consulter les quelques documentations primales qui se trouvent dans le dossier `www/my-new-sand-projet-directory/data/docs`

Expand Down Expand Up @@ -97,7 +97,8 @@ ajouter/décommenter simplement les lignes suivantes dans ce fichier :
````
vous pouvez aussi utiliser la commande suivante :

```` echo '<VirtualHost *:80>
````
echo '<VirtualHost *:80>
ServerName my-new-sand-project.dev.local
ServerAdmin webmaster@localhost
DocumentRoot "/var/www/my-new-sand-project-directory/public"
Expand Down
24 changes: 15 additions & 9 deletions data/docs/01.a. Configuration de départ.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,22 @@
#Les étapes de configurations de SAND

il vous faut modifier quelques valeurs dans les fichiers de configuration suivant
- `application/config/app-parameters.php.skel`
- `application/config/bdd-parameters.php.skel`
Il vous faudra modifier quelques valeurs dans les fichiers de configuration suivants

+ `application/config/app-parameters.php.skel`
+ `application/config/bdd-parameters.php.skel`

> _En l'occurence `app-parameters` permet de configurer les variable de l'application (url, etat de l'application, dossier prefixé, etc.) alors que `bdd-parameters` vous permet de configurer les accès aux bases de données propres à l'application que celles-ci soient distantes ou sur le même serveur. Tout est fait avec pdo, donc il vous est possible suivant la configuration de votre php d'accéder a de nombreuses base de données différentes. Souvent pour le web on utilise simplement `Mysql`, `PostGreSQL` ou `Mariadb` mais il ne tient qu'a vous d'utiliser d'autres base de données ancienne comme `Oracle` qui est la référence dans le domaine._
> Une fois que vous avez fait cela, vous pouvez enlever l'extension `.skel` afin que l'autoload de composer puisse les prendre en compte.
Vous pouvez totalement tester l'application de base de SAND en générant le dossier `vendor`. Pour cela il faut placer votre console à la racine de l'application et puis lançer
`composer update`. Si votre serveur (`Apache` ou `Nginx`) est correctement configuré pour pointer dans le dossier public sur l'index, vous devriez obtenir une application de test avec les fonctionnalités de base. En triturant un peu les fichier contenus dans le dossier `application/include` vous devriez comprendre comment se contruit une application réalisée avec SAND.

et enlever l'extension `.skel` afin que l'autoload de composer puisse le prendre en compte

Vous pouvez tester une application de base simple en générant le dossier vendor en vous mettant à la racine de l'application et en lançant
`composer update`. Si votre serveur est correctement configurer pour pointer dans le dossier public sur l'index, vous devriez obtenir une application de test avec les fonctionnalités de base. En triturant un peu les fichier contenus dans le dossier `application/include` vous devriez comprendre comment se contruit une application faites avec SAND.
Il en va de même pour tous les fichiers de configuration présent dans le dossier `config` portant l'extension `.skel`
En effet les autres fichiers contenus dans `config` servent pour la branche dev, mais peuvent aussi servir pour votre application.

Les autres fichiers contenus dans config servent pour la branche dev, mais peuvent aussi servir pour votre application.
Dans le cas où vous choisissez d'utiliser les conduits symfony lors du développement de votre application, vous devrez modifier le fichier `application/config/files/routing.yml`.

Dans le cas où vous choissisez d'utiliser les conduits lors du développement de votre application,
vous devrez modifier le fichier `application/config/files/routing.yml`.
Les conduits Symfony permettent de totalement controler l'aspect de l'adresse ([URL](https://wikini.besançon25.fr/wakka.php?wiki=UrnUriUrlDefinitions)) se trouvant dans la barre de votre butineur. En effet grâce à ce package de la communauté Sf ainsi que de Monsieur Fabien Potencier, vous pouvez vous débarasser d'un nommage classique de la variable. C'est quelquefois plus lisible, mais aussi quelques fois moins....

2 changes: 1 addition & 1 deletion data/docs/01.c. Comment bien utiliser les urls.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,4 @@ où {page} est le nom :

Vous pouvez ainsi récupérer les variables passées en GET dans le contrôlleur depuis `$url_params['varname1']`

D’autres types d’urls peuvent être mises en place par la configuration du routing symfony et des conduits, il faut alors renseigner les informations de routage dans le fichier `/application/config/files/routing.yml` et faire correspondre l’url d’accès au Conduit.
D’autres types d’urls peuvent être mises en place par la configuration du routing symfony et des conduits, il faut alors renseigner les informations de routage dans le fichier `/application/config/files/routing.yml` et faire correspondre l’url d’accès au Conduit. Comme vous l'avez vu précédement dans l'architecture du Framework SAND, les conduits se trouve dans `/application/include/conduits`, Allez donc y jeter un coup d'oeil, car la doc que vous lisez en ce moment les utilisent dans l'application de base.
19 changes: 11 additions & 8 deletions data/docs/01.d. Comment bien utiliser les commandes console.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,21 @@
#Comment bien utiliser les commandes dans le framework SAND

Les commandes console du framework sont toutes documentée par l'appel de la méthode help
Les commandes `console/bin.php` du framework (le binaire php) sont toutes documentée par l'appel avec la méthode help

Par exemple pour voir les méthodes associés à la commande page vous pourvez lancer la commande suivante depuis le dossier console:
_En fait : structurellement, les commande sont des classes comportant un nom et des méthodes, vous remarquerez que vos commande de classes peuvent être rangé dans le dossier `Console/App`, ce sont ainsi vos production qu'il faut ici implémenter.
Tout ce qui touche a des commandes propre au framework sont dans `Console/Sand`. Ici, clairement si un contributeur veut modifier les commande des Modules, il pourra le faire dans App ou dans Sand, peut importe, au final le mieux ce serait qu'il les partage avec la communautée par une pull Request_


Par exemple pour voir les méthodes associés à la commande `page` vous pouvez tout à fait taper la commande suivante depuis le dossier `console` :

`php bin.php page:help`

et vous verrez les différentes méthodes qui y sont associées.

Typiquement sur un projet on peut soit ajouter les fichiers manuellement quand on a l'habitude, soit aussi profiter des commandes:
`action`,`conduit`,`module` et `page`
Typiquement sur un projet : l'on peut soit ajouter les fichiers manuellement quand on a l'habitude, soit aussi profiter des commandes utiles en mode console:
`action`, `conduit`, `module` et `page`

Si vous avez a videz le cache des vues et des logs vous pouvez utiliser la commande
Et, si vous devez vider le cache des vues et/ou des logs vous pouvez totalement vous jetez sur l'utilisation des commandes
`php bin.php cache:clear`
quand a
`php bin.php cache:stabilize`
vous permet de vider le cache des vues blade et/ou twig
et
`php bin.php cache:stabilize`
64 changes: 36 additions & 28 deletions data/docs/01.e.i Comprendre SAND pour ajouter une nouvelle page.md
Original file line number Diff line number Diff line change
@@ -1,72 +1,80 @@

*SAND est nommé pour l'acronyme récursif (Simplement [AND et] un Autre Nouveau Dossier)*

Tout d'abord, avant même de vouloir ajouter de nouvelles pages, je vais vous présenter la structure, ainsi vous comprendrez où se trouvent les fichiers nécessaires afin d'ajouter une simple page `Hello_World`
Tout d'abord, avant même de vouloir vous montrer comment ajouter de nouvelles pages, je vais représenter la structure, ainsi vous comprendrez où se trouvent les fichiers nécessaires où que vous devrez implémenter afin d'ajouter une simple page `Hello_World` et un peu plus `Hello_All_About_The_World`

## Comment est architecturé le framework SAND ?

La racine de SAND contient les dossiers suivant :

- `application` : dossier contenant différents fichiers, propre à l’application et au framework dont on détaillera le contenu plus bas.
- `application`

1. `class` : dossier contenant les fichiers propres au framework. Ne doit pas être modifié.
1. `class` :
2. `config` : dossier contenant les fichiers de configuration, normalement lors de la récupération du dépôt, les fichiers sont a renommer et a ancrer avec les bonnes valeurs
2. `config` : dossier contenant les fichiers de configuration de l'application
3. `include` : dossier de développement contient :
3. `include` : **DOSSIERS CENTRAUX DE DEVELOPPEMENTS**
1. `actions` : dossier contenant les actions réutilisables dans les vues de l’application
* `actions` : dossier contenant les actions réutilisables dans les vues de l’application
2. `conduits` : dossier contenant le contrôleur qui est conduit par le routage symfony, ici utilisé exclusivement pour générer des réponses AJAX
* `conduits` : dossier contenant le contrôleur qui est conduit par le routage symfony, ici utilisé exclusivement pour générer des réponses AJAX
3. `controlleurs` : dossier contenant les contrôleurs de l’applications, nous verrons plus tard le modèles MVC propre au framework, mais il faut savoir que les controlleurs contiennent les accès en bdd de la page correspondant à son nom
* `controlleurs` : dossier contenant les contrôleurs de l’applications, nous verrons plus tard le modèles MVC propre au framework, mais il faut savoir que les controlleurs contiennent les accès en bdd de la page correspondant à son nom
4. `modeles` :dossier contenant les modèles de l’application, il faut savoir que les modèles ont l’extension .model et contiennent les variable propres à la page, comme le title, la description ou plus récemment le fil d’ariane
* `modeles` :dossier contenant les modèles de l’application, il faut savoir que les modèles ont l’extension .model et contiennent les variable propres à la page, comme le title, la description ou plus récemment le fil d’ariane
5. `vues` : dossier contenant les fichiers blade ou twig utilisé dans les pages, les actions et les conduits dont voici le détail :
* `vues` : dossier contenant les fichiers blade ou twig utilisé dans les pages, les actions et les conduits dont voici le détail :
1. `cache` : dossier contenant les fichiers de cache généré par le moteur de rendu
_ `cache` : dossier contenant les fichiers de cache généré par le moteur de rendu
2. `layout` : dossier contenant les différents layouts des pages
_ `layout` : dossier contenant les différents layouts des pages
3. `system` : dossier contenant le/les layout(s) système(s)
_ `system` : dossier contenant le/les layout(s) système(s)
4. `view` : dossier contenant toutes les vues de l’application, une convention de nommage peut être établie suivant le domaine de l’application, par exemple, toutes les vues des actions doivent commencer par action et toutes les vues des conduits doivent commencer par le nom du conduit duquel ils sont appelés
_ `view` : dossier contenant toutes les vues de l’application, une convention de nommage peut être établie suivant le domaine de l’application, par exemple, toutes les vues des actions doivent commencer par action et toutes les vues des conduits doivent commencer par le nom du conduit duquel ils sont appelés
4. `logs` : dossier contenant les logs générer par l’application, une classe dédiée aux logs est contenue dans le framework
4. `logs` : dossier contenant les fichiers de logs générés par vos controlleurs
5. `modules` : dossier contenant les modules de l’application, il faut savoir que le framework peut contenir des applications modulaires, genre des applications symfony, wordpress, etc… toutes applications externe php peut avec un peu de doigté peut être intégré à une application, typiquement on peut intégrer un module de dépôt git genre gitlist à l’application que l’on est en train de développer.
5. `modules` : dossier contenant les modules de l’application
6. `objets` : dossier contenant les objets de session du framework, ce dossier peut être modifié par l’utilisateur, il contient des classes qui sont utilisé dans le cadre de la gestion de session, par exemple l’authentification CAS
6. `objets` : **DOSSIER DE PULL-SEMI-DEVELOPPEMENT** dossier contenant les objets de session du framework pouvant être modifié par un utilisateur et qui peut être soumis à un pull request, mais pas toujours
7. `traitements` : dossier contenant les traitements de formulaire selon le respect du pattern PRG (Post Redirect Get)
7. `traitements` : **DOSSIER DE DEVELOPPEMENT PRG** dossier contenant les traitements de formulaire selon le respect du pattern PRG (Post Redirect Get)


- `console` : dossier contenant les commandes console propres au framework et à l’application*

1. `command` : dossier contenant les commandes console du framework et de l’application
* `App` : **DOSSIER DE DEVELOPPEMENT COMMAND** dossier contenant vos commandes
* `Sand` : **DOSSIER DE PULL-SEMI-DEVELOPPEMENT** dossier contenant les commandes du framework pouvant être modifié par un utilisateur et qui peut être soumis à un pull request, mais pas toujours
2. `skel` : dossier contenant les squelettes utilisés lors des appels console
2. `skel` :

- `data` : dossier contenant des données qui sont chargé par l’applications ou le framework

1. `docs` : dossier contenant la documentation de l’application
2. `domain` : dossier contenant les classes propres à la manipulation du domaine visé par l’application, ces classes peuvent être testées unitairement par PHPUnit
- `domain` : **DOSSIER DE DEVELOPPEMENT DDD** dossier contenant les classes propres à la manipulation du domaine visé par l’application, ces classes peuvent être testées unitairement par PHPUnit

3. `output` : dossier contenant les sorties des commandes console de l’applications, ce peut être des logs ou des fichiers de traitement
- `public` : **DOSSIER DE DEVELOPPEMENT GRAPHIK** dossier contenant la racine publique de l’application, le serveur apache doit pointer sur ce dossier pour que le reste ne soit pas accessible, il contient tous les assets (css, js) de l’application ainsi que le fichier index.php et .htaccess redirigant toutes les requêtes vers l’index.

- `public` : dossier contenant la racine publique de l’application, le serveur apache doit pointer sur ce dossier pour que le reste ne soit pas accessible, il contient tous les assets (css, js) de l’application ainsi que le fichier index.php et .htaccess redirigant toutes les requêtes vers l’index.

- `tests` : dossier contenant les fichiers de tests unitaire ou fonctionnels
- `tests` : **DOSSIER DE DEVELOPPEMENT TDD**

1. `behat` : dossier contenant les fichiers de tests fonctionnels
2. `phpunit` : dossier contenant les fichiers de tests unitaire

et :

- `vendor` : dossier créé par composer lors de la récupération des paquets nécessaire à l’application, contient aussi l’autoloader de l’application généré à la volée par composer
- `vendor`

- `node_modules`


- `node_modules` : dossier créé par npm lors de la récupération des paquets pouvant être nécessaire à l’application

## Comment ajouter une nouvelle page nommé hello_world ?

Expand Down
10 changes: 0 additions & 10 deletions data/docs/01.e.ii Comment ajouter une page proprement.md

This file was deleted.

19 changes: 19 additions & 0 deletions data/docs/01.e.ii Comment jouer avec les pages.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
#Comment jouer avec les pages avec SANDconsole ?

Lancez donc la SANDcommande suivante depuis la racine

`php console/bin.php page:add`

puis répondez calmement aux questions en donnant un nom tel que `hello_world`, et... c'est trois(3) nouveaux fichiers qui sont apparus dans `application/include` : au sein de `controlleurs`, `modeles` et `vues/view`

Ouvrez les et regardez, votre nouvelle page est accessible sur `http://my-new-sand-project.dev.local/hello_world`

Maintenant, à vous de modifier ces trois fichiers !

Bon, il faudrait la renommer, pas de panique SOS SANDconsole est là :) `php console/bin.php page:rename`

Vous voulez en faire une copie ? `php console/bin.php page:duplicate`

Finalement votre nouvelle ne vous plait plus, baaah ; supprimez là avec `php console/bin.php page:remove`


Loading

0 comments on commit 50bf9e1

Please sign in to comment.