-
-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Tout d'abord avant de tenter quoi que soit au niveau de l'installation du framework, veuillez prendre en considération ces quatre(4) questions :
Avez-vous installé le logiciel de virtualisation docker ?
Avez-vous installé le logiciel de gestionnaire de version git ?
Avez-vous installé et utilisez-vous le language php au minimum dans sa version 7.4 ?
Avez-vous installé le logiciel de dépendances composer ?
Si la réponse est oui à ces quatre(4) questions alors vous êtes prêt à utiliser ce framework, même si vous ne connaissez pas les frameworks php tel que laravel ou symfony. Et dans ce cas ce sera peut-être pour vous une bonne introduction aux manipulations avancées qu'il est possible de faire avec ces imposants mastodontes.
Pour installer ces quatre(4) composantes nécessaires sous Windows je ne peut que vous donner les liens et vous inviter à consulter les quelques documentations disponible onTheWeb à ce sujet.
Le plus simple pour installer docker est de se rendre sur https://hub.docker.com/ et de vous créer un compte, il sera obligatoire afin d'obtenir les images docker nécessaires lors de l'installation. Puis installer docker desktop disponible sous https://hub.docker.com/editions/community/docker-ce-desktop-windows
Le plus simple pour installer git est de vous rendre sur https://gitforwindows.org/ et de suivre la procédure d'installation.
Afin de vous aider à installer php facilement vous pouvez utiliser le gestionnaire fournit avec windows : Microsoft Web Platform installer
disponible à l'adresse https://docs.microsoft.com/en-us/iis/install/web-platform-installer/web-platform-installer-direct-downloads , une autre manière serait de récupérer l'archive windows de la version de php qui vous intéresse et de la placer à la racine C:
et d'ajouter le PATH
de l'executable php.exe
dans les variables d'environnement, ainsi dans la console git-bash
fourni avec git-for-windows vous pourrez commencez à utiliser php en ligne de commande... et Sandyes (le petit nom du sablier de SAND) aime la ligne de commande :)
Enfin pour installer composer vous pouvez vous rendre sur https://getcomposer.org/
Voilà vous avez tout pour commencer à jouer avec le framework :) Enfin presque...
Vous êtes un linuxien ? cela ne devrait pas vous poser de problèmes alors ? Si ? Dites les man-pages vous connaissez ? Si la réponse est non il vous faudra apprendre la base de tout ce qui existe du monde libre. Dans le cas contraire normalement le gestionnaire de dépendance de votre distribution doit vous permettre de faire le reste, il vous faudra alors lui demander à installer les paquets suivants :
php8
-full (avec nécessairement les modules ldap, gd, mysql, pdo, zip, xml, et quelques autres que j'aurais oublié lors de cette écriture nocturne)
par exemple : apt install php8.0-common php8.0-mysql php8.0-ldap php8.0-xml php8.0-xmlrpc php8.0-curl php8.0-gd php8.0-imagick php8.0-cli php8.0-dev php8.0-imap php8.0-mbstring php8.0-opcache php8.0-soap php8.0-zip php8.0-intl -y
docker
docker-compose
par exemple : apt install docker docker-compose -y
git
par exemple : apt install git -y
composer
par exemple : apt install composer -y
et gros un apt-get install
ou un apt install
ou un yum install
ou un pacman -S
ou encore yahourt -S
vous suffira dans bien des cas. A moins que vous soyez sur une distribution spéciale que j'affectionne mais que je n'ai pas réussi à virtualiser par manque de temps GUIX, à ce moment-là je vous laisse faire : cela ne devrai pas vous poser trop de problèmes...
Voyons maintenant comment installer l'environnement ainsi que le framework SAND avant de développer et de comprendre ses mécanismes
Afin de pouvoir démarrer un projet SAND, vous devez mettre en place votre environnement de développement. Un bon IDE est déja la base nécessaire afin de programmer. Certains choisissent Eclipse, je vous conseillerais la version PDT de Eclipse qui est spécialisée PHP. D'autres vont vouloir programmer avec VisualStudioCode, qui est open source et permet grâce à ses nombreux modules de gérer à la fois docker
et git
tout en se concentrant sur ses lignes de programmation. Pour les plus passionnés : vous pouvez tester puis acheter une version annuelle de PHPStorm ou ZendStudio de puissants IDE provenant des plus grosses communautés de programmeurs PHP passionnées : ce sont les meilleurs sur le marché actuel. Aussi vous pouvez utiliser des éditeurs plus simples tels que Sublime Text ou Scite ou encore Notepad++. C'est à vous de voir ce qui vous convient le mieux actuellement.
Entrons maintenant dans le vif du sujet :
Commençons par cloner le dépot docker nécessaire au framework par la commande git clone
:
git clone https://github.com/sprintcube/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://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
Voilà vous avez cloner les dépôts de base, mais il faut maintenant les configurer afin d'obtenir votre première page sur un navigateur. Pour cela nous allons mettre en place la configuration de docker-compose, puis faire le lien avec le dépôt du framework proprement dit.
tout d'abord, veuillez renommer le fichier sample.env
en .env
qui est nécessaire afin de définir les variables environnement de docker-compose
:
cd ../ mv sample.env .env
De base, ce fichier comporte les bonnes variables d'environnement pour lancer l'image nécessaire sur windows et linux. En ouvrant le fichier .env
, vous avez le loisir de modifier les ports de phpmyadmin et du serveur mysql. Plus d'informations sont disponible dans le fichier README.md
Je ne peut que vous conseiller d'ouvrir les fichiers .env
et docker-compose.yml
après avoir lu le README, et si vous êtes familier avec les lignes de commandes bash
ce devrait être possible pour vous de comprendre la liaison intime entre ces deux fichiers. En effet, docker-compose.yml
dépend des variables contenues dans le fichier .env
Parallèlement à cela vous devez configurer le fichier config/vhosts/default.conf
afin de pointer le dossier my-new-project-directory
à la bonne adresse locale:
ajouter/décommenter simplement les lignes suivantes dans ce fichier :
nano config/vhosts/default.conf
<VirtualHost *:80>
ServerName my-new-sand-project.dev.local
ServerAdmin webmaster@localhost
DocumentRoot "/var/www/my-new-sand-project-directory/public"
<Directory "/var/www/my-new-sand-project-directory/public/">
AllowOverride all
</Directory>
</VirtualHost>
vous pouvez aussi utiliser la commande suivante :
ServerName my-new-sand-project.dev.local
ServerAdmin webmaster@localhost
DocumentRoot "/var/www/my-new-sand-project-directory/public"
<Directory "/var/www/my-new-sand-project-directory/public/">
AllowOverride all
</Directory>
</VirtualHost>' >> config/vhosts/default.conf
Une fois ceci fait, ouvrez le fichier docker-compose.yml
nano docker-compose.yml
et ajouter/décommenter la ligne à la suite de la config des extra-hosts :
#- “my-new-sand-project.dev.local:127.0.0.1”
Voilà vous êtes presque prêt à utiliser un [docker-lamp](https://github.com/sprintcube/docker-compose-lamp)
. J'espère néanmoins que vous avez un compte sur docker-hub connecté à votre docker-desktop si sous êtes windows... Avec Linux tout marche tout de bout en bout facilement.
Une petite astuce sous windows cependant : afin d'utiliser les commandes que je vous ai donné sur cette page, vous devez avoir installé et lancer git bash
.
Une dernière chose avant de configurer les dépendances de SAND : afin que votre navigateur puisse accéder au vhost docker que nous avons configuré, il vous faut ajouter les lignes suivantes au fichier hosts
de votre OS.
127.0.0.1 html.dev.local
127.0.0.1 my-new-sand-project.dev.local
Sous windows celui-ci se trouve dans c:\Windows\System32\drivers\etc
et sous Linux sous /etc
Allez ! Vous y êtes presque :
Afin de charger toutes les dépendances vous devez avoir composer
d'installé. Alors déplacez-vous dans le dossier www/my-new-project-directory
cd www/my-new-sand-project-directory
et lancer la commande composer update
Bon et maintenant ?
Il vous faut mettre en place charger les dépendances composer dans trois autres dossiers, un pour faire du Test Driven Development (TDD), un autre pour les tests fonctionnel BeHat, et enfin un dernier pour réaliser des builds et des métriques sur votre projet
Suivez et exécutez ces commandes :
cd tests
cd phpunit
composer update
cd ../behat
composer update
cd ../../build
composer update
cd ../
Voilà tout est prêt, enfin presque : reste à lier les variables de configuration du framework, celles-ci sont toutes dans le dossier application/config/
: Donc à partir de là :
cd application/config
mv app-parameters.php.skel app-parameters.php
mv bdd-parameters.php.skel bdd-parameters.php
mv console-parameters.php.skel console-parameters.php
enfin pour finir mettons en place la configuration de l'URL locale et de la base de données Mysql propre au docker-lamp
:
nano app-parameters.php
modifier la constante PATH_URL
avec la valeur http://my-new-sand-project.dev.local
sauvegardez, puis
nano bdd-parameters.php
modifiez les constantes par défaut de cette manière
define('DSN_BDD_DEFAULT', "mysql:host=database;dbname=docker");
define('USER_BDD_DEFAULT', "docker");
define('PASS_BDD_DEFAULT', "docker");
sauvegardez, puis...
Voilà, vous êtes prêt à lancer le daemon docker !
Bon normalement à partir de là, vous devriez être capable de mettre en place la base du framework à l'adresse : http://my-new-sand-project.dev.local ou tout autre adresse que vous auriez précédemment préférée à celle-ci.
Juste ouvrez votre terminal favori puis lancer la commande suivante depuis la racine contenant le fichier docker-compose.yml
:
docker-compose up -d -----build
si tout se passe bien, vous allez assister à un build parfait et à l'affichage des lignes suivantes ; celles-ci valident que tout s'est bien déroulé :
$ docker-compose up -d
[...]
Network docker-lamp_default Creating
Network docker-lamp_default Created
Container docker-lamp-database Creating
Container docker-lamp-database Created
Container docker-lamp-php80 Creating
Container docker-lamp-phpmyadmin Creating
Container docker-lamp-phpmyadmin Created
Container docker-lamp-php80 Created
Container docker-lamp-database Starting
Container docker-lamp-database Started
Container docker-lamp-php80 Starting
Container docker-lamp-phpmyadmin Starting
Container docker-lamp-phpmyadmin Started
Container docker-lamp-php80 Started
Voilà ! l'installation est terminée. Rendez-vous sur http://my-new-sand-project.dev.local pour admirer votre travail :)
Dans le cas ou le build ne fonctionne pas, tentez de regarder dans le dossier bin/php80
le fichier DockerFile
et commentez les lignes qui posent problème par un dièse(#
) . Un peu d'huile de mimines et le tour est joué.
Voici maintenant quelques commandes-astuces avec Docker
:
docker ps
permet de voir les conteneurs lancés actuellement
docker logs
permet de comprendre pourquoi un conteneur n'est pas stable en raison d'une mauvaise configuration
docker exec
permet d'entrer dans le conteneur et de relancer certains services, à cependant utiliser avec précaution car dès que vous réalisez un rebuild du conteneur, les modifications réalisées à l'intérieur sont effacées.
pour Docker-compose
maintenant :
vous pouvez utiliser docker-compose down
et docker-compose kill
.
A vous de jouer :) !
#UPDATES POSSIBLE POUR LA VERSION 4.0.0
Le squelette de départ d'une application ExtJS : sisi c'est possible avec node.js mais l'intégration d'un tel outil n'as absolument pas été commencé lors de mon CDD à l'ufc ni même pendant ma période de convalescence du 15/07/2021 au 18/12/2021 car je me refuse encore actuellement de programmer, elle est un petit peu réfléchie et semble absolument possible avec de nombreuses application reliées mais je ne possède pas toutes les compréhensions techniques nécessaires pour le faire actuellement.
Un moteur de wiki basé sur wikini : si les auteurs du wikini0.5 acceptent...
Un moteur d'écriture en Markdown et Yaml dans de simples fichiers contenus dans /data : une portion de cela a été codé et est disponible sur le github du créateur du framework.
// Une dalle pdo plus performante (voir accueillant un système de choix de l'ORM ou un ORM spécifique) //
// Une réécriture complète du système de vue afin d'accueillir les nouvelles versions de Twig et Blade //
// Un systeme REST plus capable de faire ce qui doit être fait, imitant un peu Slim //
// Des améliorations au niveau de l'intégration de Bootstrap5.0 : par exemple le système de notification push //