Accueil / Blog / Métier / 2016 / Top 10 des composants PHP réutilisables

Top 10 des composants PHP réutilisables

Par Sébastien Corbin publié 12/12/2016, édité le 20/12/2016
Une liste non exhaustive de composants que vous pouvez réutiliser dans vos applications ou CMS préférés.
Top 10 des composants PHP réutilisables

Maintenant que vous savez utiliser composer avec Drupal, raison de plus pour ne pas réinventer la roue et utiliser les composants proposés par la communauté PHP.

Faker

Faker est une bibliothèque très pratique est maintenant présente dans tous les languages. Elle permet de générer des données, certes aléatoires, mais un peu plus avancées que du Lorem ipsum, comme par exemple :

  • un profil utilisateur ou une entreprise avec nom, prénom, adresse, numéro de téléphone
  • des données de paiement (IBAN ou numéro de carte bleue)
  • des couleurs, des images, des fichiers

Tout cela avec un support de la langue française et donc des données spécifiques à la France (SIREN/SIRET, départements, etc.).

<?php
$faker = Faker\Factory::create('fr_FR');
echo $faker->name; // Auguste Dupont
echo $faker->departmentNumber; // "2B"

Yaml Component

Yaml est un composant issu du framework Symfony permettant de parser ou de générer du Yaml, un format de représentation de données particulièrement lisible et simple à appréhender.

<?php
use Symfony\Component\Yaml\Yaml;

// Lecture
$value = Yaml::parse(file_get_contents('/path/to/file.yml'));

// Écriture
file_put_contents('/path/to/file.yml', Yaml::dump($value));

Urlify

URLify, tiré directement du framework python Django, facilite la création de slugs à partir de texte, en supprimant les accents, les apostrophes, les mots d'arrêt et en convertissant les alphabets non latins.

<?php
echo URLify::filter(' J\'étudie le français '); // jetudie-le-francais
echo URLify::filter('Lo siento, no hablo español.'); // "lo-siento-no-hablo-espanol"

PHPOffice

PHPOffice est une suite complète de bibliothèques pour lire, écrire ou convertir des documents (Word, Excel, Powerpoint) sous différents formats.

<?php
// Ouvrir un fichier Word
$phpWord = \PhpOffice\PhpWord\IOFactory::load(__DIR__ . "/resources/{$name}.docx");
// Ajouter du texte sous forme HTML
$section = $phpWord->addSection();
$html = '<h1>Adding element via HTML</h1>';
\PhpOffice\PhpWord\Shared\Html::addHtml($section, $html);
// Convertir en PDF
$phpWord->save(__DIR__ . "/resources/{$name}.pdf", "PDF");

CSV

Bien que PHPOffice soit très complète, vous n'avez peut-être pas besoin d'autant pour simplement lire un fichier CSV lourd. Dans ce cas, préférez CSV. Il est maintenu par ThePHPLeague, ce groupe de développeurs propose d'ailleurs de nombreux composants réutilisables, agnostiques et très bien testés, parmi lesquels :

  • CommonMark : un parseur Markdown basé sur la spec CommonMark (voir plus bas pour d'autres parseurs)
  • HTML To Markdown : un convertisseur HTML vers Markdown
  • OAuth 2 Server et OAuth 2 Client : pour fournir ou consommer de l'OAuth
  • Omnipay : pour du paiement multi-plateforme

Twig

Moteur de template robuste, sécurisé et extensible, Twig propose une syntaxe lisible qui remplace agréablement PHPTemplate. On l'adore tellement qu'on le met dans tous nos Drupal.

{% for user in users %}
    * {{ user.name }}
{% else %}
    No users have been found.
{% endfor %}

MobileDetect

MobileDetect est un composant léger se basant sur le User-Agent et quelques autres en-têtes HTTP pour déterminer avec quel type d'appareil ou quel OS le visiteur fait appel au serveur. Il propose également de nombreuses intégrations (dont Symfony et Drupal).

<?php
$detect = new Mobile_Detect;
echo $detect->isMobile();
echo $detect->isTablet();
echo $detect->isiOS();

Parsedown ou PHPMarkdown

Dans la série des parseurs Markdown pour PHP, nous avons :

  • Parsedown, globalement la plus rapide
  • PHPMarkdown, une alternative
  • CommonMark (voir plus haut), bien plus lent que ses confrères

Dompdf ou Snappy

Lorsqu'il s'agit de génération de PDF ou d'image à partir de HTML, vous avez trois alternatives :

  • domdpf : robuste mais a des problèmes avec le HTML mal formé et le flottement en CSS, un peu de lenteur, utilisez des versions récentes pour éviter les failles de sécurité.
  • wkhtmltopdf : très active et performante, la référence
  • tcpdf : peu active

Nous vous conseillons d'essayer Snappy, cette bibliothèque est un wrapper autour de wkhtml très simple à utiliser.

<?php
// Génération de PDF
$snappy = new Pdf('/usr/local/bin/wkhtmltopdf');
$snappy->generateFromHtml('<h1>Bill</h1><p>You owe me money, dude.</p>', '/tmp/bill-123.pdf');
// Capture d'écran d'une page
$snappy = new Image('/usr/local/bin/wkhtmltoimage');
$snappy->generateFromHtml('<h1>Bill</h1><p>You owe me money, dude.</p>', '/tmp/screenshot.img');

HTMLlawed ou HTMLpurifier

Ce sont toutes deux des composants de nettoyage de code HTML, très utile pour afficher du code HTML à provenance douteuse (mails ou simple éditeur WYSIWYG). Elles permettent de nettoyer tout code dangereux, mais aussi de réécrire le HTML defectueux pour qu'il soit gentil avec les navigateurs.

  • HTMLlawed est simple et très rapide, il a cependant un code douteux et difficilement lisible - il reste fiable et rapide, et peut correspondre à bon nombre d'usages;
  • HTMLPurifier est elle une bibliothèque plus moderne et très complète, cependant elle est aussi très grosse et n'apportera parfois que peu de valeur ajoutée par rapport à un composant plus simple.

C'est donc à vous de faire votre choix, les deux alternatives sont fiables, tout dépendra donc de votre besoin!

ABONNEZ-VOUS À LA NEWSLETTER !