Skip to content

Commit 50bf9e1

Browse files
committed
Adding Documentation
1 parent 24f6cbd commit 50bf9e1

12 files changed

+149
-77
lines changed

data/docs/00. Comment installer l'environnement du framework.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -54,15 +54,15 @@ Afin de pouvoir démarrer un projet SAND, vous devez mettre en place votre envir
5454

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

57-
`git clone https://[email protected]/authscm/eroy5/git/mvc-sand-frame/docker-lamp.git`
57+
`git clone https://github.com/Acksop/docker-compose-lamp.git`
5858

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

6161
`cd docker-lamp/www`
6262

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

65-
`git clone https://[email protected]/authscm/eroy5/git/mvc-sand-frame/mvc-sand-frame.git my-new-sand-projet-directory`
65+
`git clone https://github.com/Acksop/SAND-framework.git my-new-sand-projet-directory`
6666

6767
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`
6868

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

100-
```` echo '<VirtualHost *:80>
100+
````
101+
echo '<VirtualHost *:80>
101102
ServerName my-new-sand-project.dev.local
102103
ServerAdmin webmaster@localhost
103104
DocumentRoot "/var/www/my-new-sand-project-directory/public"
Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,22 @@
11
#Les étapes de configurations de SAND
22

3-
il vous faut modifier quelques valeurs dans les fichiers de configuration suivant
4-
- `application/config/app-parameters.php.skel`
5-
- `application/config/bdd-parameters.php.skel`
3+
Il vous faudra modifier quelques valeurs dans les fichiers de configuration suivants
4+
5+
+ `application/config/app-parameters.php.skel`
6+
+ `application/config/bdd-parameters.php.skel`
7+
8+
> _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._
9+
10+
> Une fois que vous avez fait cela, vous pouvez enlever l'extension `.skel` afin que l'autoload de composer puisse les prendre en compte.
11+
12+
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
13+
`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.
614

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

9-
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
10-
`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.
16+
Il en va de même pour tous les fichiers de configuration présent dans le dossier `config` portant l'extension `.skel`
17+
En effet les autres fichiers contenus dans `config` servent pour la branche dev, mais peuvent aussi servir pour votre application.
1118

12-
Les autres fichiers contenus dans config servent pour la branche dev, mais peuvent aussi servir pour votre application.
19+
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`.
1320

14-
Dans le cas où vous choissisez d'utiliser les conduits lors du développement de votre application,
15-
vous devrez modifier le fichier `application/config/files/routing.yml`.
21+
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....
1622

data/docs/01.c. Comment bien utiliser les urls.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,4 @@ où {page} est le nom :
1414

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

17-
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.
17+
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.
Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,21 @@
11
#Comment bien utiliser les commandes dans le framework SAND
22

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

5-
Par exemple pour voir les méthodes associés à la commande page vous pourvez lancer la commande suivante depuis le dossier console:
5+
_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.
6+
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_
7+
8+
9+
Par exemple pour voir les méthodes associés à la commande `page` vous pouvez tout à fait taper la commande suivante depuis le dossier `console` :
610

711
`php bin.php page:help`
812

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

11-
Typiquement sur un projet on peut soit ajouter les fichiers manuellement quand on a l'habitude, soit aussi profiter des commandes:
12-
`action`,`conduit`,`module` et `page`
15+
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:
16+
`action`, `conduit`, `module` et `page`
1317

14-
Si vous avez a videz le cache des vues et des logs vous pouvez utiliser la commande
18+
Et, si vous devez vider le cache des vues et/ou des logs vous pouvez totalement vous jetez sur l'utilisation des commandes
1519
`php bin.php cache:clear`
16-
quand a
17-
`php bin.php cache:stabilize`
18-
vous permet de vider le cache des vues blade et/ou twig
20+
et
21+
`php bin.php cache:stabilize`

data/docs/01.e.i Comprendre SAND pour ajouter une nouvelle page.md

Lines changed: 36 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,72 +1,80 @@
11

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

4-
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`
4+
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`
55

66
## Comment est architecturé le framework SAND ?
77

88
La racine de SAND contient les dossiers suivant :
99

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

