addPath('build', '', \UserFrosting\BUILD_DIR_NAME); $locator->addPath('log', '', \UserFrosting\APP_DIR_NAME . '/' . \UserFrosting\LOG_DIR_NAME); $locator->addPath('cache', '', \UserFrosting\APP_DIR_NAME . '/' . \UserFrosting\CACHE_DIR_NAME); $locator->addPath('session', '', \UserFrosting\APP_DIR_NAME . '/' . \UserFrosting\SESSION_DIR_NAME); // Use locator to initialize streams ReadOnlyStream::setLocator($locator); // Fire up StreamBuilder $c->streamBuilder; return $locator; }; /** * StreamBuilder, to fire up our custom StreamWrapper defined in the locator service. */ $container['streamBuilder'] = function ($c) { $streams = [ 'build' => '\\RocketTheme\\Toolbox\\StreamWrapper\\Stream', 'log' => '\\RocketTheme\\Toolbox\\StreamWrapper\\Stream', 'cache' => '\\RocketTheme\\Toolbox\\StreamWrapper\\Stream', 'session' => '\\RocketTheme\\Toolbox\\StreamWrapper\\Stream', 'sprinkles' => '\\RocketTheme\\Toolbox\\StreamWrapper\\ReadOnlyStream', 'assets' => '\\RocketTheme\\Toolbox\\StreamWrapper\\ReadOnlyStream', 'schema' => '\\RocketTheme\\Toolbox\\StreamWrapper\\ReadOnlyStream', 'templates' => '\\RocketTheme\\Toolbox\\StreamWrapper\\ReadOnlyStream', 'extra' => '\\RocketTheme\\Toolbox\\StreamWrapper\\ReadOnlyStream', 'locale' => '\\RocketTheme\\Toolbox\\StreamWrapper\\ReadOnlyStream', 'config' => '\\RocketTheme\\Toolbox\\StreamWrapper\\ReadOnlyStream', 'routes' => '\\RocketTheme\\Toolbox\\StreamWrapper\\ReadOnlyStream', 'factories' => '\\RocketTheme\\Toolbox\\StreamWrapper\\ReadOnlyStream' ]; // Before registering them, we need to unregister any that where previously registered. // This will cause error when two scripts are run in succession from the CLI foreach ($streams as $scheme => $handler) { if (in_array($scheme, stream_get_wrappers())) { stream_wrapper_unregister($scheme); } } $sb = new StreamBuilder($streams); return $sb; }; /** * Set up sprinkle manager service. */ $container['sprinkleManager'] = function ($c) { $sprinkleManager = new SprinkleManager($c); return $sprinkleManager; }; } }