lacatoire/acriss-code 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

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.

CI Latest Stable Version License

✨ 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çais
  • it – Italiano
  • de – 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

GitHub 信息

  • Stars: 1
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-06-03