public function init($workingDirectory) { if (\posix_getuid() !== 0) { $this->logger->addError('Order not running as root, some functionality may fail to work.'); } $this->workingDirectory = $workingDirectory; $this->orderConfig = new Combined($this->logger, [__DIR__ . '/../config/order', $workingDirectory . '/.order-override']); $dossiers = array_merge($this->orderConfig->get('order-dossier'), $this->orderConfig->has('dossier') ? $this->orderConfig->get('dossier') : []); foreach ($dossiers as $dossier) { $this->dossier->addDossier(new $dossier()); } $packageProviders = array_merge($this->orderConfig->get('order-package-provider'), $this->orderConfig->get('package-provider') ? $this->orderConfig->get('package-provider') : []); $serviceProviders = array_merge($this->orderConfig->get('order-service-provider'), $this->orderConfig->get('service-provider') ? $this->orderConfig->get('service-provider') : []); $userProviders = array_merge($this->orderConfig->get('order-user-provider'), $this->orderConfig->get('user-provider') ? $this->orderConfig->get('user-provider') : []); $os = $this->dossier->get('os.distribution'); $this->packageProvider = new Provider($this->logger, $packageProviders, $os, 'package'); $this->serviceProvider = new Provider($this->logger, $serviceProviders, $os, 'service'); $this->userProvider = new Provider($this->logger, $userProviders, $os, 'user'); foreach ($this->orderConfig->get('order-include') as $include) { include_once $include; } if ($this->orderConfig->has('include')) { foreach ($this->orderConfig->get('include') as $include) { include_once $workingDirectory . '/' . $include; } } Stream::register('law'); Stream::setLogger($this->logger); Stream::setStorage(new Storage(new Filesystem(new Local('/')), [''])); $this->twigLoader->addPath($workingDirectory); }
<?php include __DIR__ . '/../vendor/autoload.php'; use Eater\Order\Law\Stream; Stream::register('law');