lacatoire/acriss-code
最新稳定版本:v1.0.0
Composer 安装命令:
composer require lacatoire/acriss-code
包简介
ACRISS vehicle classification decoder for PHP (Symfony-ready, Laravel-friendly, standalone)
README 文档
README
Decode and translate ACRISS vehicle classification codes in PHP.
✨ What is this?
lacatoire/acriss-code is a PHP library to parse, validate, and translate ACRISS codes (used by rental companies to describe vehicles).
It supports typed enums, Symfony integration, and multilingual translations (EN, FR, IT).
🚀 Installation
composer require lacatoire/acriss-code
Symfony Flex will register the bundle automatically if you're using Symfony.
✅ Features
- ✅ Strongly-typed with PHP enums
- ✅ Decode ACRISS 4-letter codes into structured objects
- ✅ Translate ACRISS codes into human-readable strings (EN, FR, IT)
- ✅ Framework-agnostic core (usable with Laravel, Symfony, or standalone)
- ✅ Symfony integration via bundle
- ✅ 100% tested with PHPUnit
🦩 Usage
Parse a code
use Acriss\AcrissCodeParser; $parser = new AcrissCodeParser(); $code = $parser->parse('CDMR'); echo $code->category->value;
Translate a code
use Acriss\AcrissTranslator; $translator = new AcrissTranslator($translatorService); $labels = $translator->translate($code, 'fr'); echo $labels->category; echo $labels->fuelAirCon;
Get full details
use Acriss\AcrissCodeDetails; $details = (new AcrissCodeDetails($parser, $translator))->get('CDMR', 'it'); // $details->original is an AcrissCode // $details->translated is a TranslatedAcrissCode echo $details->translated->transmission; // "Manuale"
🧬 Data Model
AcrissCode
class AcrissCode { public AcrissCategory $category; public AcrissType $type; public TransmissionDrive $transmission; public FuelAirConditioning $fuelAirCon; }
TranslatedAcrissCode
class TranslatedAcrissCode { public string $category; public string $type; public string $transmission; public string $fuelAirCon; }
AcrissCodeDetails
class AcrissCodeDetails { public AcrissCode $original; public TranslatedAcrissCode $translated; }
🧪 Testing
composer install ./vendor/bin/phpunit
⚙️ Framework Integration
Symfony
use Acriss\AcrissTranslator; $translator = new AcrissTranslator($this->translator);
- Compatible with Symfony translation (TranslatorInterface)
- Drop translations in translations/messages.[locale].yaml
- Autowiring-ready if registered as a bundle (optional)
Laravel
use Illuminate\Translation\Translator; use Acriss\AcrissTranslator; $acriss = new AcrissTranslator(app(Translator::class));
- Use any Laravel translator via adapter or service container
Stand-alone PHP
use Symfony\Component\Translation\Translator; use Symfony\Component\Translation\Loader\YamlFileLoader; use Acriss\AcrissTranslator; $translator = new Translator('fr'); $translator->addLoader('yaml', new YamlFileLoader()); $translator->addResource('yaml', __DIR__.'/translations/messages.fr.yaml', 'fr'); $acriss = new AcrissTranslator($translator);
📁 Project Structure
src/
Acriss/
Enum/ // ACRISS enums (category, type, etc.)
Model/ // AcrissCode value object
AcrissCodeParser.php
AcrissTranslator.php
AcrissCodeDetails.php
tests/ // PHPUnit tests
translations/ // Symfony-compatible translations (en, fr, it, de)
🌐 Supported Locales
en– English (default)fr– Françaisit– Italianode– Deutsch
Want to add more? PRs welcome 👌
📄 License
This library is open-sourced under the MIT license.
Launch phpunit, phpstan, composer without anything
docker run --rm -v "${PWD}:/app" -w /app php:8.3-cli bash -c "apt update && apt install -y git unzip curl > /dev/null && curl -sS https://getcomposer.org/installer | php && php composer.phar install && php vendor/bin/phpunit"
统计信息
- 总下载量: 1
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 2
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-06-03