# Services to check installation requirements

services:
  # default configuration for services in *this* file

  _defaults:
    autowire: true
    autoconfigure: true

  _instanceof:
    App\Logic\InstallRequirements\XCartInterface:
      tags: ['xcart.requirement']

  # main entry point
  App\Logic\GetInstallRequirements:
    arguments: [!tagged_iterator {tag: 'xcart.requirement'}]

  App\Logic\InstallRequirements\PhpVersion:
    arguments:
      $minPhpVersion: '7.4.0'
      $maxPhpVersion: '8.0.99'
      $forbiddenPhpVersions: []

  App\Logic\InstallRequirements\PhpMemoryLimit:
    arguments:
      $memoryLimitMin: '256M'

  App\Logic\InstallRequirements\EnvHostVarConfiguration:
    arguments:
      $httpHost: '%env(string:XCART_HOST_DETAILS_HTTP_HOST)%'

  App\Logic\InstallRequirements\ConfigFileName: ~
  App\Logic\InstallRequirements\DocBlocksSupport: ~
  App\Logic\InstallRequirements\FilePermissions: ~

  App\Logic\InstallRequirements\HttpsBouncer: ~
  App\Logic\InstallRequirements\IconvSupport: ~
  App\Logic\InstallRequirements\MbstringSupport: ~
  App\Logic\InstallRequirements\PhpDisabledFunctions: ~
  App\Logic\InstallRequirements\PhpFileUploads: ~
  App\Logic\InstallRequirements\PhpGdlib: ~
  App\Logic\InstallRequirements\PhpPdoMysql: ~
  App\Logic\InstallRequirements\PhpPhar: ~
  App\Logic\InstallRequirements\PhpUploadMaxFileSize: ~
  App\Logic\InstallRequirements\SocketsSupport: ~
  App\Logic\InstallRequirements\SodiumSupport: ~
  App\Logic\InstallRequirements\XmlSupport: ~
  App\Logic\InstallRequirements\IonCubePhpBug: ~
