Référencement des outils de développement

Voici quelques outils de développement que j'utilise lors de la création d'applications PHP fonctionnant avec des librairies JS comme JQuery ou Vue.js. Je mettrai cette liste à jour régulièrement car comme on le sait, rien n'est figé dans le "dev" :)

Node.js

Node.js est le successeur de la version initiale de Javascript que nous connaissons (certains d'entre nous) depuis la fin des années 90. A l'origine, ce langage permettait de créer de petites animations ou des contrôles dans le navigateur côté client. Il a ensuite été complété par l'apparition de bibliothèques puissantes comme ExtJS ou Jquery.

Depuis quelques temps déjà, on parle du successeur de Javascript, il s'agit bien évidemment de Node.js, très apprécié par les développeurs frontend. A la différence de Javascript, en plus d'être puissant, Node.js se distingue fondamentalement par son exécution sur le serveur. Il permet de générer des pages web comme le font des langages comme PHP ou Java EE.

Quelques spécificités à connaitre :

  • basé sur les événements comme Javascript
  • plus bas niveau que Javascript, donc se rapproche davantage du langage C que de PHP
  • modèle de programmation déroutant donc pas forcément évident
  • ce n'est pas un framework
  • n'est pas orienté objet
  • basé sur le moteur v8 de Chrome qui offre la compilation JIT (Just in Time) pour interpréter le code plus rapidement que de la lecture séquentielle
  • modèle non bloquant par l'utilisation de fonctions de callback- il peut donc effectuer d'autres tâches en parallèle

Une fonction de callback est enregistrée dans une variable et celle-ci ne s'exécutera que lorsqu'elle sera effectivement appelée. On place ensuite cette variable en paramètre d'une fonction request.
Le callback n'est déclenché que lorsque l'action est terminée.
Plusieurs opérations peuvent être traitées simultanément, ce que l'on déclare généralement comme non bloquant.

Site internet de Node.js

Node Version Manager (NVM)

NVM permet d'installer Node.js et de passer facilement d'une version à une autre.

Au cas où, désinstallez la version précédente de Node.js

Désinstaller la version précédente de Node.js

$ sudo apt-get remove nodejs
$ curl -o- raw.githubusercontent.com/creationix/nvm/v0.33.0/install.sh | bash

Fermer le terminal et vérifier que les lignes suivantes soient dans le fichier .bashrc

export NVM_DIR="/home/christian/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm

Installer ensuite node.

$ nvm install node

Downloading and installing node v7.4.0...
Downloading nodejs.org/dist/v7.4.0/node-v7.4.0-linux-x64.tar.xz...
######################################################################## 100,0%
Computing checksum with sha256sum
Checksums matched!
Now using node v7.4.0 (npm v4.0.5)
Creating default alias: default -> node (-> v7.4.0)

$ node -v

v7.4.0

Pour avoir des informations supplémentaires sur la version de Node.js installée :

$ nvm ls

->       v7.4.0
         system
default -> node (-> v7.4.0)
node -> stable (-> v7.4.0) (default)
stable -> 7.4 (-> v7.4.0) (default)
iojs -> N/A (default)
lts/* -> lts/boron (-> N/A)
lts/argon -> v4.7.2 (-> N/A)
lts/boron -> v6.9.4 (-> N/A)

Pour installer une version spécifique de Node.js :

$ nvm install 6.7.0

Pour rendre une version en version par défaut :

$ nvm alias default 6.7.0

On peut ensuite l'appeler :

$ nvm use default

Github NVM

Bower

Bower est un gestionnaire de paquets et il va vous permettre d'inclure les dépendances de votre projet telles que les css, les librairies JS, les polices et même les images. Ce qui est pratique, c'est que vous pouvez gérer ces dependances au sein d'un même fichier, bower.json.

Les dépendances sont signalées sous forme de tableau. Par exemple :

"jquery": "^2.2.3",
"bootstrap": "^3.3.7",
"font-awesome": "fontawesome#^4.6.1"

Vous pouvez ajuster la configuration de Bower grâce au fichier .bowerrc situé au même niveau. Pour une application créée avec Laravel, on demandera à Bower d'installer les dépendances pour nos développements dans "resources/assets/vendor".

Pour lancer la mise à jour :

$ bower install

Site internet : Bower

Browserify

Groupe plusieurs fichiers javascript en un seul.

Site internet : http://browserify.org/

$ npm install -g browserify

Développement de Web Services RESTful

Le développement d'applications modernes suppose un échange entre le client, l'application sur le serveur et un Web Service que l'application va interroger pour récupérer des données et les renvoyer au client. Le client peut être de différents types, la réponse envoyée restera toujours la même, au format JSON par exemple car c'est un format universellement connu et qui peut être facilement interprété pour générer un affichage adapté.

Le développement de ce Web Service peut s'effectuer sous Laravel ou bien même sur un framework beaucoup plus léger comme Slim Framework.
Pour information, Slim Framework peut être associé à l'ORM Eloquent pour effectuer des requetes vers votre base de données.

Pour ajouter Eloquent à Slim, il suffit simplement de l'intégrer avec "composer".

Composer

Composer est un gestionnaire de dépendances pour le langage PHP. Vous déclarer dans un fichier les librairies dont vous avez besoin pour votre projet et Composer se chargera de les installer et de les mettre à jour.

Pour l'installer sur une distribution Linux dérivée d'Ubuntu 16.04 comme Linux Mint, voir la procédure ci-dessous. Passez l'étape 1 si vous disposez déjà de PHP7 en ligne de commande (CLI).

Etape 1

$ sudo add-apt-repository ppa:ondrej/php
$ sudo apt-get update

Effectuez une recherche dans le cache d'apt pour installer la dernière version de PHP en ligne de commande.

$ apt-cache search php7

Ex : php7.1-cli - command-line interpreter for the PHP scripting language

$ sudo apt-get install php7.1-cli

Etape 2

Voici les commandes indiquée par la documentation sur composer.org. Elles fonctionnent parfaitement sur mon environnement. J'ai volontairement installé Composer dans /usr/local/bin pour qu'il soit accessible partout.

$ cd /tmp
$ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
$ php -r "if (hash_file('SHA384', 'composer-setup.php') === '55d6ead61b29c7bdee5cccfb50076874187bd9f21f65d8991d46ec5cc90518f447387fb9f76ebae1fbbacf329e583e30') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
$ sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer
$ php -r "unlink('composer-setup.php');"

Pour tester sa version de Composer :

$ cd ~
$ composer --version

D'autres commandes à consulter dans la documentation en ligne de Composer.