Skip to content
Snippets Groups Projects

1.x

Merged 1.x
11 unresolved threads
Merged Bartek Jaskulski requested to merge 1.x into review
11 unresolved threads
3 files
+ 1
17
Compare changes
  • Side-by-side
  • Inline

Files

<?php
declare(strict_types=1);
namespace WPDesk\Init\Extension;
use Psr\Container\ContainerInterface;
use WPDesk\Init\Binding\Loader\ArrayDefinitions;
use WPDesk\Init\Binding\Loader\BindingDefinitions;
use WPDesk\Init\Binding\Loader\FilesystemDefinitions;
use WPDesk\Init\Configuration\Configuration;
use WPDesk\Init\Configuration\ReadableConfig;
use WPDesk\Init\DependencyInjection\ContainerBuilder;
use WPDesk\Init\Plugin\Plugin;
use WPDesk\Init\Util\Path;
class ConfigExtension implements Extension {
public function bindings( ContainerInterface $c ): BindingDefinitions {
$config = $c->get( Configuration::class );
if ( $config->has( 'hook_resources_path' ) ) {
return new FilesystemDefinitions(
( new Path( $config->get( 'hook_resources_path' ) ) )->absolute( $c->get( Plugin::class )->get_path() )
);
}
return new ArrayDefinitions( [] );
}
public function build( ContainerBuilder $builder, Plugin $plugin, ReadableConfig $config ): void {
$services = array_map(
function ( $service ) use ( $plugin ) {
return (string) ( new Path( $service ) )->absolute( $plugin->get_path() );
},
(array) $config->get( 'services', [] )
);
$builder->add_definitions( ...$services );
}
}
Loading