Download the PHP package avangero/deal-cmd-package without Composer
On this page you can find all versions of the php package avangero/deal-cmd-package. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download avangero/deal-cmd-package
More information about avangero/deal-cmd-package
Files in avangero/deal-cmd-package
Package deal-cmd-package
Short Description PHP пакет для обработки текстовых команд пользователя в CRM-системе
License MIT
Informations about the package deal-cmd-package
Deal Command Package
PHP-пакет для обработки текстовых команд пользователя в контексте сделки (CRM). Независим от фреймворка, с готовой интеграцией в Laravel.
Возможности
- Парсинг текстовых команд вида
/команда аргументы - Паттерн Chain of Responsibility для обработки
- Изолированная доменная логика (чистый PHP)
- Логирование результатов выполнения
- Простая расширяемость новыми командами
Реализованные команды:
/принято 500 офис→ устанавливает свойства сделки (сумма и тип)/контакт→ отправляет служебное сообщение с контактом клиента/причина_закрытия удалена транзакция→ устанавливает причину закрытия/причина→ отправляет служебное сообщение с причиной закрытия
Установка
Минимальные требования: PHP 8.1+
Быстрый старт (фреймворк-независимо)
Интеграция с Laravel
Пакет включает провайдер DealCmdServiceProvider и автоматически регистрируется через extra.laravel.providers.
1) Опубликуйте конфиги:
Будут созданы файлы:
config/deal-cmd.php— конфигурация командconfig/deal-cmd-messages.php— сообщенияconfig/deal-cmd-mapping.php— маппинг пользовательских команд
2) Зарегистрируйте адаптеры под вашу CRM в AppServiceProvider:
3) Использование (например, в контроллере):
Конфигурация
config/deal-cmd.php (ID свойств):
config/deal-cmd-mapping.php (маппинг пользовательских команд):
config/deal-cmd-messages.php (тексты сообщений): содержит шаблоны и ошибки, параметры вида {name}.
Расширение: добавление новой команды
1) Реализуйте CommandInterface или унаследуйтесь от AbstractConfigurableCommand.
2) Зарегистрируйте команду в Laravel провайдере или передайте в список при создании CommandProcessor.
3) Добавьте маппинг в deal-cmd-mapping.php и при необходимости конфигурацию/сообщения.
Контракты (главные интерфейсы)
DealRepositoryInterface: работа со свойствами сделки и контактом клиентаMessageSenderInterface: отправка служебных сообщений в сделкуLoggerInterface: логирование выполнения командCommandConfigurationInterface: доступ к конфигам командCommandMapperInterface: преобразование пользовательских команд в системныеMessageProviderInterface: шаблоны и тексты сообщений
Тестирование
В проекте есть юнит- и интеграционные тесты (PHPUnit 10).