/**
  * Specific features for OctoberCMS.
  *
  * @param  \Illuminate\Contracts\Foundation\Application  $app
  * @return void
  */
 public function bootstrap(Application $app)
 {
     /*
      * Register singletons
      */
     $app->singleton('string', function () {
         return new \October\Rain\Support\Str();
     });
     /*
      * Change paths based on config
      */
     if ($pluginsPath = $app['config']->get('cms.pluginsPathLocal')) {
         $app->setPluginsPath($pluginsPath);
     }
     if ($themesPath = $app['config']->get('cms.themesPathLocal')) {
         $app->setThemesPath($themesPath);
     }
     /*
      * Set execution context
      */
     $requestPath = $this->normalizeUrl($app['request']->path());
     $backendUri = $this->normalizeUrl($app['config']->get('cms.backendUri', 'backend'));
     if (starts_with($requestPath, $backendUri)) {
         $app->setExecutionContext('back-end');
     } else {
         $app->setExecutionContext('front-end');
     }
 }