Créer une application

Cet article est un tutoriel pour installer it.rocks et créer une application type “Hello World”.

Pré-requis

Ce tutoriel présente l’installation sous l’environnement suivant :

  • Système d’exploitation Mint 18.2 (basé sur Ubuntu 16.04 Xenial, basé sur Debian 8 Jessie)
  • PHP version 5.6 ou plus récente (jusqu’à 7.1, à ce jour),
  • Apache 2.2 / 2.4,
  • Mysql server 5.5 ou plus récent, moteur InnoDB.

Bien entendu it.rocks peut être utilisé sous d’autres environnements. A toi dans ce cas d’adapter ton installation en tenant compte des contraintes indiquées et en les transposant à ton environnement :

  • il n’y a pas que Mint sur terre (même si c’est le meilleur),
  • de plus anciennes version d’Apache ou MySQL peuvent très bien fonctionner,
  • d’autres serveurs Web que apache peuvent également fonctionner,
  • MySQL est pour l’instant le seul moteur de base de données supporté,
  • Je n’ai pas testé sous PHP 7.2 mais il n’y a pas de raison particulière pour que ça ne marche pas.

Un certain nombre de programmes supplémentaires sont nécessaires. Pour n’en citer que quelques-uns :

  • git pour télécharger it.rocks et gérer les versions de ton projet,
  • wget pour télécharger certaines dépendances,
  • gnumeric si tu souhaites utiliser des fonctionnalités d’import-export de fichiers de tableurs.

Installation sous Debian / Ubuntu / Mint

Installation des paquets nécessaires

Depuis un terminal :

sudo apt install apache2 git gnumeric libapache2-mod-php5 mysql-server php5-mysqlnd php5-yaml wget

Configuration d’un serveur local it.rocks

Je propose d’utiliser un nom de serveur it.rocks pour tous tes projets it.rocks, et plus largement pour tes projets web installés dans ton dossier d’utilisateur. Ainsi une seule configuration te permettra de travailler sur plusieurs en même temps.

Pour commencer il faut donc déclarer un nom de serveur it.rocks qui pointe sur ton propre ordinateur. Pour cela, modifier en tant qu’administrateur le fichier /etc/hosts, comme ça par exemple depuis un terminal :

sudo vi /etc/hosts
# - se déplacer avec le pavé fléché à droite de la ligne 127.0.0.1
# - taper sur la touche i pour passer en mode insertion
# - taper it.rocks suivi d'un espace
# - taper sur la touche echap pour sortir du mode insertion
# - taper sur :wq suivi de la touche entrée pour sauvegarder le fichier et quitter

Tu peux alors vérifier que tu as bien enregistré ton nom de serveur it.rocks associé à ton ordinateur local dans ton fichier /etc/hosts (je suppose qu’il y avait déjà à la place de me ton nom d’ordinateur) :

grep it.rocks /etc/hosts
127.0.0.1	it.rocks me

Configuration d’Apache

Pour que it.rocks soit bien compris comme étant ton dossier personnel, remplaces me par le nom de dossier personnel dans home dans les deux endroits où il apparaît dans le fichier ci-dessous. Il faut être administrateur pour pouvoir modifier ce fichier /etc/apache2/sites-available/it.rocks.conf :

<VirtualHost *:80>
	ServerAdmin me@email.com
	ServerName it.rocks
 
        AddType application/x-httpd-php .php
	AddType application/json .php
 
	DocumentRoot /home/me
	<Directory /home/me>
		Options Indexes FollowSymLinks MultiViews
		AllowOverride All
                Require all granted        
	</Directory>
 
	CustomLog /var/log/apache2/it.rocks.log combined
	ErrorLog  /var/log/apache2/it.rocks-error.log 
	LogLevel  warn
</VirtualHost>

Ensuite il faut activer ce site internet, par exemple comme ça depuis un terminal :

cd /etc/apache2/sites-available
ln -s ../sites-enabled/it.rocks.conf
service apache2 reload

Configuration de Mysql

Le framework a été conçu pour un moteur de bases de données Mysql version inférieure à 5.7. Il est compatible avec cette version et les suivantes du moteur de bases de données, mais tu devras rajouter la ligne suivante à ton fichier de configuration my.cnf / mysqld.cnf, dans la section [mysqld] :

Tu dois avoir les privilèges super-administrateur pour pouvoir modifier ce fichier.

