/var
/www
/vhosts
/kfagg.com
/httpdocs
/vendor
/twig
/twig
/lib
/Twig
/Loader
/Filesystem.php
if (isset($this->errorCache[$name])) {
if (!$throw) {
return false;
}
throw new Twig_Error_Loader($this->errorCache[$name]);
}
$this->validateName($name);
list($namespace, $shortname) = $this->parseName($name);
if (!isset($this->paths[$namespace])) {
$this->errorCache[$name] = sprintf('There are no registered paths for namespace "%s".', $namespace);
if (!$throw) {
return false;
}
throw new Twig_Error_Loader($this->errorCache[$name]);
}
foreach ($this->paths[$namespace] as $path) {
if (!$this->isAbsolutePath($path)) {
$path = $this->rootPath.'/'.$path;
}
if (is_file($path.'/'.$shortname)) {
if (false !== $realpath = realpath($path.'/'.$shortname)) {
return $this->cache[$name] = $realpath;
}
return $this->cache[$name] = $path.'/'.$shortname;
}
}
$this->errorCache[$name] = sprintf('Unable to find template "%s" (looked into: %s).', $name, implode(', ', $this->paths[$namespace]));
if (!$throw) {
return false;
Arguments
"There are no registered paths for namespace "error"."
/var
/www
/vhosts
/kfagg.com
/httpdocs
/vendor
/twig
/twig
/lib
/Twig
/Loader
/Filesystem.php
$path = rtrim($path, '/\\');
if (!isset($this->paths[$namespace])) {
$this->paths[$namespace][] = $path;
} else {
array_unshift($this->paths[$namespace], $path);
}
}
public function getSourceContext($name)
{
$path = $this->findTemplate($name);
return new Twig_Source(file_get_contents($path), $name, $path);
}
public function getCacheKey($name)
{
$path = $this->findTemplate($name);
$len = strlen($this->rootPath);
if (0 === strncmp($this->rootPath, $path, $len)) {
return substr($path, $len);
}
return $path;
}
public function exists($name)
{
$name = $this->normalizeName($name);
if (isset($this->cache[$name])) {
return true;
}
return false !== $this->findTemplate($name, false);
}
public function isFresh($name, $time)
Arguments
/var
/www
/vhosts
/kfagg.com
/httpdocs
/vendor
/twig
/twig
/lib
/Twig
/Environment.php
/**
* Gets the template class associated with the given string.
*
* The generated template class is based on the following parameters:
*
* * The cache key for the given template;
* * The currently enabled extensions;
* * Whether the Twig C extension is available or not;
* * PHP version;
* * Twig version;
* * Options with what environment was created.
*
* @param string $name The name for which to calculate the template class name
* @param int|null $index The index if it is an embedded template
*
* @return string The template class name
*/
public function getTemplateClass($name, $index = null)
{
$key = $this->getLoader()->getCacheKey($name).$this->optionsHash;
return $this->templateClassPrefix.hash('sha256', $key).(null === $index ? '' : '_'.$index);
}
/**
* Renders a template.
*
* @param string $name The template name
* @param array $context An array of parameters to pass to the template
*
* @return string The rendered template
*
* @throws Twig_Error_Loader When the template cannot be found
* @throws Twig_Error_Syntax When an error occurred during compilation
* @throws Twig_Error_Runtime When an error occurred during rendering
*/
public function render($name, array $context = array())
{
return $this->loadTemplate($name)->render($context);
}
Arguments
/var
/www
/vhosts
/kfagg.com
/httpdocs
/vendor
/twig
/twig
/lib
/Twig
/Environment.php
/**
* Loads a template internal representation.
*
* This method is for internal use only and should never be called
* directly.
*
* @param string $name The template name
* @param int $index The index if it is an embedded template
*
* @return Twig_Template A template instance representing the given template name
*
* @throws Twig_Error_Loader When the template cannot be found
* @throws Twig_Error_Runtime When a previously generated cache is corrupted
* @throws Twig_Error_Syntax When an error occurred during compilation
*
* @internal
*/
public function loadTemplate($name, $index = null)
{
$cls = $mainCls = $this->getTemplateClass($name);
if (null !== $index) {
$cls .= '_'.$index;
}
if (isset($this->loadedTemplates[$cls])) {
return $this->loadedTemplates[$cls];
}
if (!class_exists($cls, false)) {
$key = $this->cache->generateKey($name, $mainCls);
if (!$this->isAutoReload() || $this->isTemplateFresh($name, $this->cache->getTimestamp($key))) {
$this->cache->load($key);
}
if (!class_exists($cls, false)) {
$source = $this->getLoader()->getSourceContext($name);
$content = $this->compileSource($source);
$this->cache->write($key, $content);
$this->cache->load($key);
Arguments
/var
/www
/vhosts
/kfagg.com
/httpdocs
/vendor
/twig
/twig
/lib
/Twig
/Environment.php
$key = $this->getLoader()->getCacheKey($name).$this->optionsHash;
return $this->templateClassPrefix.hash('sha256', $key).(null === $index ? '' : '_'.$index);
}
/**
* Renders a template.
*
* @param string $name The template name
* @param array $context An array of parameters to pass to the template
*
* @return string The rendered template
*
* @throws Twig_Error_Loader When the template cannot be found
* @throws Twig_Error_Syntax When an error occurred during compilation
* @throws Twig_Error_Runtime When an error occurred during rendering
*/
public function render($name, array $context = array())
{
return $this->loadTemplate($name)->render($context);
}
/**
* Displays a template.
*
* @param string $name The template name
* @param array $context An array of parameters to pass to the template
*
* @throws Twig_Error_Loader When the template cannot be found
* @throws Twig_Error_Syntax When an error occurred during compilation
* @throws Twig_Error_Runtime When an error occurred during rendering
*/
public function display($name, array $context = array())
{
$this->loadTemplate($name)->display($context);
}
/**
* Loads a template.
*
Arguments
/var
/www
/vhosts
/kfagg.com
/httpdocs
/vendor
/zendframework
/zend-expressive-twigrenderer
/src
/TwigRenderer.php
/**
* Render
*
* @param string $name
* @param array|object $params
* @return string
* @throws \Zend\Expressive\Template\Exception\InvalidArgumentException for non-array, non-object parameters.
*/
public function render($name, $params = [])
{
// Merge parameters based on requested template name
$params = $this->mergeParams($name, $this->normalizeParams($params));
$name = $this->normalizeTemplate($name);
// Merge parameters based on normalized template name
$params = $this->mergeParams($name, $params);
return $this->template->render($name, $params);
}
/**
* Add a path for template
*
* @param string $path
* @param null|string $namespace
* @return void
*/
public function addPath($path, $namespace = null)
{
$namespace = $namespace ?: TwigFilesystem::MAIN_NAMESPACE;
$this->twigLoader->addPath($path, $namespace);
}
/**
* Get the template directories
*
* @return TemplatePath[]
*/
Arguments
"@error/404.html.twig"
array:1 [
"request" => ServerRequest {#6477}
]
/var
/www
/vhosts
/kfagg.com
/httpdocs
/vendor
/zendframework
/zend-expressive
/src
/Delegate
/NotFoundDelegate.php
'Cannot %s %s',
$request->getMethod(),
(string) $request->getUri()
));
return $response;
}
/**
* Generates a response using a template.
*
* Template will receive the current request via the "request" variable.
*
* @param ServerRequestInterface $request
* @return ResponseInterface
*/
private function generateTemplatedResponse(ServerRequestInterface $request)
{
$response = $this->responsePrototype->withStatus(StatusCodeInterface::STATUS_NOT_FOUND);
$response->getBody()->write(
$this->renderer->render($this->template, ['request' => $request])
);
return $response;
}
}
Arguments
"@error/404.html.twig"
array:1 [
"request" => ServerRequest {#6477}
]
/var
/www
/vhosts
/kfagg.com
/httpdocs
/vendor
/zendframework
/zend-expressive
/src
/Delegate
/NotFoundDelegate.php
$template = self::TEMPLATE_DEFAULT
) {
$this->responsePrototype = $responsePrototype;
$this->renderer = $renderer;
$this->template = $template;
}
/**
* Creates and returns a 404 response.
*
* @param ServerRequestInterface $request
* @return ResponseInterface
*/
public function process(ServerRequestInterface $request)
{
if (! $this->renderer) {
return $this->generatePlainTextResponse($request);
}
return $this->generateTemplatedResponse($request);
}
/**
* Generates a plain text response indicating the request method and URI.
*
* @param ServerRequestInterface $request
* @return ResponseInterface
*/
private function generatePlainTextResponse(ServerRequestInterface $request)
{
$response = $this->responsePrototype->withStatus(StatusCodeInterface::STATUS_NOT_FOUND);
$response->getBody()
->write(sprintf(
'Cannot %s %s',
$request->getMethod(),
(string) $request->getUri()
));
return $response;
}
Arguments
/var
/www
/vhosts
/kfagg.com
/httpdocs
/vendor
/zendframework
/zend-stratigility
/src
/Next.php
{
return $this->process($request);
}
/**
* @param ServerRequestInterface $request
* @return ResponseInterface
* @throws Exception\MissingResponseException If the queue is exhausted, and
* no "next delegate" is present.
* @throws Exception\MissingResponseException If the middleware executed does
* not return a response.
*/
public function process(ServerRequestInterface $request)
{
$request = $this->resetPath($request);
// No middleware remains; done
if ($this->queue->isEmpty()) {
if ($this->nextDelegate) {
return $this->nextDelegate->process($request);
}
throw new Exception\MissingResponseException(sprintf(
'Queue provided to %s was exhausted, with no response returned',
get_class($this)
));
}
$layer = $this->queue->dequeue();
$path = $request->getUri()->getPath() ?: '/';
$route = $layer->path;
$normalizedRoute = (strlen($route) > 1) ? rtrim($route, '/') : $route;
// Skip if layer path does not match current url
if (substr(strtolower($path), 0, strlen($normalizedRoute)) !== strtolower($normalizedRoute)) {
return $this->process($request);
}
// Skip if match is not at a border ('/', '.', or end)
$border = $this->getBorder($path, $normalizedRoute);
Arguments
/var
/www
/vhosts
/kfagg.com
/httpdocs
/vendor
/zendframework
/zend-stratigility
/src
/Next.php
// No middleware remains; done
if ($this->queue->isEmpty()) {
if ($this->nextDelegate) {
return $this->nextDelegate->process($request);
}
throw new Exception\MissingResponseException(sprintf(
'Queue provided to %s was exhausted, with no response returned',
get_class($this)
));
}
$layer = $this->queue->dequeue();
$path = $request->getUri()->getPath() ?: '/';
$route = $layer->path;
$normalizedRoute = (strlen($route) > 1) ? rtrim($route, '/') : $route;
// Skip if layer path does not match current url
if (substr(strtolower($path), 0, strlen($normalizedRoute)) !== strtolower($normalizedRoute)) {
return $this->process($request);
}
// Skip if match is not at a border ('/', '.', or end)
$border = $this->getBorder($path, $normalizedRoute);
if ($border && '/' !== $border && '.' !== $border) {
return $this->process($request);
}
// Trim off the part of the url that matches the layer route
if (! empty($route) && $route !== '/') {
$request = $this->stripRouteFromPath($request, $route);
}
$middleware = $layer->handler;
$response = $middleware->process($request, $this);
if (! $response instanceof ResponseInterface) {
throw new Exception\MissingResponseException(sprintf(
"Last middleware executed did not return a response.\nMethod: %s\nPath: %s\n.Handler: %s",
$request->getMethod(),
Arguments
/var
/www
/vhosts
/kfagg.com
/httpdocs
/core
/Middleware
/Controller.php
public function process(ServerRequestInterface $request, DelegateInterface $delegate)
{
$this->boot('bootProcess');
foreach($this->middlewares as $middleware) {
if(($return = $middleware->process($request, $delegate)) !== null) {//if anything returned
return $return;
}
}
return $this->processController($request, $delegate);
}
private function processController(ServerRequestInterface $request, DelegateInterface $delegate)
{
$this->boot('bootRouting');
if (!$this->router || ($result = $this->router->match($request))->isFailure()) {
return $delegate->process($request);
}
$this->request = $request;
$this->delegate = $delegate;
Template::defaults([
'this' => $this
]);
Registry::set('http.controller.object', $this);
Registry::set('http.request.attributes', $result->getMatchedParams());
$this->boot('bootDispatch');
return call_user_func($result->getMatchedMiddleware());
}
protected function path($route = null)
{
return Registry::get('http.controller.path').$route;
}
Arguments
/var
/www
/vhosts
/kfagg.com
/httpdocs
/core
/Middleware
/Controller.php
}
}
}
protected function middleware($middleware)
{
$this->middlewares[] = $middleware;
}
public function process(ServerRequestInterface $request, DelegateInterface $delegate)
{
$this->boot('bootProcess');
foreach($this->middlewares as $middleware) {
if(($return = $middleware->process($request, $delegate)) !== null) {//if anything returned
return $return;
}
}
return $this->processController($request, $delegate);
}
private function processController(ServerRequestInterface $request, DelegateInterface $delegate)
{
$this->boot('bootRouting');
if (!$this->router || ($result = $this->router->match($request))->isFailure()) {
return $delegate->process($request);
}
$this->request = $request;
$this->delegate = $delegate;
Template::defaults([
'this' => $this
]);
Registry::set('http.controller.object', $this);
Registry::set('http.request.attributes', $result->getMatchedParams());
Arguments
/var
/www
/vhosts
/kfagg.com
/httpdocs
/core
/Middleware
/FindController.php
$controllerClass = $controllerClassPath.$controllerClassName;
if ($controllerPath != '/') {
$request = App::stripRouteFromPath($request, $controllerPath);
}
Registry::set('http.request.method', $request->getMethod());
Registry::set('http.request.path', $request->getUri()->getPath());
Registry::set('http.request.headers', $request->getHeaders());
Registry::set('http.request.cookies', $request->getCookieParams());
Registry::set('http.request.query', $request->getQueryParams());
Registry::set('http.request.body', $request->getParsedBody());
Registry::set('http.request.files', $request->getUploadedFiles());
Registry::set('http.request.server', $request->getServerParams());
Registry::set('http.controller.path', Locale::getLocalePath().$controllerPath);
Registry::set('http.controller.class', $controllerClass);
return (new $controllerClass)->process($request, $delegate);
}
private function controllerClassName($name)
{
return str_replace('-', '', ucwords($name, '-'));
}
}
Arguments
/var
/www
/vhosts
/kfagg.com
/httpdocs
/vendor
/zendframework
/zend-stratigility
/src
/Next.php
$normalizedRoute = (strlen($route) > 1) ? rtrim($route, '/') : $route;
// Skip if layer path does not match current url
if (substr(strtolower($path), 0, strlen($normalizedRoute)) !== strtolower($normalizedRoute)) {
return $this->process($request);
}
// Skip if match is not at a border ('/', '.', or end)
$border = $this->getBorder($path, $normalizedRoute);
if ($border && '/' !== $border && '.' !== $border) {
return $this->process($request);
}
// Trim off the part of the url that matches the layer route
if (! empty($route) && $route !== '/') {
$request = $this->stripRouteFromPath($request, $route);
}
$middleware = $layer->handler;
$response = $middleware->process($request, $this);
if (! $response instanceof ResponseInterface) {
throw new Exception\MissingResponseException(sprintf(
"Last middleware executed did not return a response.\nMethod: %s\nPath: %s\n.Handler: %s",
$request->getMethod(),
$request->getUri()->getPath(),
get_class($middleware)
));
}
return $response;
}
/**
* Toggle the "raise throwables" flag on.
*
* @deprecated Since 2.0.0; this functionality is now a no-op.
* @return void
*/
public function raiseThrowables()
Arguments
/var
/www
/vhosts
/kfagg.com
/httpdocs
/core
/Service
/Locale.php
use Interop\Http\ServerMiddleware\MiddlewareInterface;
use Psr\Http\Message\ServerRequestInterface;
use Zend\Diactoros\Response\RedirectResponse;
class Locale implements MiddlewareInterface
{
protected static $locales = [];
protected static $locale;
protected static $default;
public function process(ServerRequestInterface $request, DelegateInterface $delegate)
{
if (($locale = substr($request->getUri()->getPath(), 1, 2)) && in_array($locale, static::getLocales()) && in_array(substr($request->getUri()->getPath(), 3, 1), ['/', false, ''])) {
static::setLocale($locale);
$request = App::stripRouteFromPath($request, '/'.$locale);
} elseif (($localePath = static::getLocalePath())) {// to prevent doubled-content for google
return new RedirectResponse($localePath.$request->getUri()->getPath());
}
return $delegate->process($request);
}
/**
* @param string $locale
* @throws \Exception
*/
public static function setLocales(array $locales)
{
self::$locales = $locales;
self::$default = current($locales);
}
/**
* @return array
*/
public static function getLocales()
{
return self::$locales;
}
Arguments
/var
/www
/vhosts
/kfagg.com
/httpdocs
/vendor
/zendframework
/zend-stratigility
/src
/Next.php
$normalizedRoute = (strlen($route) > 1) ? rtrim($route, '/') : $route;
// Skip if layer path does not match current url
if (substr(strtolower($path), 0, strlen($normalizedRoute)) !== strtolower($normalizedRoute)) {
return $this->process($request);
}
// Skip if match is not at a border ('/', '.', or end)
$border = $this->getBorder($path, $normalizedRoute);
if ($border && '/' !== $border && '.' !== $border) {
return $this->process($request);
}
// Trim off the part of the url that matches the layer route
if (! empty($route) && $route !== '/') {
$request = $this->stripRouteFromPath($request, $route);
}
$middleware = $layer->handler;
$response = $middleware->process($request, $this);
if (! $response instanceof ResponseInterface) {
throw new Exception\MissingResponseException(sprintf(
"Last middleware executed did not return a response.\nMethod: %s\nPath: %s\n.Handler: %s",
$request->getMethod(),
$request->getUri()->getPath(),
get_class($middleware)
));
}
return $response;
}
/**
* Toggle the "raise throwables" flag on.
*
* @deprecated Since 2.0.0; this functionality is now a no-op.
* @return void
*/
public function raiseThrowables()
Arguments
/var
/www
/vhosts
/kfagg.com
/httpdocs
/vendor
/zendframework
/zend-stratigility
/src
/Middleware
/ErrorHandler.php
* Adds an error handler that will convert PHP errors to ErrorException
* instances.
*
* Internally, wraps the call to $next() in a try/catch block, catching
* all PHP Throwables (PHP 7) and Exceptions (PHP 5.6 and earlier).
*
* When an exception is caught, an appropriate error response is created
* and returned instead; otherwise, the response returned by $next is
* used.
*
* @param ServerRequestInterface $request
* @param DelegateInterface $delegate
* @return ResponseInterface
*/
public function process(ServerRequestInterface $request, DelegateInterface $delegate)
{
set_error_handler($this->createErrorHandler());
try {
$response = $delegate->process($request);
if (! $response instanceof ResponseInterface) {
throw new MissingResponseException('Application did not return a response');
}
} catch (Throwable $e) {
$response = $this->handleThrowable($e, $request);
} catch (Exception $e) {
$response = $this->handleThrowable($e, $request);
}
restore_error_handler();
return $response;
}
/**
* Handles all throwables/exceptions, generating and returning a response.
*
* Passes the error, request, and response prototype to createErrorResponse(),
* triggers all listeners with the same arguments (but using the response
Arguments
/var
/www
/vhosts
/kfagg.com
/httpdocs
/vendor
/zendframework
/zend-expressive
/src
/Middleware
/LazyLoadingMiddleware.php
) {
$this->container = $container;
$this->responsePrototype = $responsePrototype;
$this->middlewareName = $middlewareName;
}
/**
* @param ServerRequestInterface $request
* @param DelegateInterface $delegate
* @return ResponseInterface
* @throws InvalidMiddlewareException for invalid middleware types pulled
* from the container.
*/
public function process(ServerRequestInterface $request, DelegateInterface $delegate)
{
$middleware = $this->container->get($this->middlewareName);
// http-interop middleware
if ($middleware instanceof ServerMiddlewareInterface) {
return $middleware->process($request, $delegate);
}
// Unknown - invalid!
if (! is_callable($middleware)) {
throw new InvalidMiddlewareException(sprintf(
'Lazy-loaded middleware "%s" is neither invokable nor implements %s',
$this->middlewareName,
ServerMiddlewareInterface::class
));
}
// Callable http-interop middleware
if ($this->isCallableInteropMiddleware($middleware)) {
return $middleware($request, $delegate);
}
// Legacy double-pass signature
return $middleware($request, $this->responsePrototype, function ($request, $response) use ($delegate) {
return $delegate->process($request);
});
Arguments
/var
/www
/vhosts
/kfagg.com
/httpdocs
/vendor
/zendframework
/zend-stratigility
/src
/Next.php
$normalizedRoute = (strlen($route) > 1) ? rtrim($route, '/') : $route;
// Skip if layer path does not match current url
if (substr(strtolower($path), 0, strlen($normalizedRoute)) !== strtolower($normalizedRoute)) {
return $this->process($request);
}
// Skip if match is not at a border ('/', '.', or end)
$border = $this->getBorder($path, $normalizedRoute);
if ($border && '/' !== $border && '.' !== $border) {
return $this->process($request);
}
// Trim off the part of the url that matches the layer route
if (! empty($route) && $route !== '/') {
$request = $this->stripRouteFromPath($request, $route);
}
$middleware = $layer->handler;
$response = $middleware->process($request, $this);
if (! $response instanceof ResponseInterface) {
throw new Exception\MissingResponseException(sprintf(
"Last middleware executed did not return a response.\nMethod: %s\nPath: %s\n.Handler: %s",
$request->getMethod(),
$request->getUri()->getPath(),
get_class($middleware)
));
}
return $response;
}
/**
* Toggle the "raise throwables" flag on.
*
* @deprecated Since 2.0.0; this functionality is now a no-op.
* @return void
*/
public function raiseThrowables()
Arguments
/var
/www
/vhosts
/kfagg.com
/httpdocs
/vendor
/zendframework
/zend-stratigility
/src
/MiddlewarePipe.php
$delegate = new Delegate\CallableDelegateDecorator($delegate, $response);
}
return $this->process($request, $delegate);
}
/**
* http-interop invocation: single-pass with delegate.
*
* Executes the internal pipeline, passing $delegate as the "final
* handler" in cases when the pipeline exhausts itself.
*
* @param Request $request
* @param DelegateInterface $delegate
* @return Response
*/
public function process(Request $request, DelegateInterface $delegate)
{
$next = new Next($this->pipeline, $delegate);
return $next->process($request);
}
/**
* Attach middleware to the pipeline.
*
* Each middleware can be associated with a particular path; if that
* path is matched when that middleware is invoked, it will be processed;
* otherwise it is skipped.
*
* No path means it should be executed every request cycle.
*
* A handler CAN implement MiddlewareInterface, but MUST be callable.
*
* @see MiddlewareInterface
* @see Next
* @param string|callable|object $path Either a URI path prefix, or middleware.
* @param null|callable|object $middleware Middleware
* @return self
*/
public function pipe($path, $middleware = null)
Arguments
/var
/www
/vhosts
/kfagg.com
/httpdocs
/vendor
/zendframework
/zend-expressive
/src
/Application.php
*/
public function run(ServerRequestInterface $request = null, ResponseInterface $response = null)
{
try {
$request = $request ?: ServerRequestFactory::fromGlobals();
} catch (InvalidArgumentException $e) {
// Unable to parse uploaded files
$this->emitMarshalServerRequestException($e);
return;
} catch (UnexpectedValueException $e) {
// Invalid request method
$this->emitMarshalServerRequestException($e);
return;
}
$response = $response ?: new Response();
$request = $request->withAttribute('originalResponse', $response);
$delegate = $this->getDefaultDelegate();
$response = $this->process($request, $delegate);
$emitter = $this->getEmitter();
$emitter->emit($response);
}
/**
* Retrieve the IoC container.
*
* If no IoC container is registered, we raise an exception.
*
* @return ContainerInterface
* @throws Exception\ContainerNotRegisteredException
*/
public function getContainer()
{
if (null === $this->container) {
throw new Exception\ContainerNotRegisteredException();
}
return $this->container;
}
Arguments
/var
/www
/vhosts
/kfagg.com
/httpdocs
/public
/index.php
<?php date_default_timezone_set('Asia/Almaty');
use Core\Facade\App;
chdir(dirname(__DIR__));
require 'vendor/autoload.php';
/**
* Self-called anonymous function that creates its own scope and keep the global namespace clean.
*/
call_user_func(function () {
App::init(require 'config/config.php');
App::initSession();
App::initPipeline();
App::getInstance()->run();
});
/var
/www
/vhosts
/kfagg.com
/httpdocs
/public
/index.php
<?php date_default_timezone_set('Asia/Almaty');
use Core\Facade\App;
chdir(dirname(__DIR__));
require 'vendor/autoload.php';
/**
* Self-called anonymous function that creates its own scope and keep the global namespace clean.
*/
call_user_func(function () {
App::init(require 'config/config.php');
App::initSession();
App::initPipeline();
App::getInstance()->run();
});