PHPackages                             griiv/prestashop-module-contracts - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [PSR &amp; Standards](/categories/psr-standards)
4. /
5. griiv/prestashop-module-contracts

ActiveLibrary[PSR &amp; Standards](/categories/psr-standards)

griiv/prestashop-module-contracts
=================================

Prestashop Module interface and Hook interface

2.0.2(1mo ago)237MITPHPPHP &gt;=7.2

Since May 7Pushed 1mo ago1 watchersCompare

[ Source](https://github.com/griiv-git/prestashop-module-contracts)[ Packagist](https://packagist.org/packages/griiv/prestashop-module-contracts)[ RSS](/packages/griiv-prestashop-module-contracts/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependenciesVersions (13)Used By (0)

PrestaShop Module Contracts
===========================

[](#prestashop-module-contracts)

Bibliothèque PHP fournissant des interfaces et une classe abstraite pour faciliter le développement de modules PrestaShop modernes avec une gestion automatique des hooks et l'intégration de Symfony.

Description
-----------

[](#description)

Ce package propose une architecture structurée pour créer des modules PrestaShop en utilisant les bonnes pratiques de développement PHP moderne. Il simplifie la gestion des hooks PrestaShop en automatisant leur résolution et en permettant une organisation claire du code basée sur des interfaces.

Fonctionnalités
---------------

[](#fonctionnalités)

- **Classe abstraite ModuleAbstract** : Base pour créer vos modules avec accès au kernel Symfony et aux services
- **Gestion automatique des hooks** : Résolution automatique des hooks basée sur des conventions de nommage
- **Interfaces de hooks typées** :
    - `DisplayHookInterface` : Pour les hooks d'affichage (retournent du HTML)
    - `ActionHookInterface` : Pour les hooks d'action (retournent un booléen)
    - `FilterHookInterface` : Pour les hooks de filtrage
    - `AdditionalHookInterface` : Pour les hooks additionnels
- **Intégration Symfony** : Accès direct au kernel, aux services et à l'EntityManager Doctrine
- **Traits utilitaires** (Concerns) : Méthodes helper pour les traductions, tokens de sécurité et configuration module
- **Attribut PHP 8.0+** : `#[AsPrestaShopHook]` pour déclarer les hooks de manière déclarative (optionnel, rétrocompatible PHP 7.2)
- **CompilerPass Symfony** : Enregistrement automatique des hooks via attributs dans le conteneur de services
- **Scripts d'installation automatisés** : Hooks Composer pour install/update/remove

Prérequis
---------

[](#prérequis)

- PHP &gt;= 7.2
- PrestaShop &gt;= 1.7.6 (avec support Symfony natif et accès au conteneur de services)
- Composer

> **Note :** Les fonctionnalités basées sur les attributs PHP (`#[AsPrestaShopHook]` et `PrestaShopHookCompilerPass`) nécessitent PHP 8.0+. Sur PHP 7.2 à 7.4, le reste de la bibliothèque fonctionne normalement.

### Compatibilité PrestaShop 1.6

[](#compatibilité-prestashop-16)

Cette bibliothèque peut également être utilisée avec **PrestaShop 1.6** en installant en complément la bibliothèque `prestashop/module-lib-service-container` qui fournit un conteneur de services compatible.

Installation
------------

[](#installation)

### Pour PrestaShop 1.7.6+

[](#pour-prestashop-176)

```
composer require griiv/prestashop-module-contracts
```

### Pour PrestaShop 1.6

[](#pour-prestashop-16)

```
composer require griiv/prestashop-module-contracts
composer require prestashop/module-lib-service-container
```

Utilisation
-----------

[](#utilisation)

### 1. Créer votre module

[](#1-créer-votre-module)

Créez votre classe de module en étendant `ModuleAbstract` :

```
