Les directives de code pour le projet Goutte établissent des pratiques standardisées afin d'assurer la cohérence et la facilité de maintenance. Ce document détaille les conventions de style et de nommage applicablse au développement en PHP pour ce scraper web.
Convention de nommage des classes
Les classes dans Goutte utilisent la notation PascalCase, où chaque mot commence par une majuscule sans underscore. Par exemple, la classe principale Scrapeur et la classe de test ScrapeurTest respectent cette norme.
// Exemple correct
class Scrapeur extends KitNavigateur {
// Implémentation de la classe
}
class ScrapeurTest extends CasTest {
// Implémentation des tests
}
Convention de nommage des méthodes
Les méthodes adoptent la notation camelCase, avec le premier mot en minuscule et les suivants avec une majuscule initiale. Voici un exemple de constructeur dans la classe Scrapeur :
public function __construct(ClientHttpInterface $requeteur = null, Historique $historique = null, JarCookie $cookies = null) {
// Corps de la méthode
}
Indentation et formatage du code
L'indentation utilise quatre espaces plutôt que des taublations. Les blocs de code sont entourés d'accolades, avec l'accolade ouvrante sur la même ligne que la déclaration et l'accolade fermante sur une ligne séparée.
if ($condition) {
// Bloc de code
} else {
// Bloc alternatif
}
Espaces de noms
Toutes les classes doivent être placées dans un espace de noms approprié. Pour Goutte, l'espace de noms racine est Goutte. Exemple :
namespace Goutte;
use Symfony\Component\BrowserKit\KitNavigateur;
class Scrapeur extends KitNavigateur {
// Implémentation
}
Documentation par commentaires
Chaque classe et méthode publique doit inclure une documentation détaillée au format PHPDoc. Celle-ci doit décrire la fonctionnalité sans informations personnelles.
/**
* Classe principale pour le scraping web avec Goutte.
*
* @deprecated Utiliser directement KitNavigateur de Symfony
*/
class Scrapeur extends KitNavigateur {
// Implémentation
}
Gestion des dépendances
Le projet utilise Composer pour la gestion des dépendances. Toutes les dépendances sont listées dans le fichier composer.json. L'installation s'effectue via la commande :
composer install
Normes de test
Les classes de test portent le suffixe « Test » ajouté au nom de la classe testée, et les méthodes de test commencent par « test » en camelCase. Les fichiers de test sont situés dans le répertoire Goutte/Tests/, par exemple ScrapeurTest.php.
Configuration de déploiement
Le projet inclut des configurations pour Docker et Kubernetes, permettant un déploiement flexible dans différents environnements. Ces fichiers, tels que Dockerfile et k8s-deploiement.yaml, facilitent la mise en production.