From 1bc9d92db414ea33227189642d743bfe91e993a7 Mon Sep 17 00:00:00 2001 From: Anton Vasiliev Date: Tue, 14 Sep 2021 21:42:41 +0100 Subject: [PATCH] Add services.php --- config/symfony/services.php | 94 +++++++++++++++++++++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 config/symfony/services.php diff --git a/config/symfony/services.php b/config/symfony/services.php new file mode 100644 index 000000000..f44b9e296 --- /dev/null +++ b/config/symfony/services.php @@ -0,0 +1,94 @@ +services() + ->defaults() + ->autowire() + ->autoconfigure() + ->private() + ->tag('monolog.logger', ['channel' => 'zephir']); + + $services + ->load('Zephir\\', '../../Library') + ->exclude('../../Library/{autoload.php,bootstrap.php,functions.php}'); + + $services + ->set(Application::class) + ->public(); + + $services + ->set(FileSystemInterface::class, HardDisk::class) + ->public() + ->lazy() + ->arg('$basePath', '%local_cache_path%'); + + $services + ->set(Config::class) + ->factory('Zephir\Config::fromServer') + ->public(); + + $services + ->set(BackendFactory::class) + ->public() + ->arg('$kernelsPath', param('kernels_path')) + ->arg('$templatesPath', param('templates_path')); + + $services + ->set(BaseBackend::class) + ->factory([service(BackendFactory::class), 'createBackend']) + ->public(); + + $services + ->set('compiler_log_formatter', CompilerFormatter::class); + + $services + ->set(Compiler::class) + ->public() + ->call('setPrototypesPath', ['%prototypes_path%']) + ->call('setOptimizersPath', ['%optimizers_path%']) + ->call('setTemplatesPath', ['%templates_path%']) + ->call('setLogger', [tagged_locator('monolog.logger')]); + + $configurator + ->parameters() + ->set('prototypes_path', '%kernel.project_dir%/prototypes') + ->set('optimizers_path', '%kernel.project_dir%/Library/Optimizers') + ->set('kernels_path', '%kernel.project_dir%/kernels') + ->set('templates_path', '%kernel.project_dir%/templates') + ->set('local_cache_path', '%kernel.local_cache_dir%'); + + $configurator->extension('monolog', [ + 'handlers' => [ + 'console_stderr' => [ + 'type' => 'stream', + 'path' => 'php://stderr', + 'process_psr_3_messages' => true, + 'bubble' => false, + 'level' => 'warning', + 'formatter' => 'compiler_log_formatter', + ], + 'console_stdout' => [ + 'type' => 'stream', + 'path' => 'php://stdout', + 'process_psr_3_messages' => true, + 'bubble' => false, + 'level' => 'info', + 'formatter' => 'compiler_log_formatter', + ], + ] + ]); +};