/boot/container.php File

The /boot/container.php file contains all items and services that the dependency injection container is initiated with every request. The below table describes all items within this file.

Key Service Description
DbInterface Apex\Svc\Db The database engine being used. Can be mySQL, PostgreSQL or SQLite. For example, to use SQLite, you would change this to Apex\Db\Drivers\Sqlite\Sqlite::class. See the Apex Database Layer section for details.
HttpClientInterface Apex\Svc\HttpClient PSR-18 compliant HTTP client. Defaults to the popular Guzzle package with installation.
EmailerInterface Apex\Svc\Emailer Client used to send e-mail. Defaults to the Apex Mercury package by default with installation, although Apex comes with phpMailer and Symfony Mailer adapters.
Filesystem Apex\Svc\Filesystem Must return an instance of the league/flysystem package. With installation, defaults to the Apex Storage package, which is simply a wrapper to instantiate the league/flystem package. Defaults to local storage within the /storage/ directory.
RouterInterface - The HTTP router implementation that handles all all incoming HTTP requests and routes them to the appropriate controller.
CacheItemPoolInterface Apex\Svc\Cache PSR-6 compliant cache. With installation defaults to the Symfony Cache package using the redis adapter.
cacheInterface Apex\Svc\Psr16Cache PSR-16 compliant cache. With installation, defaults to the Symfony Cache package.
syrus.cache_ttl - Number of seconds to keep template based items alive within the cache before they expire.
ApexContainerInterface Apex\Svc\Container The PSR-11 compliant dependency injection container. Defaults to Apex Container, and shouldn't be changed as on top of PSR-11 requires implmentation of the ApexContainerInterface.
BrokerInterface - Message broker used to dispatch messages. Defaults to local with installation, but can be easily switched to RabbitMQ or other message brokers. See the Events and Queues sections for details.
cluster.timeout_seconds - Number of seconds before a message to RabbitMQ or other broker times out.
LoggerInterface Apex\Svc\Logger PSR-3 compliant logger implmentation. With installation, defaults to the monolog/monolog package.
SmsClientInterface Apex\Svc\SmsClient Client to send SMS messages. See the Send SMS page for details.
FirebaseClientInterface Apex\Svc\Firebase Allows sending of Firebase messages to Android / iSO devices. See the Send Firebase page for details.
WsClientInterface Apex\Svc\WsClient Allows sending of web socket messages. See the WebSocket Client page for details.
armor.cookie_prefix - May be anything you wish, and simply used to provide random cookie names versus every Apex system using the same cookie names.
armor.cookie - The options to use when setting a new cookie within a user's browser. See the setcookie() page of the PHP documentation for details.
syrus.recaptcha_site_key - If utilizing reCaptcha (ie. on login / register forms), the site key provided by Google when registering for reCaptcha.
syrus.recaptcha_secret_key - If utilizing reCaptcha (ie. on login / register forms), the secret key provided by Google when registering for reCaptcha.