Mes premiers pas avec Drupal 8.
Premier article d'une longue série je l'espère, je vais essayer de partager mes trouvailles et astuces concernant les recherches effectuées sur Drupal 8.
Après avoir fait une installation propre de Drupal 8, j'ai fais quelques tentatives d'implémentation de modules. C'est via ces tests que j'ai pu comprendre que Drush (acronyme de Drupal Shell) était nécessaire pour travailler correctement avec cette nouvelle version de Drupal.
Drush est un outil en ligne de commande qui permet d'exécuter un bon nombre de tâches liées à Drupal sans avoir à passer par l'interface administrative. Citons par exemple l'installation/désinstallation/mise à jour de modules, l'exécution du cron, de tâches liée à la base de données ou au système, et bien d'autres.
La version 6.x de Drush installée sur mon poste de travail n'étant pas compatible avec Drupal 8, j'ai du me décider à installer la version 7.0-dev. Mais pour installer cette version dev, la tache s'est avérée différente qu'une simple installation via macports. Je travaille sur un macbook pro, et macports est très pratique pour installer de nombreux outils de développement. Le problème de macports, c'est qu'il ne propose la plupart du temps que des versions relativement stables, encore faut-il qu'un port ait été mis à disposition.
Dans le cas de Drush, la version 7.x-dev s'installe via un outil nommé "composer". En suivant le fichier README.md de Drush, il est indiqué de quelle manière composer peut s'installer.
Première étape, récupérer le fichier bin :
# placement dans le répertoire utilisateur cd ~/ # récupération du fichier composer.phar curl -sS https://getcomposer.org/installer | php # déplacement dudit fichier dans un répertoire disponible dans le PATH, pour qu'il soit exécutable depuis n'importe quel répertoire dans le shell sudo mv composer.phar /usr/local/bin/composer
Une fois le composer installé, on exécute la commande suivante :
# export du chemin final du composer dans le path sed -i '1i export PATH="$HOME/.composer/vendor/bin:$PATH"' $HOME/.bashrc # rechargement du fichier .bashrc dans la mémoire source $HOME/.bashrc
Composer est installé, et les installation vont se faire dans le répertoire ~/.composer/vendor. Je peux maintenant installer Drush en quelques lignes de commande :
# installation de la version master composer global require drush/drush:dev-master # rendre le répertoire exécutable chmod u+x ~/.composer/vendor/drush/drush # créer un lien symbolique dans /usr/bin pour que Drush soit accessible depuis n'importe quel répertoire dans le shell ln -s ~/.composer/vendor/drush/drush/drush /usr/bin/drush # installer drush selon la version décidée auparavant cd ~/.composer/vendor/drush/drush composer install
Dans mon cas (qui est un peu particulier) j'avais installé MYSql5 il y a fort longtemps sur mon poste de travail, à l'époque ou il n'était pas encore en version stable. Macports avait créé des liens symboliques en suffisant chaque exécutable par un 5, exemple : mysql5, mysqldump5, etc… Cette particularité m'a posé un problème après l'installation de Drush, qui m'indiquait ne pas réussir à s'exécuter correctement :
titouille-mbp:sabugo titouille$ drush pm-enable my_module Command pm-enable needs a higher bootstrap level to run - you will need to invoke drush from a more functional Drupal environment to run this command. [error] The drush command 'pm-enable my_module' could not be executed. [error] Drush was not able to start (bootstrap) the Drupal database. [error] Hint: This may occur when Drush is trying to: * bootstrap a site that has not been installed or does not have a configured database. In this case you can select another site with a working database setup by specifying the URI to use with the --uri parameter on the command line. See `drush topic docs-aliases` for details. * connect the database through a socket. The socket file may be wrong or the php-cli may have no access to it in a jailed shell. See http://drupal.org/node/1428638 for details.
Après quelques recherches infructueuses, j'ai tenté de créer un nouveau lien symbolique de mysql dans /opt/local/bin nommé "mysql" plutôt que "mysql5" :
ln -s /opt/local/lib/mysql5/bin/mysql /opt/local/bin/mysql
Et le problème d'exécution de Drush était résolu. Ce problème, comme cité auparavant, était spécifique à mon poste de travail, il devrait être rare de le rencontrer.
Drupal 8, me voilà !!