12-
1. `class` : dossier contenant les fichiers propres au framework. Ne doit pas être modifié.
12+
1. `class` :
1313
14-
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
14+
2. `config` : dossier contenant les fichiers de configuration de l'application
1515
16-
3. `include` : dossier de développement contient :
16+
3. `include` : **DOSSIERS CENTRAUX DE DEVELOPPEMENTS**
1717
18-
1. `actions` : dossier contenant les actions réutilisables dans les vues de l’application
18+
* `actions` : dossier contenant les actions réutilisables dans les vues de l’application
1919
20-
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
20+
* `conduits` : dossier contenant le contrôleur qui est conduit par le routage symfony, ici utilisé exclusivement pour générer des réponses AJAX
2121
22-
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
22+
* `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
2323
24-
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
24+
* `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
2525
26-
5. `vues` : dossier contenant les fichiers blade ou twig utilisé dans les pages, les actions et les conduits dont voici le détail :
26+
* `vues` : dossier contenant les fichiers blade ou twig utilisé dans les pages, les actions et les conduits dont voici le détail :
2727
28-
1. `cache` : dossier contenant les fichiers de cache généré par le moteur de rendu
28+
_ `cache` : dossier contenant les fichiers de cache généré par le moteur de rendu
2929
30-
2. `layout` : dossier contenant les différents layouts des pages
30+
_ `layout` : dossier contenant les différents layouts des pages
3131
32-
3. `system` : dossier contenant le/les layout(s) système(s)
32+
_ `system` : dossier contenant le/les layout(s) système(s)
3333
34-
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
34+
_ `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
3535
36-
4. `logs` : dossier contenant les logs générer par l’application, une classe dédiée aux logs est contenue dans le framework
36+
4. `logs` : dossier contenant les fichiers de logs générés par vos controlleurs
3737
38-
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.
38+
5. `modules` : dossier contenant les modules de l’application
3939
40-
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
40+
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
4141
42-
7. `traitements` : dossier contenant les traitements de formulaire selon le respect du pattern PRG (Post Redirect Get)
42+
7. `traitements` : **DOSSIER DE DEVELOPPEMENT PRG** dossier contenant les traitements de formulaire selon le respect du pattern PRG (Post Redirect Get)
4343

4444

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

4747
1. `command` : dossier contenant les commandes console du framework et de l’application
48+
49+
* `App` : **DOSSIER DE DEVELOPPEMENT COMMAND** dossier contenant vos commandes
50+
51+
* `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
4852
49-
2. `skel` : dossier contenant les squelettes utilisés lors des appels console
50-
53+
2. `skel` :
54+
5155

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

5458
1. `docs` : dossier contenant la documentation de l’application
5559
56-
2. `domain` : dossier contenant les classes propres à la manipulation du domaine visé par l’application, ces classes peuvent être testées unitairement par PHPUnit
60+
- `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
5761

58-
3. `output` : dossier contenant les sorties des commandes console de l’applications, ce peut être des logs ou des fichiers de traitement
59-
62+
63+
- `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.
6064

61-
- `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.
62-
63-
- `tests` : dossier contenant les fichiers de tests unitaire ou fonctionnels
65+
- `tests` : **DOSSIER DE DEVELOPPEMENT TDD**
66+
67+
1. `behat` : dossier contenant les fichiers de tests fonctionnels
68+
69+
2. `phpunit` : dossier contenant les fichiers de tests unitaire
6470

6571
et :
6672

67-
- `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
73+
- `vendor`
74+
75+
- `node_modules`
76+
6877

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

7179
## Comment ajouter une nouvelle page nommé hello_world ?
7280

data/docs/01.e.ii Comment ajouter une page proprement.md

Lines changed: 0 additions & 10 deletions
This file was deleted.
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
#Comment jouer avec les pages avec SANDconsole ?
2+
3+
Lancez donc la SANDcommande suivante depuis la racine
4+
5+
`php console/bin.php page:add`
6+
7+
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`
8+
9+
Ouvrez les et regardez, votre nouvelle page est accessible sur `http://my-new-sand-project.dev.local/hello_world`
10+
11+
Maintenant, à vous de modifier ces trois fichiers !
12+
13+
Bon, il faudrait la renommer, pas de panique SOS SANDconsole est là :) `php console/bin.php page:rename`
14+
15+
Vous voulez en faire une copie ? `php console/bin.php page:duplicate`
16+
17+
Finalement votre nouvelle ne vous plait plus, baaah ; supprimez là avec `php console/bin.php page:remove`
18+
19+

0 commit comments

Comments
 (0)