src/App.php
protected function registerCoreServices()
    {
        $this['util'] = function ($app) {
            return new \Slender\Core\Util\Util();
        };

        $this->registerService('dependency-injector','Slender\Core\DependencyInjector\Factory');
        $this->registerService('autoloader', 'Slender\Core\Autoloader\AutoloaderFactory');
        $this->registerService('autoloader.psr4', 'Slender\Core\Autoloader\PSR4Factory');




        /**
         * The configParser is used to translate various file
         * formats into PHP arrays
         *
         * @var ConfigFileParserInterface
         * @return \Slender\Core\ConfigParser\Stack
         */
        $this['config-parser'] = function () {
                return new ConfigParser\Stack(array(
                    'yml' => new ConfigParser\YAML,
                    'php' => new ConfigParser\PHP,
                    'json' => new ConfigParser\JSON,
                ));
            };


        /**
         * ConfigFinder is responsible for finding, loading and merging
         * configuration files
         *
         * @var ConfigFileFinderInterface
         * @return ConfigFileFinderInterface
         */
        $this['config-finder'] = function ($app) {
                $configLoader = new \Slender\Core\ConfigFinder\ConfigFinder(
                    $this['settings']['config']['autoload'],
                    $this['settings']['config']['files']
                );

                return $configLoader;
            };


        /**
         * ModuleResolver is used for tracking down a module's path
         * from it's name
         *
         * @var ModuleResolverInterface
         * @return \Slender\Core\ModuleResolver\ResolverStack
         */
        $this['module-resolver'] = function ($app) {
                $stack = new ResolverStack(new NamespaceResolver);
                $stack->setConfigParser($app['config-parser']);
                foreach ($this['settings']['modulePaths'] as $path) {
                    if (is_readable($path)) {
                        $stack->prependResolver(new DirectoryResolver($path));
                    }
                }

                return $stack;
            };

        /**
         * ModuleLoader is used to load modules & their dependencies,
         * registering services & routes etc along the way
         *
         * @var ModuleLoaderInterface
         * @param \Slender\App $app
         * @return ModuleLoaderInterface
         */
        $this->registerService('module-loader', 'Slender\Core\ModuleLoader\Factory');

    }
protected function registerCoreServices()
    {
        $this['util'] = function ($app) {
            return new \Slender\Core\Util\Util();
        };

        $this->registerService('dependency-injector','Slender\Core\DependencyInjector\Factory');
        $this->registerService('autoloader', 'Slender\Core\Autoloader\AutoloaderFactory');
        $this->registerService('autoloader.psr4', 'Slender\Core\Autoloader\PSR4Factory');




        /**
         * The configParser is used to translate various file
         * formats into PHP arrays
         *
         * @var ConfigFileParserInterface
         * @return \Slender\Core\ConfigParser\Stack
         */
        $this['config-parser'] = function () {
                return new ConfigParser\Stack(array(
                    'yml' => new ConfigParser\YAML,
                    'php' => new ConfigParser\PHP,
                    'json' => new ConfigParser\JSON,
                ));
            };


        /**
         * ConfigFinder is responsible for finding, loading and merging
         * configuration files
         *
         * @var ConfigFileFinderInterface
         * @return ConfigFileFinderInterface
         */
        $this['config-finder'] = function ($app) {
                $configLoader = new \Slender\Core\ConfigFinder\ConfigFinder(
                    $this['settings']['config']['autoload'],
                    $this['settings']['config']['files']
                );

                return $configLoader;
            };


        /**
         * ModuleResolver is used for tracking down a module's path
         * from it's name
         *
         * @var ModuleResolverInterface
         * @return \Slender\Core\ModuleResolver\ResolverStack
         */
        $this['module-resolver'] = function ($app) {
                $stack = new ResolverStack(new NamespaceResolver);
                $stack->setConfigParser($app['config-parser']);
                foreach ($this['settings']['modulePaths'] as $path) {
                    if (is_readable($path)) {
                        $stack->prependResolver(new DirectoryResolver($path));
                    }
                }

                return $stack;
            };

        /**
         * ModuleLoader is used to load modules & their dependencies,
         * registering services & routes etc along the way
         *
         * @var ModuleLoaderInterface
         * @param \Slender\App $app
         * @return ModuleLoaderInterface
         */
        $this->registerService('module-loader', 'Slender\Core\ModuleLoader\Factory');

    }
protected function registerCoreServices ( ) { $ this [ 'util' ] = function ( $ app ) { return new \ Slender \ Core \ Util \ Util ( ) ; } ; $ this -> registerService ( 'dependency-injector' , 'Slender\Core\DependencyInjector\Factory' ) ; $ this -> registerService ( 'autoloader' , 'Slender\Core\Autoloader\AutoloaderFactory' ) ; $ this -> registerService ( 'autoloader.psr4' , 'Slender\Core\Autoloader\PSR4Factory' ) ; /**
         * The configParser is used to translate various file
         * formats into PHP arrays
         *
         * @var ConfigFileParserInterface
         * @return \Slender\Core\ConfigParser\Stack
         */ $ this [ 'config-parser' ] = function ( ) { return new ConfigParser \ Stack ( array ( 'yml' => new ConfigParser \ YAML , 'php' => new ConfigParser \ PHP , 'json' => new ConfigParser \ JSON , ) ) ; } ; /**
         * ConfigFinder is responsible for finding, loading and merging
         * configuration files
         *
         * @var ConfigFileFinderInterface
         * @return ConfigFileFinderInterface
         */ $ this [ 'config-finder' ] = function ( $ app ) { $ configLoader = new \ Slender \ Core \ ConfigFinder \ ConfigFinder ( $ this [ 'settings' ] [ 'config' ] [ 'autoload' ] , $ this [ 'settings' ] [ 'config' ] [ 'files' ] ) ; return $ configLoader ; } ; /**
         * ModuleResolver is used for tracking down a module's path
         * from it's name
         *
         * @var ModuleResolverInterface
         * @return \Slender\Core\ModuleResolver\ResolverStack
         */ $ this [ 'module-resolver' ] = function ( $ app ) { $ stack = new ResolverStack ( new NamespaceResolver ) ; $ stack -> setConfigParser ( $ app [ 'config-parser' ] ) ; foreach ( $ this [ 'settings' ] [ 'modulePaths' ] as $ path ) { if ( is_readable ( $ path ) ) { $ stack -> prependResolver ( new DirectoryResolver ( $ path ) ) ; } } return $ stack ; } ; /**
         * ModuleLoader is used to load modules & their dependencies,
         * registering services & routes etc along the way
         *
         * @var ModuleLoaderInterface
         * @param \Slender\App $app
         * @return ModuleLoaderInterface
         */ $ this -> registerService ( 'module-loader' , 'Slender\Core\ModuleLoader\Factory' ) ; }
Registers core services to the IoC Container
Registers core services to the IoC Container