diff --git a/composer.json b/composer.json index f7da28f9..2cfe4e14 100644 --- a/composer.json +++ b/composer.json @@ -42,7 +42,7 @@ "nikolaposa/monolog-factory": "^3.1", "ocramius/proxy-manager": "^2.11", "pagerfanta/core": "^3.5", - "php-amqplib/php-amqplib": "^2.0", + "php-amqplib/php-amqplib": "^3.1", "php-middleware/request-id": "^4.1", "predis/predis": "^1.1", "pugx/shortid-php": "^1.0", diff --git a/config/autoload/rabbit.global.php b/config/autoload/rabbit.global.php new file mode 100644 index 00000000..113a0048 --- /dev/null +++ b/config/autoload/rabbit.global.php @@ -0,0 +1,49 @@ +<?php + +declare(strict_types=1); + +use Laminas\ServiceManager\AbstractFactory\ConfigAbstractFactory; +use Laminas\ServiceManager\Proxy\LazyServiceFactory; +use PhpAmqpLib\Connection\AMQPStreamConnection; + +use function Shlinkio\Shlink\Common\env; + +return [ + + 'rabbit' => [ + 'host' => env('RABBITMQ_HOST'), + 'port' => env('RABBITMQ_PORT', '5672'), + 'user' => env('RABBITMQ_USER'), + 'password' => env('RABBITMQ_PASSWORD'), + 'vhost' => env('RABBITMQ_VHOST', '/'), + 'exchange' => env('RABBITMQ_EXCHANGE', 'shlink-exchange'), + 'queue' => env('RABBITMQ_QUEUE', 'shlink-queue'), + ], + + 'dependencies' => [ + 'factories' => [ + AMQPStreamConnection::class => ConfigAbstractFactory::class, + ], + 'delegators' => [ + AMQPStreamConnection::class => [ + LazyServiceFactory::class, + ], + ], + 'lazy_services' => [ + 'class_map' => [ + AMQPStreamConnection::class => AMQPStreamConnection::class, + ], + ], + ], + + ConfigAbstractFactory::class => [ + AMQPStreamConnection::class => [ + 'config.rabbit.host', + 'config.rabbit.port', + 'config.rabbit.user', + 'config.rabbit.password', + 'config.rabbit.vhost', + ], + ], + +]; diff --git a/config/autoload/rabbit.local.php.dist b/config/autoload/rabbit.local.php.dist new file mode 100644 index 00000000..2425a2c5 --- /dev/null +++ b/config/autoload/rabbit.local.php.dist @@ -0,0 +1,13 @@ +<?php + +declare(strict_types=1); + +return [ + + 'rabbit' => [ + 'host' => 'shlink_rabbitmq', + 'user' => 'rabbit', + 'password' => 'rabbit', + ], + +]; diff --git a/data/infra/php.Dockerfile b/data/infra/php.Dockerfile index 86f95361..96556869 100644 --- a/data/infra/php.Dockerfile +++ b/data/infra/php.Dockerfile @@ -34,6 +34,9 @@ RUN docker-php-ext-install pdo_pgsql RUN apk add --no-cache gmp-dev RUN docker-php-ext-install gmp +RUN docker-php-ext-install sockets +RUN docker-php-ext-install bcmath + # Install APCu extension ADD https://pecl.php.net/get/apcu-$APCU_VERSION.tgz /tmp/apcu.tar.gz RUN mkdir -p /usr/src/php/ext/apcu \ diff --git a/data/infra/swoole.Dockerfile b/data/infra/swoole.Dockerfile index 74b83d07..570ca2a9 100644 --- a/data/infra/swoole.Dockerfile +++ b/data/infra/swoole.Dockerfile @@ -36,6 +36,9 @@ RUN docker-php-ext-install pdo_pgsql RUN apk add --no-cache gmp-dev RUN docker-php-ext-install gmp +RUN docker-php-ext-install sockets +RUN docker-php-ext-install bcmath + # Install APCu extension ADD https://pecl.php.net/get/apcu-$APCU_VERSION.tgz /tmp/apcu.tar.gz RUN mkdir -p /usr/src/php/ext/apcu \