Overview

Namespaces

  • Charcoal
    • App
      • Action
      • Config
      • Handler
      • Middleware
      • Module
      • Route
      • Script
      • ServiceProvider
      • Template

Classes

  • Charcoal\App\Action\AbstractAction
  • Charcoal\App\App
  • Charcoal\App\AppConfig
  • Charcoal\App\AppContainer
  • Charcoal\App\Config\CacheConfig
  • Charcoal\App\Config\DatabaseConfig
  • Charcoal\App\Config\FilesystemConfig
  • Charcoal\App\Config\LoggerConfig
  • Charcoal\App\Config\MemcacheCacheConfig
  • Charcoal\App\Config\MemcacheCacheServerConfig
  • Charcoal\App\Handler\AbstractHandler
  • Charcoal\App\Handler\Error
  • Charcoal\App\Handler\HandlerConfig
  • Charcoal\App\Handler\NotAllowed
  • Charcoal\App\Handler\NotFound
  • Charcoal\App\Handler\PhpError
  • Charcoal\App\Handler\Shutdown
  • Charcoal\App\Middleware\CacheMiddleware
  • Charcoal\App\Module\AbstractModule
  • Charcoal\App\Module\ModuleConfig
  • Charcoal\App\Module\ModuleManager
  • Charcoal\App\Route\ActionRoute
  • Charcoal\App\Route\ActionRouteConfig
  • Charcoal\App\Route\RouteConfig
  • Charcoal\App\Route\RouteManager
  • Charcoal\App\Route\ScriptRoute
  • Charcoal\App\Route\ScriptRouteConfig
  • Charcoal\App\Route\TemplateRoute
  • Charcoal\App\Route\TemplateRouteConfig
  • Charcoal\App\Script\AbstractScript
  • Charcoal\App\ServiceProvider\AppServiceProvider
  • Charcoal\App\ServiceProvider\CacheServiceProvider
  • Charcoal\App\ServiceProvider\DatabaseServiceProvider
  • Charcoal\App\ServiceProvider\FilesystemServiceProvider
  • Charcoal\App\ServiceProvider\LoggerServiceProvider
  • Charcoal\App\ServiceProvider\ViewServiceProvider
  • Charcoal\App\Template\AbstractTemplate
  • Charcoal\App\Template\AbstractWidget
  • Charcoal\App\Template\WidgetBuilder

Interfaces

  • Charcoal\App\Action\ActionInterface
  • Charcoal\App\AppAwareInterface
  • Charcoal\App\Handler\HandlerInterface
  • Charcoal\App\Module\ModuleInterface
  • Charcoal\App\Route\RouteInterface
  • Charcoal\App\Script\CronScriptInterface
  • Charcoal\App\Script\ScriptInterface
  • Charcoal\App\Template\TemplateInterface
  • Charcoal\App\Template\WidgetInterface

Traits

  • Charcoal\App\AppAwareTrait
  • Charcoal\App\CallableResolverAwareTrait
  • Charcoal\App\Script\ArgScriptTrait
  • Charcoal\App\Script\CronScriptTrait
  • Charcoal\App\Script\PathScriptTrait
  • Overview
  • Namespace
  • Class
 1: <?php
 2: 
 3: namespace Charcoal\App\Route;
 4: 
 5: // Dependencies from `PHP`
 6: use InvalidArgumentException;
 7: 
 8: // PSR-7 (http messaging) dependencies
 9: use Psr\Http\Message\RequestInterface;
10: use Psr\Http\Message\ResponseInterface;
11: 
12: // Dependencies from `pimple`
13: use Pimple\Container;
14: 
15: // From `charcoal-config`
16: use Charcoal\Config\ConfigurableInterface;
17: use Charcoal\Config\ConfigurableTrait;
18: 
19: // Intra-module (`charcoal-app`) dependencies
20: use Charcoal\App\Route\RouteInterface;
21: use Charcoal\App\Route\ScriptRouteConfig;
22: use Charcoal\App\Script\ScriptInterface;
23: 
24: /**
25:  * Script Route Handler.
26:  */
27: class ScriptRoute implements
28:     ConfigurableInterface,
29:     RouteInterface
30: {
31:     use ConfigurableTrait;
32: 
33:     /**
34:      * Create new script route (CLI)
35:      *
36:      * ### Dependencies
37:      *
38:      * **Required**
39:      *
40:      * - `config` — ScriptRouteConfig
41:      *
42:      * **Optional**
43:      *
44:      * - `logger` — PSR-3 Logger
45:      *
46:      * @param array $data Dependencies.
47:      */
48:     public function __construct(array $data)
49:     {
50:         $this->setConfig($data['config']);
51:     }
52: 
53:     /**
54:      * ConfigurableTrait > create_config()
55:      *
56:      * @param mixed|null $data Optional config data.
57:      * @return ScriptRouteConfig
58:      */
59:     public function createConfig($data = null)
60:     {
61:         return new ScriptRouteConfig($data);
62:     }
63: 
64:     /**
65:      * @param Container         $container A dependencies container.
66:      * @param RequestInterface  $request   A PSR-7 compatible Request instance.
67:      * @param ResponseInterface $response  A PSR-7 compatible Response instance.
68:      * @return ResponseInterface
69:      */
70:     public function __invoke(Container $container, RequestInterface $request, ResponseInterface $response)
71:     {
72:         $config = $this->config();
73: 
74:         $scriptController = $config['controller'];
75: 
76:         $scriptFactory = $container['script/factory'];
77: 
78:         $script = $scriptFactory->create($scriptController);
79: 
80:         $script->setData($config['script_data']);
81: 
82:         // Run (invoke) script.
83:         return $script($request, $response);
84:     }
85: }
86: 
API documentation generated by ApiGen