1. Go to this page and download the library: Download avangero/deal-cmd-package library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
avangero / deal-cmd-package example snippets
use Avangero\DealCmdPackage\Application\Services\CommandProcessor;
use Avangero\DealCmdPackage\Domain\Services\CommandParser;
use Avangero\DealCmdPackage\Domain\ValueObjects\DealId;
// Реализуйте интерфейсы доменного слоя под вашу систему:
// - DealRepositoryInterface
// - MessageSenderInterface
// - LoggerInterface (можно адаптировать PSR-3)
// - CommandConfigurationInterface
// - CommandMapperInterface
// - MessageProviderInterface
// Затем создайте CommandProcessor, передав зависимости и список команд
$processor = new CommandProcessor(
parser: new CommandParser($messageProvider),
logger: $logger,
messageProvider: $messageProvider,
commandMapper: $commandMapper,
commands: [
$acceptedCommand,
$contactCommand,
$closeReasonCommand,
$reasonCommand,
]
);
$result = $processor->process('/принято 500 офис', new DealId(123));
use Avangero\\DealCmdPackage\\Domain\\Ports\\DealRepositoryInterface;
use Avangero\\DealCmdPackage\\Domain\\Ports\\MessageSenderInterface;
use App\\Services\\CrmDealRepository;
use App\\Services\\CrmMessageSender;
public function register(): void
{
$this->app->bind(DealRepositoryInterface::class, CrmDealRepository::class);
$this->app->bind(MessageSenderInterface::class, CrmMessageSender::class);
}
use Avangero\\DealCmdPackage\\Application\\Services\\CommandProcessor;
use Avangero\\DealCmdPackage\\Domain\\ValueObjects\\DealId;
public function processCommand(Request $request, CommandProcessor $processor)
{
$result = $processor->process($request->string('command'), new DealId((int) $request->input('deal_id')));
return response()->json([
'success' => $result->isSuccess(),
'message' => $result->isSuccess() ? $result->getMessage() : $result->getErrorMessage(),
]);
}