Sous Linux Mint / Ubuntu / Debian, ce fichier se trouve quelque part dans etc/init.d/mysql.d ou ses sous dossiers, avec l’un ou l’autre des noms cités. Ça dépend des versions de MySQL.

sql_mode = ""

Relance ensuite ton serveur de bases de données, pour qu’il tienne compte de cette modification :

sudo service mysql restart

Travailler avec le bon outil, dans le bon dossier

Le seul bon outil pour faire du PHP, c’est PhpStorm : c’est IDE est juste le meilleur. Malgré les (trop) nombreux bugs qu’on peut déplorer il apporte quand même énormément, et le framework it.rocks tire parti de son formateur de code, de son inspecteur, comme pourra le faire ton projet si tu l’utilises. Malheureusement il est payant, alors bien sûr il est tout à fait possible de travailler avec d’autres IDE qui ont une version gratuite comme Eclipse-PDT ou NetBeans, en attendant qu’it.rocks ne propose son propre IDE intégré, un jour peut-être.

Si tu as la chance d’avoir une licence de PhpStorm, je conseille de créer le dossier suivant, depuis un terminal, pour y stocker tes projets it.rocks :

mkdir -p ~/PhpStorm/itrocks

Installation du framework it.rocks

Pour télécharger it.rocks et initialiser l’application helloworld, on partira du principe que ton dossier de travail est celui qui j’ai proposé pour PhpStorm : ~/PhpStorm/itrocks. Bien sûr la procédure marche depuis tout autre dossier, tant qu’il est sous ton dossier d’utilisateur.

cd ~/PhpStorm/itrocks
wget -O init.php https://gitlab.bappli.com/itrocks/framework/raw/master/init.php
php ./init.php owner helloworld
# si apache a été configuré comme décrit plus haut, et ton projet stocké comme proposé ci-dessus :
mv helloworld.php ~/
vi ~/helloworld.php
# - se positionner juste avant le /itrocks
# - taper sur la touche i pour rentrer en mode insertion
# - rajouter /PhpStorm/itrocks
# - taper sur la touche echap pour sortir du mode insertion
# - taper sur :wq puis entrée pour enregistrer et quitter

Note explicative :
Ce qui suit est là pour t’apporter plus de précisions sur ce que tu viens d’effectuer : les opérations décrites sont déjà réalisées, ces informations t’aideront à créer d’autres projets ou adapter l’organisation de tes fichiers à l’architecture de ton serveur.

  • it.rocks nécessite un script alias pour accéder à ton projet depuis Apache. Dans mon exemple j’accède à l’application par le biais de l’adresse localhost/helloworld. Pour cela il est impératif que le dossier dans lequel tu stockes ton projet ne s’appelle PAS helloworld : si c’était le cas, nous ne pourrions pas utiliser de script alias qui aurait le même nom que le dossier, Apache préférerait choisir le dossier, dans notre configuration. C’est pour cela que le script d’installation init.php créer ton projet sous le dossier owner-helloworld.
  • init.php est un script d’initialisation pour ton projet : il va créer un squelette d’application identifiée de manière unique par ton identifiant de propriétaire d’application owner et le nom de l’application helloworld. Ces identifiants déterminent le namespace qui sera utilisé pour les classes de ton application, ils sont donc à choisir avec soin, notamment ton owner doit être suffisamment unique pour en garantir l’unicité, et éviter toute collision entre ton espace de nommage et celui de modules existants que tu souhaiterais utiliser.
  • une base de données MySQL est créée, nommée owner_helloworld et accessible par l’utilisateur MySQL dédié créé à cet effet.

Accès à ton application

Tape l’adresse de l’application sous ton navigateur internet, par exemple dans notre cas http://it.rocks/helloworld, et affiche le résultat.

Et voilà !

Si jamais quelque chose a cloché en route : mot de passe erroné, oubli de configuration Apache… Suis la procédure Mon initialisation de projet a planté en route, vérifie toute ta configuration Apache et /etc/hosts (est-ce que http://it.rocks affiche le contenu de ton dossier utilisateur ?), et MySQL (arrives-tu à te connecter en root ?), puis recommence ce tutoriel.

Pour aller plus loin

Écris ta première classe métier en suivant ce lien :
Un carnet d’adresses vite fait bien fait

Montrer l'historique