Afin d’avoir un environnement de développement de référence pendant ce cours, nous allons voir ensemble les technologies qui seront utilisées et surtout à quelles versions.
Vous pourrez ainsi tester les différents codes qui seront fournis. Il est utile de rappeler que pour suivre ce cours vous devez avoir un minimum de connaissances en PHP et Symfony. Certains aspects de configuration comme l’installation de MySQL, Apache ou autres ne seront pas abordés. Si vous n’avez jamais procédé à l’installation de Symfony, il est préférable de se documenter sur le sujet avant de commencer ce cours.
Environnement technique
Plateforme
Nous avons ci-dessous un tableau récapitulatif des différentes technologies et la version utilisée. Le système d’exploitation utilisé importe peu et vous pouvez donc utiliser celui de votre choix pour suivre le reste du cours. Sur Windows, vous avez la suite WAMP et son équivalent LAMP sur Ubuntu.
Technologie | Version | Exemples |
---|---|---|
PHP | 7.0.x | 7.0.0, 7.0.3 |
MySQL | 5.7.x | 5.7.0, 5.7.9 |
Apache | 2.4.x | 2.4.0, 2.4.17 |
Symfony Installer
La méthode recommandée pour installer un projet Symfony est d’utiliser l’installateur. Cet utilitaire nous permettra d’installer Symfony avec la version que nous souhaitons.
Installation sur Linux
Il suffit de lancer dans la console:
1 2 | curl -LsS https://symfony.com/installer -o ~/bin/symfony chmod a+x ~/bin/symfony |
Cela téléchargera l’installateur et le placera dans le répertoire bin de l’utilisateur connecté.
Installation sous Windows:
Avant tout, il faut s’assurer que l’exécutable de PHP est bien disponible dans l’invite de commande. Des consignes d’installation sont disponibles sur le site officiel de PHP. Ensuite, Il suffit exécuter dans l’invite de commande :
1 | c:\> php -r "readfile('https://symfony.com/installer');" > symfony |
Ensuite, il est judicieux de créer un fichier symfony.bat
contenant @php "%~dp0symfony" %*
.
Il est possible de placer les fichiers symfony et symfony.bat dans un même dossier que vous rajouter dans le PATH avec les variables d’environnement de Windows afin d’accéder à la commande partout.
Une fois l’installation finie, lancer la commande symfony pour vérifier le bon fonctionnement du tout.
1 2 3 4 5 6 7 | symfony # réponse attendue Symfony Installer (1.5.0) ========================= This is the official installer to start new projects based on the Symfony full-stack framework. |
Composer
Nous utiliserons Composer pour rajouter de nouvelles dépendances à notre projet.
Il suffit d’utiliser l’installateur disponible sur le site officiel.
Pour tester le bon fonctionnement, il faut lancer la commande composer
:
1 2 3 4 5 6 7 8 | composer # réponse attendue # ______ # / ____/___ ____ ___ ____ ____ ________ _____ # / / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/ #/ /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ / #\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/ # /_/ |
Installation de Git
Si vous n’avez pas déjà Git sur votre machine, il va falloir l’installer car Composer peut être amené à l’utiliser pour télécharger des dépendances. L’installation est bien détaillée sur le site Git SCM.
Il faudra juste vous assurer que l’exécutable git
est disponible dans votre path.
Création d'un projet Symfony
Utilisons l’installateur de Symfony
Création du projet
Maintenant que nous avons un environnement de développement bien configuré, il ne reste plus qu’à créer un nouveau projet basé sur Symfony 3.
1 2 3 4 | symfony new rest_api 3.1 # Réponse attendue Preparing project... OK Symfony 3.1.1 was successfully installed. |
Après un long moment de chargement, nous avons un dossier nommé rest_api
contenant une installation toute neuve de Symfony 3.1.X (3.1.1 pour mon cas). Ça sera notre point de départ pour nos développements.
Testons la création du projet en lançant le serveur de développement intégré à PHP:
1 2 3 4 5 | cd rest_api php bin/console server:run [OK] Server running on http://127.0.0.1:8000 // Quit the server with CONTROL-C. |
Accédez à l’URL de vérification de Symfony et effectuez les correctifs si nécessaires http://localhost:8000/config.php.
Problème de certificats SSL
Sous Windows, il est possible de rencontrer des problèmes de certificats.
1 2 | [GuzzleHttp\Exception\RequestException] cURL error 60: SSL certificate problem: unable to get local issuer certificate |
Pour corriger ce problème, il faut s’assurer que l’extension OpenSSL est activée et définir le chemin d’accès vers le fichier contenant les certificats racines.
Une liste de certificats est disponible sur https://curl.haxx.se/ca/cacert.pem. Pensez à le télécharger.
Commençons par identifier le fichier de configuration de PHP. Avec WAMP, ce fichier se situe dans le dossier d’installation (par exemple, D:\wamp64\bin\php\php7.0.0\php.ini
). Il suffit maintenant de vérifier que la ligne concernant l’extension OpenSSL n’est pas commenté et de spécifier le chemin du fichier contenant les certificats racines.
1 2 3 4 | extension=php_openssl.dll [openssl] openssl.cafile=D:\wamp64\bin\php\php7.0.0\cacert.pem ;openssl.capath= |
Configuration de Apache
Durant le reste du cours, j’accéderai à l’API en utilisant un virtual host apache personnalisé. Notre API sera donc disponible sur l’URL http://rest-api.local
.
Pour ce faire, il faut configurer un virtual host apache et modifier le fichier host du système pour renseigner l’URL rest-api.local
.
Le virtual host fourni est compatible avec Windows. Penser à remplacer D:/wamp64/www/rest_api
par votre dossier d’installation et à effectuer les adaptations nécessaires pour un autre système d’exploitation.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <VirtualHost *:80> ServerName rest-api.local DocumentRoot "D:/wamp64/www/rest_api/web" <Directory "D:/wamp64/www/rest_api/web"> DirectoryIndex app_dev.php Require all granted AllowOverride None RewriteEngine On RewriteCond %{REQUEST_FILENAME} -f RewriteRule ^ - [L] RewriteRule ^ app_dev.php [L] </Directory> # Ajuster le chemin vers les fichiers de logs à votre convenance ErrorLog logs/rest-api-error.log CustomLog logs/rest-api-access.log combined </VirtualHost> |
Le mode rewrite d’apache est obligatoire pour que ce virtual host fonctionne. Notez aussi que les requêtes seront redirigées directement vers app_dev.php
avec cette configuration.
Ensuite sous Windows, éditez en tant qu’administrateur le fichier C:\Windows\System32\drivers\etc\hosts
et sous Linux, éditez avec les droits root le fichier /etc/hosts
, et rajouter une ligne:
```
127.0.0.1 rest-api.local
Maintenant en accédant à l’URL http://rest-api.local/, nous atteignons notre page web de bienvenue.
Maintenant que nous avons un environnement de développement fonctionnel, nous allons mettre en place toutes les briques nécessaires pour avoir une API REST complète. Les choses sérieuses peuvent maintenant commencer. L’outil Postman sera utilisé pour effectuer tous les tests de notre API. Il est donc grandement recommandé de l’installer avant de continuer.