Coopérative numérique Corse
Atom, a hackable text editor for Object-Oriented PHP

Configurer Atom pour le PHP orienté objet

Utiliser l’éditeur Atom pour coder en PHP orienté objet... à la PHPStorm...

 

[Mise à jour du 16 oct. 2017] Le plus simple désormais est d'utiliser Atom IDE

" Get smarter context-aware auto-completion, code navigation features such as an outline view, go to definition and find all references. As well as hover-to-reveal information, diagnostics (errors and warnings) and document formatting. "

 

Avec l’arrivée de la programmation orientée objet via Symfony dans Drupal 8 l’an dernier, j’ai du revoir mon environnement de développement.

Beaucoup m’ont conseillé d’utiliser PHPStorm, ce que j’ai fait et j’ai apprécié principalement 3 choses :

  • la navigation d’une classe à l’autre en cliquant sur leurs noms transformés en liens
  • l’auto-complétion, c’est à dire la suggestion de code pertinent pendant la saisie
  • l’affichage des erreurs de syntaxe

Mais selon moi, PHPStorm a un gros défaut, il fait plein plein plein de trucs, trop ! Ca me fait un peu penser à Photoshop, il y a des milliers de fonctionnalités, dont beaucoup ne servent jamais.

Etant adepte de la solution la plus simple possible... Je me suis intéressé à Atom, l’éditeur de code open source de Github (cf. atom.io), qui part du principe inverse : le logiciel propose un environnement de développement très sobre, juste l'essentiel. Un système de packages permet à l’utilisateur d’ajouter à l'éditeur des fonctionnalités spécifiques au langage de programmation ou sa façon de travailler. Oh, et Atom est gratuit.

Atom is a text editor that's modern, approachable, yet hackable to the core — a tool you can customize to do anything but also use productively without ever touching a config file.

Voici donc ma recette avec Atom pour retrouver les 3 fonctionnalités essentielles à la programmation PHP orientée objet : la navigation entre classes, l’auto-complétion et la correction syntaxique :

  1. Installer les 4 packages suivant via le menu "Atom > Preferences" puis "+ Install" :
    php-integrator-base, indexe votre code PHP et sert de base aux autres packages
    php-integrator-linter, détecte des erreurs de syntaxe et fait des suggestions
    php-integrator-navigation, transforme les noms de classes en liens qui pointent vers le fichier décrivant la classe
    php-integrator-autocomplete-plus, propose des listes de bouts de code pertinents pendant la saisie

    Si vous avez de la chance ces packages marcheront quasi immédiatement, après un petit temps d’indexation automatique de votre code : un alt+clic sur un nom de classe vous ouvrira le fichier de définition de la classe… malheureusement pour moi ça n’a pas été immédiat… 
     
  2. Pour que ces packages fonctionnent, il faut que le code du projet soit intégralement indexé par php-integrator-base. Pour faciliter cela, installez le package project-manager comme le conseille la doc de PHP Integrator (cf. https://php-integrator.github.io/#what-do-i-need). Ce package vous permettra de gérer le chargement de vos projets qui peuvent parfois se matérialiser par un ensemble de dossiers
    Atom Project Manager
    Utiliser Project Manager pour charger un projet composé de plusieurs dossiers

     

  3. Pour que la correction syntaxique (linting) de votre code PHP fonctionne, il faut maintenant installer le package de base Linter (cf. atom.io/packages/linter) qui sert de base au PHP Integrator Linter. Pour ma part, je n'ai pas réussi à l'installer via l'interface d'Atom car le moteur de recherche de packages ne me l'affichait pas, je suis donc passé par la ligne de commande :
    installation du package Atom Linter en ligne de commande
    Après ça, pensez à relancer Atom pour que le package soit bien chargé.
     
  4. Enregistrez votre 1er projet : les commandes de Project Manager sont accessibles via la “Command Palette” sur macOS avec {cmd+shift+p} et sur PC avec {ctrl+shift+p} puis cherchez "project manager: save" ou via le menu "Packages > Project Manager > Save Project"
     
  5. Spécifier à PHP Integrator le projet en cours via le menu "Packages > PHP Integrator > Set Up Current Project"
     
  6. Lancez l’indexation du projet, toujours via la command palette ou le menu "Packages > PHP Integrator > (Re)Index Project"
    PHP Integrator indexing the project
     
  7. A partir de là, et si vous avez bien tous les pré-requis (https://php-integrator.github.io/#what-do-i-need), ça marche ! 
    Démo Atom for Object-Oriented PHP

 

Vous pouvez désormais programmer en PHP confortablement dans votre éditeur de texte open source. Reste à installer de quoi débugger votre code, ce qui fera sûrement l’objet d’un prochain article...

 

Profile picture for user Cedric
Cédric
ALBRECHT
Développeur web Drupal
Ingénieur d’études et développement, il a travaillé quelques années pour Capgemini avant de se lancer en freelance pour réaliser des sites internet à forte valeur ajoutée avec de solides compétences en gestion de projet et ingénierie. À vos côtés, avec sa passion pour le design et l'infographie, il imagine du sur-mesure pour votre site internet, en incorporant toutes les fonctionnalités dont vous avez besoin.