Example #1
0
 /**
  * Constructor.
  *
  * @param array $settings
  */
 public function __construct(array $settings = [])
 {
     foreach ($settings as $id => $value) {
         if (is_string($value)) {
             $value = Definition::singleton($value);
         }
         if (is_int($id) && is_object($value)) {
             if ($value instanceof Definition) {
                 $id = $value->getClass()->getName();
             } else {
                 $id = get_class($value);
             }
         }
         $this->set($id, $value);
     }
 }
Example #2
0
 protected function setUp()
 {
     $this->subject = new Container([Service1::class, new Service2(), Definition::object(Service3::class)->method('setProperty1')->method('setProperty2'), 'service1' => Definition::singleton(Service1::class), 'service2' => Definition::singleton(Service2::class, '@service3', new Service4()), 'service3' => function () {
         return new Service3();
     }, 'service4' => Definition::singleton(Service4::class)->method('setProperty', '@service5'), 'service5' => Definition::singleton(Service5::class)->method('setProperty', '@service6'), 'service6' => Definition::singleton(Service6::class)->method('setProperty', '@service4:getProperty')]);
 }
Example #3
0
<?php

use Neat\Router\Router;
use Neat\Config\Config;
use Neat\Container;
use Neat\Container\Definition;
use Neat\Event\Dispatcher;
use Neat\Http\Request;
use Neat\Profiler\Profiler;
use Neat\Util\Timer;
return [Definition::singleton(Config::class), Definition::singleton(Dispatcher::class), Definition::singleton(Profiler::class, null, '@app:isInDevMode')->addTab('@Neat\\Profiler\\Tab\\Files')->addTab('@Neat\\Profiler\\Tab\\Locations')->addTab('@Neat\\Profiler\\Tab\\Memory')->addTab('@Neat\\Profiler\\Tab\\Time'), Definition::singleton(Request::class), Definition::singleton(Router::class)->properties(true)->addRoute('/module/:module/controller/:controller/action/:action')->addRoute('/controller/:controller/action/:action')->addRoute('/action/:action'), Definition::singleton(TemplateLoader::class, '@app:getAppDir')->setLocation('*', ['{{module}}/View/{{controller}}']), Definition::singleton(Timer::class)];
Example #4
0
<?php

use Neat\Config\Config;
use Neat\Container;
use Neat\Container\Definition;
use Neat\Event\Dispatcher;
use Neat\Http\Request;
use Neat\Loader\FileLoader;
use Neat\Profiler\Profiler;
use Neat\Router\Router;
use Neat\Util\Timer;
return [Definition::singleton(Config::class, null, '@Neat\\Parser\\Json')->setPlaceholders(['app_dir' => '@app:getBasedir', 'app_namespace' => '@app:getNamespace']), Definition::singleton(Dispatcher::class), Definition::singleton(Profiler::class, null, '@app:isInDevMode')->setTabs(['@Neat\\Profiler\\Tab\\Files', '@Neat\\Profiler\\Tab\\Locations', '@Neat\\Profiler\\Tab\\Memory', '@Neat\\Profiler\\Tab\\Time']), Definition::singleton(Request::class), Definition::singleton(Router::class)->setRoutes(['/module/:module/controller/:controller/action/:action', '/controller/:controller/action/:action', '/action/:action']), Definition::singleton(FileLoader::class)->setPlaceholders(['app_dir' => '@app:getBasedir', 'module' => '@Neat\\Http\\Request:get:module:Module', 'controller' => '@Neat\\Http\\Request:get:controller:Home'])->setLocations(['config' => ['{{app_dir}}/etc/config'], 'template' => ['{{app_dir}}/src/{{module}}/View/Default', '{{app_dir}}/src/{{module}}/View/{{controller}}']]), Definition::singleton(Timer::class)];