PHPackages                             griiv/prestashop-module-installer - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. griiv/prestashop-module-installer

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

griiv/prestashop-module-installer
=================================

Prestashop Module Installer

1.0.2(1mo ago)0345MITPHPPHP &gt;=7.2

Since Feb 29Pushed 1mo ago1 watchersCompare

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

READMEChangelog (1)Dependencies (2)Versions (6)Used By (0)

PrestaShop Module Installer
===========================

[](#prestashop-module-installer)

Une bibliothèque PHP réutilisable qui fournit un framework d'installation standardisé pour les modules PrestaShop.

Table des matières
------------------

[](#table-des-matières)

- [Présentation](#pr%C3%A9sentation)
- [Installation](#installation)
- [Architecture](#architecture)
- [Utilisation](#utilisation)
- [Fonctionnalités](#fonctionnalit%C3%A9s)
- [API Reference](#api-reference)
- [Exemples](#exemples)
- [Prérequis](#pr%C3%A9requis)
- [Licence](#licence)

Présentation
------------

[](#présentation)

Ce package abstrait la complexité de l'installation des modules PrestaShop en gérant automatiquement :

- **Base de données** : Création et suppression des schémas SQL avec support transactionnel
- **Hooks** : Enregistrement et désenregistrement des hooks PrestaShop
- **Onglets admin** : Création et suppression des entrées de menu dans le back-office
- **Gestion des erreurs** : Rollback automatique en cas d'échec

### Patterns de conception utilisés

[](#patterns-de-conception-utilisés)

- **Template Method** : `InstallerAbstract` définit le squelette d'installation, `GriivInstaller` implémente les étapes spécifiques
- **Injection de dépendances** : L'instance du module est injectée via le constructeur
- **Interface Segregation** : `InstallerInterface` définit un contrat clair
- **Facade** : Point d'entrée unique (`install()`/`uninstall()`) pour des processus multi-étapes complexes

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

[](#installation)

### Via Composer

[](#via-composer)

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

### Manuellement

[](#manuellement)

Clonez le repository et incluez l'autoloader :

```
require_once 'vendor/autoload.php';
```

Architecture
------------

[](#architecture)

### Structure du projet

[](#structure-du-projet)

```
prestashop-module-installer/
├── src/
│   ├── InstallerInterface.php      # Interface définissant le contrat
│   ├── InstallerAbstract.php       # Implémentation de base (template method)
│   └── GriivInstaller.php          # Implémentation concrète
├── composer.json
├── README.md
└── LICENSE

```

### Diagramme des classes

[](#diagramme-des-classes)

```
┌─────────────────────────┐
│   InstallerInterface    │
├─────────────────────────┤
│ + install()             │
│ + uninstall()           │
│ + installModuleTab()    │
│ + uninstallModuleTab()  │
└───────────┬─────────────┘
            │ implements
            ▼
┌─────────────────────────┐
│   InstallerAbstract     │
├─────────────────────────┤
│ # $module               │
│ # $filesystem           │
│ # $tabRepository        │
├─────────────────────────┤
│ + install()             │
│ + uninstall()           │
│ + installModuleTab()    │
│ + uninstallModuleTab()  │
│ # installDatabase()     │ ← abstract
│ # uninstallDatabase()   │ ← abstract
│ # registerHooks()       │ ← abstract
│ # unregisterHooks()     │ ← abstract
│ # installTabs()         │ ← abstract
│ # uninstallTabs()       │ ← abstract
└───────────┬─────────────┘
            │ extends
            ▼
┌─────────────────────────┐
│     GriivInstaller      │
├─────────────────────────┤
│ + installDatabase()     │
│ + uninstallDatabase()   │
│ + registerHooks()       │
│ + unregisterHooks()     │
│ + installTabs()         │
│ + uninstallTabs()       │
│ + executeQuery()        │
│ + executeQueries()      │
└─────────────────────────┘

```

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

[](#utilisation)

### 1. Créer votre installeur de module

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

Dans votre module PrestaShop, créez une classe qui étend `GriivInstaller` ou utilisez-la directement :

```
