| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- <?php
- namespace Tools;
- /**
- * Cms context
- * Contains all website informations
- * Will be passed to themes files and to modules
- **/
- class Context
- {
- /**
- * @var \Tools\Hooks $hookManager
- * /core/tools/Hooks.php
- * allow triggering hooks and registers module's endpoints
- * Can be accessed read-only via $instance->hookManager
- **/
- private $hookManager;
- /**
- * @var \Tools\ModuleManager $moduleManager
- * /core/tools/ModuleManager.php
- * load all active modules and contains informations about them
- * Can be accessed read-only via $instance->moduleManager
- **/
- private $moduleManager;
- /**
- * @var \Tools\Router $router
- * /core/tools/Router.php
- * Contains information about directories and paths
- * Allow user to generate links
- * Can be accessed read-only via $instance->router
- **/
- private $router;
- /**
- * TODO
- * @var \Tools\Cart $cart
- * /core/tools/Cart.php
- * Not defined yet
- * Can be accessed read-only via $instance->cart
- **/
- private $cart;
- /**
- * TODO
- * @var \Tools\User $user (entity ?)
- * /core/tools/User.php
- * Can be accessed read-only via $instance->user
- **/
- private $user;
- /**
- * @var \Tools\AController $controller
- * /core/tools/AController.php
- * Controller being called by user's request
- **/
- private $controller;
- /**
- * Create context from $_SERVER environment
- * and initialize all data
- **/
- public function __construct()
- {
- $this->hookManager = new Hooks($this);
- $this->router = new Router($this);
- if (!\Entity\ModelBase::init())
- {
- @require_once(getcwd().'/core/setup/index.php');
- die;
- }
- $this->router->init();
- $this->moduleManager = new ModuleManager($this);
- $this->hookManager->trigger("routerSetup");
- try
- {
- $this->controller = $this->router->serveUrl();
- if (!$this->controller)
- throw new \Exception\Error404();
- $this->controller->start();
- }
- catch (\Exception\Error404 $e)
- {
- echo "404";
- }
- }
- /**
- * Getter function
- **/
- public function __get($key)
- {
- switch ($key)
- {
- case "router": return $this->router; break;
- case "cart": return $this->cart; break;
- case "user": return $this->user; break;
- case "moduleManager": return $this->moduleManager; break;
- case "hookManager": return $this->hookManager; break;
- }
- throw new \Exception("Cannot access attribute {$key}");
- }
- }
|