The following files exists in this folder. Click to view.
CDIFactoryDefault.php.txt1 lines ASCII Unix (LF) <?php
namespace Anax\DI;
/**
* Anax base class implementing Dependency Injection / Service Locator
* of the services used by the framework, using lazy loading.
*/
class CDIFactoryDefault extends CDI
{
/**
* Construct.
*
*/
public function __construct()
{
parent::__construct();
require ANAX_APP_PATH . "/config/error_reporting.php";
$this->setShared("response", "\Anax\Response\CResponseBasic");
$this->setShared("validate", "\Anax\Validate\CValidate");
$this->setShared("flash", "\Anax\Flash\CFlashBasic");
$this->set("route", "\Anax\Route\CRouteBasic");
$this->set("view", "\Anax\View\CView");
$this->set("ErrorController", function () {
$controller = new \Anax\MVC\ErrorController();
$controller->setDI($this);
return $controller;
});
$this->setShared("log", function () {
$log = new \Anax\Log\CLogger();
$log->setContext("development");
return $log;
});
$this->setShared("cache", function () {
$cache = new \Anax\Cache\CFileCache();
$cache->configure(ANAX_APP_PATH . "/config/cache.php");
return $cache;
});
$this->setShared("request", function () {
$request = new \Anax\Request\CRequestBasic();
$request->init();
return $request;
});
$this->setShared("url", function () {
$url = new \Anax\Url\CUrl();
$url->setSiteUrl($this->request->getSiteUrl());
$url->setBaseUrl($this->request->getBaseUrl());
$url->setStaticSiteUrl($this->request->getSiteUrl());
$url->setStaticBaseUrl($this->request->getBaseUrl());
$url->setScriptName($this->request->getScriptName());
$url->setUrlType($url::URL_APPEND);
return $url;
});
$this->setShared("views", function () {
$views = new \Anax\View\CViewContainer();
$views->configure(ANAX_APP_PATH . "/config/views.php");
$views->setDI($this);
return $views;
});
$this->setShared("router", function () {
$router = new \Anax\Route\CRouterBasic();
$router->setDI($this);
$router->addInternal("403", function () {
$this->dispatcher->forward([
"controller" => "error",
"action" => "statusCode",
"params" => [
"code" => 403,
"message" => "HTTP Status Code 403: This is a forbidden route.",
],
]);
})->setName("403");
$router->addInternal("404", function () {
$this->dispatcher->forward([
"controller" => "error",
"action" => "statusCode",
"params" => [
"code" => 404,
"message" => "HTTP Status Code 404: This route is not found.",
],
]);
$this->dispatcher->forward([
"controller" => "error",
"action" => "displayValidRoutes",
]);
})->setName("404");
$router->addInternal("500", function () {
$this->dispatcher->forward([
"controller" => "error",
"action" => "statusCode",
"params" => [
"code" => 500,
"message" => "HTTP Status Code 500: There was an internal server or processing error.",
],
]);
})->setName("500");
return $router;
});
$this->setShared("dispatcher", function () {
$dispatcher = new \Anax\MVC\CDispatcherBasic();
$dispatcher->setDI($this);
return $dispatcher;
});
$this->setShared("session", function () {
$session = new \Anax\Session\CSession();
$session->configure(ANAX_APP_PATH . "/config/session.php");
$session->name();
$session->start();
return $session;
});
$this->setShared("theme", function () {
$themeEngine = new \Anax\ThemeEngine\CThemeEngine();
$themeEngine->setDI($this);
$themeEngine->configure(ANAX_APP_PATH . "/config/theme.php");
return $themeEngine;
});
$this->setShared("navbar", function () {
$navbar = new \Anax\Navigation\CNavbar();
$navbar->setDI($this);
$navbar->configure(ANAX_APP_PATH . "/config/navbar.php");
return $navbar;
});
$this->set("fileContent", function () {
$fc = new \Anax\Content\CFileContent();
$fc->setDI($this);
$fc->configure(ANAX_APP_PATH . "/config/file_content.php");
return $fc;
});
$this->set("pageContent", function () {
$pc = new \Anax\Content\CPageContent();
$pc->setDI($this);
$pc->configure(ANAX_APP_PATH . "/config/page_content.php");
return $pc;
});
$this->set("content", function () {
$content = new \Anax\Content\CFileBasedContent();
$content->setDI($this);
$content->configure(ANAX_APP_PATH . "/config/content.php");
return $content;
});
$this->setShared("textFilter", function () {
//$filter = new \Anax\Content\CTextFilter();
$filter = new \Mos\TextFilter\CTextFilter();
//$filter->setDI($this);
//$filter->configure(ANAX_APP_PATH . "/config/text_filter.php");
return $filter;
});
}
}