PHPackages                             arnoldkouya/plan-comptable-syscohada - 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. arnoldkouya/plan-comptable-syscohada

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

arnoldkouya/plan-comptable-syscohada
====================================

Bibliothèque PHP complète du Plan Comptable SYSCOHADA (OHADA) — recherche, validation et navigation des comptes

v1.0.0(3mo ago)03↓90.9%MITPHPPHP &gt;=8.1

Since Apr 1Pushed 3mo agoCompare

[ Source](https://github.com/arnoldkouya/plan-comptable-syscohada)[ Packagist](https://packagist.org/packages/arnoldkouya/plan-comptable-syscohada)[ Docs](https://github.com/syscohada/plan-comptable)[ RSS](/packages/arnoldkouya-plan-comptable-syscohada/feed)WikiDiscussions main Synced 4w ago

READMEChangelogDependencies (1)Versions (2)Used By (0)

Plan Comptable SYSCOHAD
=======================

[](#plan-comptable-syscohad)

Bibliothèque PHP complète du **Plan Comptable SYSCOHADA** — le système comptable normalisé des États membres de l'OHADA.

> Recherche, validation, navigation et interrogation de tous les comptes (classes 1 à 9), avec leurs libellés, leur nature (bilan / gestion / hors-bilan / CAGE) et leur sens (débit / crédit / mixte).

---

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

[](#installation)

```
composer require arnoldkouya/plan-comptable-syscohada
```

**Prérequis** : PHP ≥ 8.1

---

Démarrage rapide
----------------

[](#démarrage-rapide)

```
use Syscohada\PlanComptable;
use Syscohada\Validator;

$plan = PlanComptable::getInstance();

// Rechercher un compte par code exact
$compte = $plan->find('6011');
echo $compte; // "6011 — Dans la Région"

// Trouver ou lancer une exception
$compte = $plan->findOrFail('4111');
echo $compte->getLibelle(); // "Clients"

// Tous les comptes d'une classe
$classe6 = $plan->classe(6); // array de Compte

// Recherche plein texte (insensible à la casse et aux accents)
$resultats = $plan->search('marchandises');

// Enfants directs
$enfants = $plan->enfants('60'); // [601, 602, 603, ...]

// Tous les descendants (récursif)
$descendants = $plan->descendants('60');

// Chemin depuis la racine
$chemin = $plan->chemin('6011');
// → [60, 601, 6011]
```

---

API complète
------------

[](#api-complète)

### `PlanComptable`

[](#plancomptable)

MéthodeDescription`getInstance()`Singleton — retourne l'instance unique`find(string $code)`Retourne le `Compte` ou `null``findOrFail(string $code)`Retourne le `Compte` ou lance `CompteNotFoundException``exists(string $code)`Vérifie l'existence d'un code`valider(string $code)`Alias de `exists``classe(int $classe)`Tous les comptes d'une classe (1–9)`classeNiveau(int $classe, int $niveau)`Comptes d'une classe à un niveau donné`enfants(string $code)`Enfants directs`descendants(string $code)`Tous les descendants (récursif)`search(string $terme)`Recherche sur le code ou le libellé`nature(string $nature)`Filtre par nature (`bilan`, `gestion`, `hors-bilan`, `cage`)`sens(string $sens)`Filtre par sens (`debit`, `credit`, `mixte`)`chemin(string $code)`Chemin depuis la racine jusqu'au compte`all()`Tous les comptes du plan`statistiques()`Statistiques du plan### `Compte`

[](#compte)

MéthodeRetourDescription`getCode()``string`Code du compte`getLibelle()``string`Libellé officiel`getClasse()``int`Classe (1–9)`getNiveau()``int`Niveau / profondeur (1–4)`getCodeParent()``?string`Code du compte parent`getNature()``?string``bilan`, `gestion`, `hors-bilan`, `cage``getSens()``?string``debit`, `credit`, `mixte``isActif()``bool`Compte actif`isGroupe()``bool`Niveau ≤ 2 (compte racine)`isDivisionnaire()``bool`Niveau = 4`toArray()``array`Représentation tableau`__toString()``string``"CODE — Libellé"`### `Validator`

[](#validator)

```
use Syscohada\Validator;

Validator::formatValide('6011');          // true
Validator::existeDansPlan('9999');        // false
Validator::classeDeCode('601');           // 6
Validator::niveauDeCode('6011');          // 4
Validator::estBilan('401');               // true
Validator::estGestion('701');             // true
Validator::estCharge('661');              // true
Validator::estProduit('701');             // true
Validator::estTresorerie('521');          // true
Validator::invalides(['6011','XXXX']);    // ['XXXX']
```

---

Exemples avancés
----------------

[](#exemples-avancés)

### Arbre d'une classe

[](#arbre-dune-classe)

```
$plan = PlanComptable::getInstance();

// Comptes de niveau 2 (sous-classes) de la classe 4
$sousClasses = $plan->classeNiveau(4, 2);

foreach ($sousClasses as $parent) {
    echo $parent->getCode() . ' — ' . $parent->getLibelle() . "\n";
    foreach ($plan->enfants($parent->getCode()) as $enfant) {
        echo '  └─ ' . $enfant . "\n";
    }
}
```

### Valider un lot de codes

[](#valider-un-lot-de-codes)

```
$codesUtilisateur = ['6011', '4111', '9999', 'ABCD'];
$invalides = Validator::invalides($codesUtilisateur);
// ['9999', 'ABCD']
```

### Export JSON de la classe 5

[](#export-json-de-la-classe-5)

```
$tresorerie = $plan->classe(5);
echo json_encode(
    array_map(fn ($c) => $c->toArray(), $tresorerie),
    JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE
);
```

### Statistiques

[](#statistiques)

```
$stats = $plan->statistiques();
echo "Total comptes : " . $stats['total'] . "\n";
// Total comptes : 560

foreach ($stats['par_classe'] as $classe => $nb) {
    echo "Classe $classe : $nb comptes\n";
}
```

---

Tests
-----

[](#tests)

```
composer install
composer test
```

---

Structure du projet
-------------------

[](#structure-du-projet)

```
src/
├── Compte.php              # Value object d'un compte
├── PlanComptable.php       # Registre principal (singleton)
├── Validator.php           # Utilitaires de validation
├── Contracts/
│   ├── CompteInterface.php
│   └── PlanComptableInterface.php
├── Data/
│   └── comptes.php         # Données complètes du plan (classes 1–9)
└── Exceptions/
    └── CompteNotFoundException.php
tests/
└── PlanComptableTest.php

```

---

Couverture du plan
------------------

[](#couverture-du-plan)

ClasseDescriptionComptes1Ressources durables✅ Complet2Actif immobilisé✅ Complet3Stocks✅ Complet4Comptes de tiers✅ Complet5Trésorerie✅ Complet6Charges activités ordinaires✅ Complet7Produits activités ordinaires✅ Complet8Autres charges et produits✅ Complet9Engagements hors bilan + CAGE✅ Complet---

Licence
-------

[](#licence)

MIT — voir [LICENSE](LICENSE)

###  Health Score

35

—

LowBetter than 77% of packages

Maintenance82

Actively maintained with recent releases

Popularity3

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity42

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

91d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/5789069?v=4)[Arnold KOUYA](/maintainers/arnoldkouya)[@arnoldkouya](https://github.com/arnoldkouya)

---

Top Contributors

[![arnoldkouya](https://avatars.githubusercontent.com/u/5789069?v=4)](https://github.com/arnoldkouya "arnoldkouya (1 commits)")

---

Tags

Accountingsyscohadaohadacomptabilitéplan-comptableafrique

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/arnoldkouya-plan-comptable-syscohada/health.svg)

```
[![Health](https://phpackages.com/badges/arnoldkouya-plan-comptable-syscohada/health.svg)](https://phpackages.com/packages/arnoldkouya-plan-comptable-syscohada)
```

###  Alternatives

[illuminatech/balance

Provides support for Balance accounting system based on debit and credit principle

16442.0k](/packages/illuminatech-balance)[rezzza/accounting

Accounting utilities

2215.3k](/packages/rezzza-accounting)[byrokrat/accounting

Analysis and generation of bookkeeping data according to Swedish standards

121.6k](/packages/byrokrat-accounting)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
