Aller au contenu

PHP - Les bonnes pratiques

Cette fiche est une tentative de synthèse de bonnes pratiques pour l'utilisation du langage PHP. PHP - La bonne manière ira beaucoup plus loin en détaillant les différents points.

Pour la gestion des dépendances

  • Voir PHP Standards Recommendations

  • Utiliser PHP composer pour :

    • Décrire et télécharger facilement les dépendances dans mon-projet/vendor.
    • Générer un fichier mon-projet/vendor/autoload.php (un seul require autoload.php sera alors nécessaire)
    • Pouvoir mettre en oeuvre des automatismes à l'installation ou mise à jour (voir PHP composer / Scripts)

Pour la qualité

Pour la scalabilité

Stocker localement uniquement des données spécifiques à l'instance :

Pour la sécurité

  • Ne jamais faire confiance aux utilisateurs, toujours valider les données (la base...).

  • Pour éviter les injections XSS, toujours échapper les rendus en HTML :

  • Pour éviter les injections SQL en accédant aux bases SQL, ne pas construire une requête SQL avec des données arbitraires :

    • Utiliser PHP PDO et les requêtes préparées
    • Utiliser un ORM tel doctrine/orm
  • Ne pas exposer la racine d'un projet au niveau du serveur web :

    • Exposer un dossier mon-projet/public contenant un index.php au niveau apache/nginx ("document root")
    • Faire un dossier mon-projet/src pour les classes
    • Faire un dossier séparé pour les fichiers de configuration (ex : mon-projet/config ou mon-projet/app/config)
  • Ne pas stocker les fichiers téléversés par des utilisateurs dans un dossier exposé par le serveur :

    • Faire un dossier séparé pour stocker ces fichiers (ex : mon-projet/data ou /var/mon-projet-data)
    • Streamer l'envoi du fichier lors du téléchargement en PHP