Phalcon Framework 3.4.5

Phalcon\Logger\Exception: Can't open log file at '/home/webtailieu.net/public_html/logs/2026/5/2026-05-30.debug.log'

/home/webtailieu.net/public_html/www/sys/core/providers/LoggerServiceProvider.php (83)
#0Phalcon\Logger\Adapter\File->__construct(/home/webtailieu.net/public_html/logs/2026/5/2026-05-30.debug.log)
/home/webtailieu.net/public_html/www/sys/core/providers/LoggerServiceProvider.php (83)
<?php
namespace QQ\Core\Provider;
 
use Phalcon\Logger;
use Phalcon\Logger\Adapter\File;
use Phalcon\Logger\Formatter\Line;
 
/**
 * \QQ\Core\Provider\LoggerServiceProvider
 *
 * @package QQ\Core\Provider
 */
class LoggerServiceProvider extends AbstractServiceProvider
{
    const DEFAULT_LEVEL = 'debug';
    const DEFAULT_FORMAT = '[%date%][%type%] %message%';
 
    /**
     * The Service name.
     * @var string
     */
    protected $serviceName = 'logger';
 
    protected $logLevels = [
        'emergency' => Logger::EMERGENCY,
        'emergence' => Logger::EMERGENCE,
        'critical'  => Logger::CRITICAL,
        'alert'     => Logger::ALERT,
        'error'     => Logger::ERROR,
        'warning'   => Logger::WARNING,
        'notice'    => Logger::NOTICE,
        'info'      => Logger::INFO,
        'debug'     => Logger::DEBUG,
        'custom'    => Logger::CUSTOM,
        'special'   => Logger::SPECIAL,
    ];
 
    /**
     * {@inheritdoc}
     *
     * @return void
     */
    public function register()
    {
        $logLevels = $this->logLevels;
 
        $this->di->set(
            $this->serviceName,
            function ($filename = null) use ($logLevels) {
                /** @var \Phalcon\DiInterface $this */
                $config = $this->getShared('config')->application->logger;
 
                if (!isset($config->level)) {
                    $level = self::DEFAULT_LEVEL;
                } else {
                    $level = strtolower($config->level);
                }
 
                if (!isset($logLevels[$level])) {
                    $level = Logger::DEBUG;
                } else {
                    $level = $logLevels[$level];
                }
 
                if (!isset($config->format)) {
                    $format = self::DEFAULT_FORMAT;
                } else {
                    $format = $config->format;
                }
 
                $path = logs_path(date('Y') . DIRECTORY_SEPARATOR . date('n'));
                if (!file_exists($path)) {
                    mkdir($path, 0777, true);
                }
 
                $label = 'info';
                foreach($logLevels as $key=>$value){
                    if ($level == $value) $label = $key;
                }
 
                $filename = ($filename ? $path . DIRECTORY_SEPARATOR . $filename : $path . DIRECTORY_SEPARATOR . date('Y-m-d')) . '.' . $label . '.log';
 
                $logger = new File($filename);
 
                $logger->setFormatter(new Line($format));
                $logger->setLogLevel($level);
                return $logger;
            }
        );
    }
}
#1QQ\Core\Provider\LoggerServiceProvider->QQ\Core\Provider\{closure}()
#2Phalcon\Di\Service->resolve(null, Object(Phalcon\Di))
#3Phalcon\Di->get(logger, null)
#4Phalcon\Di->getShared(logger)
/home/webtailieu.net/public_html/www/sys/core/managers/TranslationManager.php (60)
<?php
 
namespace QQ\Core\Manager;
 
use Phalcon\Translate\Adapter\Gettext;
use Phalcon\Translate\Adapter\NativeArray;
use QQ\Core\Model\Services\Service\Translation;
use Phalcon\Mvc\User\Component;
use QQ\Core\Tool\QFunction as Q;
 
/**
 * \QQ\Core\TranslationManager
 *
 * @package QQ\Core
 */
class TranslationManager extends Component
{
    /**
     * The Theme name.
     * @var string
     */
    
    protected $adapter;
 
    /**
     * ThemeManager constructor.
     *
     * @param string $name The Theme name.
     */
    public function __construct()
    {
        
        // $this->adapter = $this->load();
    }
    public function getAdapter(){
        return $this->adapter;
    }
 
    public function load($language, $module = 'frontend', $theme = 'default', $prefix = ''){
        /*
                $language = $this->getShared('config')->language;
                $code     = $language->code;
 
                if ($this->getShared('cookies')->has('code')) {
                    $code = $this->getShared('cookies')->get('code')->getValue();
                }
 
                if ($language->gettext) {
                    return new Gettext([
                        'locale'        => $code,
                        'directory'     => app_path('sys/lang'),
                        'defaultDomain' => 'messages',
                    ]);
                }
                */
                $language = $language ?: $this->di->getShared('session')->get('current_lang');
                $path = themes_path($module,"{$prefix}{$theme}/messages/{$language}.php");
 
                if (!file_exists($path)) {
                    $this->di->getShared('logger')->error("You must specify a language file for language '$language'");
                    //$path = themes_path($module,"{$theme}/messages/{$code}.php");
                }else{
                    /** @noinspection PhpIncludeInspection */
                    $data = @include $path;
                    if (!is_array($data)) {
                        $this->di->getShared('logger')->error(
                            "Translation data [{$path}] for language '$language' must be an array. Got: " . gettype($data)
                        );
                        $data = [];
                    }
                    $this->adapter = new NativeArray(['content' => $data]);
                }
 
    }
}
#5QQ\Core\Manager\TranslationManager->load(null, error, default, )
/home/webtailieu.net/public_html/www/modules/error/Module.php (60)
<?php
namespace QQ\Module\Error;
 
use Phalcon\Loader;
use Phalcon\DiInterface;
use QQ\Core\Module as BaseModule;
use QQ\Core\Library\Events\ViewListener;
 
/**
 * \QQ\Module\Error\Module
 *
 */
class Module extends BaseModule
{
    /**
     * {@inheritdoc}
     *
     * @return string
     */
    public function getHandlersNamespace()
    {
        return 'QQ\Module\Error\Controller';
    }
 
    /**
     * Registers an autoloader related to the module.
     *
     * @param DiInterface $di
     */
    public function registerAutoloaders(DiInterface $di = null)
    {
        $loader = new Loader();
 
        $namespaces = [
            $this->getHandlersNamespace() => __DIR__ . '/controllers/',
        ];
 
        $loader->registerNamespaces($namespaces, true);
 
        $loader->register();
    }
 
    /**
     * Registers services related to the module.
     *
     * @param DiInterface $di
     */
    public function registerServices(DiInterface $di)
    {
        // Read configuration
        $moduleConfig = require __DIR__ . '/config/config.php';
 
        $eventsManager = $di->getShared('eventsManager');
        $eventsManager->attach('view:notFoundView', new ViewListener($di));
        // Setting up the View Component
        $theme = $di->getShared('theme');
        $theme->setModuleName('error');
        $theme->setThemeName('default');
        // Load translation
        $di->getShared('translation')->load($lang = null, $module='error', $theme->getThemeName(), $prefix = '');
 
 
        // Setting up the View Component
        $view = $di->getShared('view');
        $view->setViewsDir($moduleConfig['viewsDir']);
    }
}
#6QQ\Module\Error\Module->registerServices(Object(Phalcon\Di))
/home/webtailieu.net/public_html/www/sys/core/Module.php (47)
<?php
namespace QQ\Core;
 
use Phalcon\DiInterface;
use Phalcon\Events\Manager;
use Phalcon\Events\ManagerInterface;
 
/**
 * \QQ\Core\Module
 *
 * @package QQ\Core
 */
abstract class Module implements ModuleInterface
{
    /**
     * @var DiInterface
     */
    protected $di;
 
    /**
     * @var Manager
     */
    protected $eventsManager;
 
    /**
     * Module constructor.
     *
     * @param DiInterface  $di
     * @param Manager|null $manager
     */
    public function __construct(DiInterface $di = null, Manager $manager = null)
    {
        $this->di = $di ?: container();
        $this->eventsManager = $manager;
    }
 
    /**
     * Initialize module.
     */
    public function initialize()
    {
//        $module = $this->di->getShared('router')->getModuleName();
 
 
//        $this->di->getShared('logger')->info('Module is initializing ' . $module);
        $this->registerAutoloaders($this->di);
        $this->registerServices($this->di);
    }
 
    /**
     * Returns the internal event manager.
     *
     * @return ManagerInterface
     */
    public function getEventsManager()
    {
        $eventsManager = $this->eventsManager;
 
        if ($eventsManager instanceof ManagerInterface) {
            return $eventsManager;
        }
 
        if ($this->di->has('eventsManager')) {
            $eventsManager = $this->di->getShared('eventsManager');
        } else {
            $eventsManager = new Manager();
            $eventsManager->enablePriorities(true);
        }
 
        $this->setEventsManager($eventsManager);
 
        return $eventsManager;
    }
 
    /**
     * Sets the events manager.
     *
     * @param  ManagerInterface $eventsManager
     * @return $this
     */
    public function setEventsManager(ManagerInterface $eventsManager)
    {
        $this->eventsManager = $eventsManager;
 
        return $this;
    }
}
#7QQ\Core\Module->initialize()
/home/webtailieu.net/public_html/www/sys/core/providers/ModulesServiceProvider.php (146)
<?php
namespace QQ\Core\Provider;
 
use Phalcon\Registry;
use RecursiveDirectoryIterator;
use QQ\Module\Cli\Module as Cli;
use QQ\Module\Error\Module as Error;
use QQ\Module\Backend\Module as Backend;
use QQ\Module\Frontend\Module as Frontend;
use QQ\Module\Oauth\Module as oAuth;
use QQ\Module\Cms\Module as Cms;
use QQ\Module\Dashboard\Module as Dashboard;
use Phalcon\Cli\Console as ConsoleApplication;
use Phalcon\Mvc\Application as MvcApplication;
 
/**
 * \QQ\Core\Providers\ModulesServiceProvider
 *
 * @package QQ\Core\Providers
 */
class ModulesServiceProvider extends AbstractServiceProvider
{
    /**
     * The Service name.
     * @var string
     */
    protected $serviceName = 'modules';
 
    protected $modules = [];
 
    /**
     * {@inheritdoc}
     *
     * @return void
     */
    public function configure()
    {
        $directory = new RecursiveDirectoryIterator(modules_path());
        $modules = getenv("APP_MODULES");
        $modules = explode(',', $modules);
        foreach ($directory as $item) {
            $name = $item->getFilename();
            if (!$item->isDir() || $name[0] == '.') {
                continue;
            }
            if(in_array($name, $modules) || empty($modules)){
                $class = implode('', array_map('ucfirst', explode('-', $name)));
                $this->modules[$name] = [
                    'className' => 'QQ\\Module\\' . $class . '\\Module',
                    'path'      => modules_path("{$name}/Module.php"),
                    'router'    => modules_path("{$name}/config/routing.php"),
                    'api'       => modules_path("{$name}/config/routing-api.php")
                ];
            }
        }
 
        $core = [
            'error' => [
                'className' => Error::class,
                'path'      => modules_path('error/Module.php'),
                'router'    => modules_path('error/config/routing.php'),
                'api'       => modules_path("error/config/routing-api.php")
 
            ],
            'frontend' => [
                'className' => Frontend::class,
                'path'      => modules_path('frontend/Module.php'),
                'router'    => modules_path('frontend/config/routing.php'),
                'api'       => modules_path("frontend/config/routing-api.php")
 
            ],
            'oauth' => [
                'className' => oAuth::class,
                'path'      => modules_path('oauth/Module.php'),
                'router'    => modules_path('oauth/config/routing.php'),
                'api'       => modules_path("oauth/config/routing-api.php")
 
            ],
            'backend' => [
                'className' => Backend::class,
                'path'      => modules_path('backend/Module.php'),
                'router'    => modules_path('backend/config/routing.php'),
                'api'       => modules_path("backend/config/routing-api.php")
            ],
            'cli' => [
                'className' => Cli::class,
                'path'      => modules_path('cli/Module.php'),
                'router'    => modules_path('cli/config/routing.php'),
                'api'       => modules_path("cli/config/routing-api.php")
            ],
            'cms' => [
                'className' => Cms::class,
                'path'      => modules_path('cms/Module.php'),
                'router'    => modules_path('cms/config/routing.php'),
                'api'       => modules_path("cms/config/routing-api.php")
            ],
            'dashboard' => [
                'className' => Dashboard::class,
                'path'      => modules_path('dashboard/Module.php'),
                'router'    => modules_path('dashboard/config/routing.php'),
                'api'       => modules_path("dashboard/config/routing-api.php")
            ],
        ];
 
        $this->modules = array_merge($core, $this->modules);
    }
 
    /**
     * {@inheritdoc}
     *
     * @return void
     */
    public function register()
    {
        $modules = $this->modules;
        $this->di->setShared(
            $this->serviceName,
            function () use ($modules) {
                $modulesRegistry = new Registry();
 
                foreach ($modules as $name => $module) {
                    $modulesRegistry->offsetSet($name, (object) $module);
                }
                return $modulesRegistry;
            }
        );
    }
 
    /**
     * {@inheritdoc}
     *
     * @return void
     */
    public function boot()
    {
        $modules = [];
        foreach ($this->modules as $name => $module) {
            $modules[$name] = function () use ($module) {
                $moduleClass = $module['className'];
                if (!class_exists($moduleClass)) {
                    /** @noinspection PhpIncludeInspection */
                    include_once $module['path'];
                }
                /** @var \QQ\Core\ModuleInterface $moduleBootstrap */
                $moduleBootstrap = new $moduleClass(container());
                $moduleBootstrap->initialize();
                return $moduleBootstrap;
            };
 
            $this->getDI()->setShared($module['className'], $modules[$name]);
        }
 
        /** @var MvcApplication|ConsoleApplication $application */
        $application = container('bootstrap')->getApplication();
 
        if ($application instanceof ConsoleApplication) {
            $application->registerModules($this->modules);
        } else {
            $application->registerModules($modules);
        }
    }
}
#8QQ\Core\Provider\ModulesServiceProvider->QQ\Core\Provider\{closure}()
#9Phalcon\Di\Service->resolve(null, Object(Phalcon\Di))
#10Phalcon\Di->get(QQ\Module\Error\Module)
/home/webtailieu.net/public_html/www/bootstrap/helpers.php (189)
<?php
 
use Phalcon\Di;
 
if (!function_exists('t')) {
    /**
     * Translation function call anywhere.
     * Returns the translation string of the given key.
     *
     * @param  string $string       The string to be translated
     * @param  array  $placeholders The placeholders
     * @return string
     */
    function t($string, array $placeholders = null)
    {
        $di = Di::getDefault();
        if ($di && $di->has('translation')) {
            /** @var \Phalcon\Translate\Adapter $translation */
            $translation = $di->getShared('translation')->getAdapter();
            if($translation) return $translation->t($string, $placeholders);
        }
 
        return $string;
    }
}
 
if (!function_exists('app_path')) {
    /**
     * Get the Application path.
     *
     * @param  string $path
     * @return string
     */
    function app_path($path = '')
    {
        return ROOT_DIR . ($path ? DIRECTORY_SEPARATOR . $path : $path);
    }
}
 
if (!function_exists('config_path')) {
    /**
     * Get the configuration path.
     *
     * @param  string $path
     * @return string
     */
    function config_path($path = '')
    {
        return app_path('sys' . DIRECTORY_SEPARATOR . 'core' . DIRECTORY_SEPARATOR . 'config') . ($path ? DIRECTORY_SEPARATOR . $path : $path);
    }
}
 
if (!function_exists('content_path')) {
    /**
     * Get the content path.
     *
     * @param  string $path
     * @return string
     */
    function content_path($path = '')
    {
        return app_path('content') . ($path ? DIRECTORY_SEPARATOR . $path : $path);
    }
}
 
if (!function_exists('themes_path')) {
    /**
     * Get the themes path.
     *
     * @param  string $path
     * @return string
     */
    function themes_path($module = 'frontend', $path = '')
    {
        return modules_path($module . DIRECTORY_SEPARATOR . 'themes') . (($path && $path !== DIRECTORY_SEPARATOR) ? DIRECTORY_SEPARATOR . $path : $path);
    }
}
if (!function_exists('plugins_path')) {
    /**
     * Get the plugins path.
     *
     * @param  string $path
     * @return string
     */
    function plugins_path($path = '')
    {
        return modules_path('plugins') . ($path ? DIRECTORY_SEPARATOR . $path : $path);
    }
}
 
if (!function_exists('modules_path')) {
    /**
     * Get the modules path.
     *
     * @param  string $path
     * @return string
     */
    function modules_path($path = '')
    {
        return app_path('modules') . ($path ? DIRECTORY_SEPARATOR . $path : $path);
    }
}
 
if (!function_exists('module_plugins_path')) {
    /**
     * Get the modules path.
     *
     * @param  string $path
     * @return string
     */
    function module_plugins_path($module, $path = '')
    {
        return modules_path($module . DIRECTORY_SEPARATOR . 'plugins') . ($path ? DIRECTORY_SEPARATOR . $path : $path);
    }
}
 
if (!function_exists('logs_path')) {
    /**
     * Get the logs path.
     *
     * @param  string $path
     * @return string
     */
    function logs_path($path = '')
    {
        return dirname(ROOT_DIR) . DIRECTORY_SEPARATOR . 'logs' . ($path ? DIRECTORY_SEPARATOR . $path : $path);
    }
}
 
if (!function_exists('value')) {
    /**
     * Return the default value of the given value.
     *
     * @param  mixed $value
     * @return mixed
     */
    function value($value)
    {
        return $value instanceof Closure ? $value() : $value;
    }
}
 
if (!function_exists('env')) {
    /**
     * Gets the value of an environment variable.
     *
     * @param  string $key
     * @param  mixed  $default
     * @return mixed
     */
    function env($key, $default = null)
    {
        $value = getenv($key);
 
        if ($value === false) {
            return value($default);
        }
 
        switch (strtolower($value)) {
            case 'true':
                return true;
            case 'false':
                return false;
            case 'empty':
                return '';
            case 'null':
                return null;
        }
 
        return $value;
    }
}
 
if (!function_exists('container')) {
    /**
     * Calls the default Dependency Injection container.
     *
     * @param  mixed
     * @return mixed|\Phalcon\DiInterface
     */
    function container()
    {
        $default = Di::getDefault();
        $args = func_get_args();
 
        if (empty($args)) {
            return $default;
        }
        return call_user_func_array([$default, 'get'], $args);
    }
}
if (!function_exists('content_modules_path')) {
    /**
     * Get the modules path.
     *
     * @param  string $path
     * @return string
     */
    function content_modules_path($path = '')
    {
        return content_path('modules') . ($path ? DIRECTORY_SEPARATOR . $path : $path);
    }
}
#11container(QQ\Module\Error\Module)
/home/webtailieu.net/public_html/www/sys/core/library/Events/DispatcherListener.php (42)
<?php
namespace QQ\Core\Library\Events;
 
use Phalcon\Dispatcher;
use Phalcon\Events\Event;
use Phalcon\Mvc\Dispatcher\Exception;
use Phalcon\Di\Exception as DiException;
 
/**
 * \QQ\Core\Library\Events\DispatcherListener
 *
 */
class DispatcherListener extends AbstractEvent
{
    /**
     * Before forwarding is happening.
     *
     * @param Event      $event      Event object.
     * @param Dispatcher $dispatcher Dispatcher object.
     * @param array      $forward    The forward data.
     *
     * @return bool
     * @throws Exception
     * @throws DiException
     */
    public function beforeForward(Event $event, Dispatcher $dispatcher, array $forward)
    {
        if (!empty($forward['module'])) {
            if (!container('modules')->offsetExists($forward['module'])) {
                throw new Exception("Module {$forward['module']} does not exist.");
            }
 
            $moduleDefinition = container('modules')->offsetGet($forward['module']);
 
            if (!container()->has($moduleDefinition->className)) {
                throw new DiException(
                    "Service '{$moduleDefinition->className}' wasn't found in the dependency injection container"
                );
            }
 
            /** @var \QQ\Core\ModuleInterface $module */
            $module = container($moduleDefinition->className);
 
            $dispatcher->setModuleName($forward['module']);
            $dispatcher->setNamespaceName($module->getHandlersNamespace());
        }
 
        return true;
    }
 
    /**
     * Before exception is happening.
     *
     * @param Event      $event      Event object.
     * @param Dispatcher $dispatcher Dispatcher object.
     * @param \Exception $exception  Exception object.
     *
     * @throws \Exception
     * @return bool
     */
    public function beforeException(Event $event, Dispatcher $dispatcher, $exception)
    {
        $module = $dispatcher->getModuleName();
        if ($exception instanceof \Exception) {
            $dispatcher->setModuleName('error');
            switch ($exception->getCode()) {
                case Dispatcher::EXCEPTION_CYCLIC_ROUTING:
                    $code = 400;
                    $dispatcher->forward([
                        'module'     => 'error',
                        'namespace'  => 'QQ\Module\Error\Controller',
                        'controller' => 'index',
                        'action'     => 'show400',
                    ]);
 
                    break;
                default:
                    $code = 404;
                    $dispatcher->forward([
                        'module'     => 'error',
                        'namespace'  => 'QQ\Module\Error\Controller',
                        'controller' => 'index',
                        'action'     => 'show404',
                    ]);
 
                    break;
            }
 
            $this->logger->error($module . " [$code]: " . $exception->getMessage());
 
            return false;
        }
 
        if (env('APPLICATION_ENV') !== ENV_PRODUCTION && $exception instanceof \Exception) {
            $this->logger->error($module . " [{$exception->getCode()}]: " . $exception->getMessage());
 
            throw $exception;
        }
 
        $dispatcher->forward([
            'module'     => 'error',
            'namespace'  => 'QQ\Module\Error\Controller',
            'controller' => 'index',
            'action'     => 'show500',
        ]);
 
        return $event->isStopped();
    }
}
#12QQ\Core\Library\Events\DispatcherListener->beforeForward(Object(Phalcon\Events\Event), Object(QQ\Core\Library\Mvc\Dispatcher), Array([module] => error, [namespace] => QQ\Module\Error\Controller, [controller] => index, [action] => show404))
#13Phalcon\Events\Manager->fireQueue(Object(SplPriorityQueue), Object(Phalcon\Events\Event))
#14Phalcon\Events\Manager->fire(dispatch:beforeForward, Object(QQ\Core\Library\Mvc\Dispatcher), Array([module] => error, [namespace] => QQ\Module\Error\Controller, [controller] => index, [action] => show404))
/home/webtailieu.net/public_html/www/sys/core/library/Mvc/Dispatcher.php (20)
<?php
namespace QQ\Core\Library\Mvc;
 
use Phalcon\Mvc\Dispatcher as PhDispatcher;
 
/**
 * \QQ\Core\Library\Mvc\Dispatcher
 *
 * @package QQ\Core\Library\Mvc
 */
class Dispatcher extends PhDispatcher
{
    /**
     * {@inheritdoc}
     *
     * @param array $forward
     */
    public function forward($forward)
    {
        $this->getEventsManager()->fire('dispatch:beforeForward', $this, $forward);
 
        parent::forward($forward);
    }
}
#15QQ\Core\Library\Mvc\Dispatcher->forward(Array([module] => error, [namespace] => QQ\Module\Error\Controller, [controller] => index, [action] => show404))
/home/webtailieu.net/public_html/www/sys/core/library/Events/DispatcherListener.php (80)
<?php
namespace QQ\Core\Library\Events;
 
use Phalcon\Dispatcher;
use Phalcon\Events\Event;
use Phalcon\Mvc\Dispatcher\Exception;
use Phalcon\Di\Exception as DiException;
 
/**
 * \QQ\Core\Library\Events\DispatcherListener
 *
 */
class DispatcherListener extends AbstractEvent
{
    /**
     * Before forwarding is happening.
     *
     * @param Event      $event      Event object.
     * @param Dispatcher $dispatcher Dispatcher object.
     * @param array      $forward    The forward data.
     *
     * @return bool
     * @throws Exception
     * @throws DiException
     */
    public function beforeForward(Event $event, Dispatcher $dispatcher, array $forward)
    {
        if (!empty($forward['module'])) {
            if (!container('modules')->offsetExists($forward['module'])) {
                throw new Exception("Module {$forward['module']} does not exist.");
            }
 
            $moduleDefinition = container('modules')->offsetGet($forward['module']);
 
            if (!container()->has($moduleDefinition->className)) {
                throw new DiException(
                    "Service '{$moduleDefinition->className}' wasn't found in the dependency injection container"
                );
            }
 
            /** @var \QQ\Core\ModuleInterface $module */
            $module = container($moduleDefinition->className);
 
            $dispatcher->setModuleName($forward['module']);
            $dispatcher->setNamespaceName($module->getHandlersNamespace());
        }
 
        return true;
    }
 
    /**
     * Before exception is happening.
     *
     * @param Event      $event      Event object.
     * @param Dispatcher $dispatcher Dispatcher object.
     * @param \Exception $exception  Exception object.
     *
     * @throws \Exception
     * @return bool
     */
    public function beforeException(Event $event, Dispatcher $dispatcher, $exception)
    {
        $module = $dispatcher->getModuleName();
        if ($exception instanceof \Exception) {
            $dispatcher->setModuleName('error');
            switch ($exception->getCode()) {
                case Dispatcher::EXCEPTION_CYCLIC_ROUTING:
                    $code = 400;
                    $dispatcher->forward([
                        'module'     => 'error',
                        'namespace'  => 'QQ\Module\Error\Controller',
                        'controller' => 'index',
                        'action'     => 'show400',
                    ]);
 
                    break;
                default:
                    $code = 404;
                    $dispatcher->forward([
                        'module'     => 'error',
                        'namespace'  => 'QQ\Module\Error\Controller',
                        'controller' => 'index',
                        'action'     => 'show404',
                    ]);
 
                    break;
            }
 
            $this->logger->error($module . " [$code]: " . $exception->getMessage());
 
            return false;
        }
 
        if (env('APPLICATION_ENV') !== ENV_PRODUCTION && $exception instanceof \Exception) {
            $this->logger->error($module . " [{$exception->getCode()}]: " . $exception->getMessage());
 
            throw $exception;
        }
 
        $dispatcher->forward([
            'module'     => 'error',
            'namespace'  => 'QQ\Module\Error\Controller',
            'controller' => 'index',
            'action'     => 'show500',
        ]);
 
        return $event->isStopped();
    }
}
#16QQ\Core\Library\Events\DispatcherListener->beforeException(Object(Phalcon\Events\Event), Object(QQ\Core\Library\Mvc\Dispatcher), Object(Phalcon\Logger\Exception))
#17Phalcon\Events\Manager->fireQueue(Object(SplPriorityQueue), Object(Phalcon\Events\Event))
#18Phalcon\Events\Manager->fire(dispatch:beforeException, Object(QQ\Core\Library\Mvc\Dispatcher), Object(Phalcon\Logger\Exception))
#19Phalcon\Mvc\Dispatcher->_handleException(Object(Phalcon\Logger\Exception))
#20Phalcon\Dispatcher->dispatch()
#21Phalcon\Mvc\Application->handle()
/home/webtailieu.net/public_html/www/sys/core/Application.php (141)
<?php
namespace QQ\Core;
 
use Phalcon\Di;
use Dotenv\Dotenv;
use Phalcon\Di\Service;
use Phalcon\DiInterface;
use InvalidArgumentException;
use Phalcon\Di\ServiceInterface;
use Phalcon\Http\ResponseInterface;
use Phalcon\Mvc\Application as MvcApplication;
use Phalcon\Application as AbstractApplication;
use QQ\Core\Provider\ModulesServiceProvider;
use QQ\Core\Provider\ServiceProviderInterface;
use QQ\Core\Provider\EventManagerServiceProvider;
 
class Application
{
    /**
     * The Dependency Injector.
     * @var DiInterface
     */
    protected $di;
 
    /**
     * The Service Providers.
     * @var ServiceProviderInterface[]
     */
    protected $serviceProviders = [];
 
    /**
     * The Application Services.
     * @var ServiceInterface[]
     */
    protected $services = [];
 
    /**
     * The Phalcon Application.
     * @var AbstractApplication
     */
    protected $app;
 
    /**
     * The Application mode
     * @var string
     */
    protected $mode;
 
    /**
     * Application constructor.
     *
     * @param string $mode The Application mode: either "normal" either "cli" or "api".
     */
    public function __construct($mode = 'normal')
    {
        $dotenv = new Dotenv(realpath(ROOT_DIR));
        $dotenv->load();
 
        $this->di = new Di();
        $this->app = $this->createInternalApplication($mode);
        $this->di->setShared('dotenv', $dotenv);
        $this->di->setShared('bootstrap', $this);
 
        Di::setDefault($this->di);
        $this->initializeServiceProvider(new EventManagerServiceProvider($this->di));
        $this->initializeServiceProvider(new ModulesServiceProvider($this->di));
//        var_dump(get_included_files());exit();
        /** @noinspection PhpIncludeInspection */
        $providers = require config_path('providers.php');
        if (is_array($providers)) {
            $this->initializeServiceProviders($providers);
        }
 
        $this->app->setEventsManager($this->di->getShared('eventsManager'));
        $this->app->setDI($this->di);
 
        /** @noinspection PhpIncludeInspection */
        $services = require config_path('services.php');
        if (is_array($services)) {
            $this->initializeServices($services);
        }
    }
 
    /**
     * Runs the Application.
     *
     * @return string
     */
    public function run()
    {
        return $this->getOutput();
    }
 
    /**
     * Get current Application instance.
     *
     * @return AbstractApplication|Console|MvcApplication
     */
    public function getApplication()
    {
        return $this->app;
    }
 
    /**
     * Get Application mode.
     *
     * @return string
     */
    public function getMode()
    {
        return $this->mode;
    }
 
    /**
     * Get registered service providers.
     *
     * @return ServiceProviderInterface[]
     */
    public function getServiceProviders()
    {
        return $this->serviceProviders;
    }
 
    /**
     * Get registered services.
     *
     * @return ServiceInterface[]
     */
    public function getServices()
    {
        return $this->services;
    }
 
    /**
     * Get Application output.
     *
     * @return ResponseInterface|string
     */
    protected function getOutput()
    {
        $response = $this->app->handle();
        if ($this->app instanceof MvcApplication) {
            return $response->getContent();
        } else {
            return $response;
        }
    }
 
    /**
     * Initialize Services in the Dependency Injector Container.
     *
     * @param  string[] $providers
     * @return $this
     */
    protected function initializeServiceProviders(array $providers)
    {
        foreach ($providers as $name => $class) {
            $this->initializeServiceProvider(new $class($this->di));
        }
 
        return $this;
    }
 
    /**
     * Register services in the Dependency Injector Container.
     *
     * This allows to inject dependencies by using abstract classes.
     *
     * <code>
     * $services = [
     *     '\My\Awesome\Logger\Interface' => '\My\Concrete\Logger'
     * ];
     *
     * $application->initializeModelServices($services);
     * </code>
     *
     * @param  string[] $services
     * @return $this
     */
    protected function initializeServices(array $services)
    {
        foreach ($services as $abstract => $concrete) {
            $service = new Service($abstract, $concrete, true);
            $this->di->setRaw($abstract, $service);
 
            $this->services[$abstract] = $service;
        }
 
        return $this;
    }
 
    /**
     * Initialize the Service in the Dependency Injector Container.
     *
     * @param  ServiceProviderInterface $serviceProvider
     * @return $this
     */
    protected function initializeServiceProvider(ServiceProviderInterface $serviceProvider)
    {
        $serviceProvider->register();
        $serviceProvider->boot();
 
        $this->serviceProviders[$serviceProvider->getName()] = $serviceProvider;
 
        return $this;
    }
 
    /**
     * Create internal Application to handle requests.
     *
     * @param  string $mode The Application mode.
     * @return Console|MvcApplication
     *
     * @throws InvalidArgumentException
     */
    protected function createInternalApplication($mode)
    {
        $this->mode = $mode;
        switch ($mode) {
            case 'normal':
                return new MvcApplication($this->di);
            case 'cli':
                return new Console($this->di);
            case 'api':
                throw new InvalidArgumentException(
                    'Not implemented yet.'
                );
            default:
                throw new InvalidArgumentException(
                    sprintf(
                        'Invalid Application mode. Expected either "normal" either "cli" or "api". Got %s',
                        is_scalar($mode) ? $mode : var_export($mode, true)
                    )
                );
        }
    }
}
#22QQ\Core\Application->getOutput()
/home/webtailieu.net/public_html/www/sys/core/Application.php (91)
<?php
namespace QQ\Core;
 
use Phalcon\Di;
use Dotenv\Dotenv;
use Phalcon\Di\Service;
use Phalcon\DiInterface;
use InvalidArgumentException;
use Phalcon\Di\ServiceInterface;
use Phalcon\Http\ResponseInterface;
use Phalcon\Mvc\Application as MvcApplication;
use Phalcon\Application as AbstractApplication;
use QQ\Core\Provider\ModulesServiceProvider;
use QQ\Core\Provider\ServiceProviderInterface;
use QQ\Core\Provider\EventManagerServiceProvider;
 
class Application
{
    /**
     * The Dependency Injector.
     * @var DiInterface
     */
    protected $di;
 
    /**
     * The Service Providers.
     * @var ServiceProviderInterface[]
     */
    protected $serviceProviders = [];
 
    /**
     * The Application Services.
     * @var ServiceInterface[]
     */
    protected $services = [];
 
    /**
     * The Phalcon Application.
     * @var AbstractApplication
     */
    protected $app;
 
    /**
     * The Application mode
     * @var string
     */
    protected $mode;
 
    /**
     * Application constructor.
     *
     * @param string $mode The Application mode: either "normal" either "cli" or "api".
     */
    public function __construct($mode = 'normal')
    {
        $dotenv = new Dotenv(realpath(ROOT_DIR));
        $dotenv->load();
 
        $this->di = new Di();
        $this->app = $this->createInternalApplication($mode);
        $this->di->setShared('dotenv', $dotenv);
        $this->di->setShared('bootstrap', $this);
 
        Di::setDefault($this->di);
        $this->initializeServiceProvider(new EventManagerServiceProvider($this->di));
        $this->initializeServiceProvider(new ModulesServiceProvider($this->di));
//        var_dump(get_included_files());exit();
        /** @noinspection PhpIncludeInspection */
        $providers = require config_path('providers.php');
        if (is_array($providers)) {
            $this->initializeServiceProviders($providers);
        }
 
        $this->app->setEventsManager($this->di->getShared('eventsManager'));
        $this->app->setDI($this->di);
 
        /** @noinspection PhpIncludeInspection */
        $services = require config_path('services.php');
        if (is_array($services)) {
            $this->initializeServices($services);
        }
    }
 
    /**
     * Runs the Application.
     *
     * @return string
     */
    public function run()
    {
        return $this->getOutput();
    }
 
    /**
     * Get current Application instance.
     *
     * @return AbstractApplication|Console|MvcApplication
     */
    public function getApplication()
    {
        return $this->app;
    }
 
    /**
     * Get Application mode.
     *
     * @return string
     */
    public function getMode()
    {
        return $this->mode;
    }
 
    /**
     * Get registered service providers.
     *
     * @return ServiceProviderInterface[]
     */
    public function getServiceProviders()
    {
        return $this->serviceProviders;
    }
 
    /**
     * Get registered services.
     *
     * @return ServiceInterface[]
     */
    public function getServices()
    {
        return $this->services;
    }
 
    /**
     * Get Application output.
     *
     * @return ResponseInterface|string
     */
    protected function getOutput()
    {
        $response = $this->app->handle();
        if ($this->app instanceof MvcApplication) {
            return $response->getContent();
        } else {
            return $response;
        }
    }
 
    /**
     * Initialize Services in the Dependency Injector Container.
     *
     * @param  string[] $providers
     * @return $this
     */
    protected function initializeServiceProviders(array $providers)
    {
        foreach ($providers as $name => $class) {
            $this->initializeServiceProvider(new $class($this->di));
        }
 
        return $this;
    }
 
    /**
     * Register services in the Dependency Injector Container.
     *
     * This allows to inject dependencies by using abstract classes.
     *
     * <code>
     * $services = [
     *     '\My\Awesome\Logger\Interface' => '\My\Concrete\Logger'
     * ];
     *
     * $application->initializeModelServices($services);
     * </code>
     *
     * @param  string[] $services
     * @return $this
     */
    protected function initializeServices(array $services)
    {
        foreach ($services as $abstract => $concrete) {
            $service = new Service($abstract, $concrete, true);
            $this->di->setRaw($abstract, $service);
 
            $this->services[$abstract] = $service;
        }
 
        return $this;
    }
 
    /**
     * Initialize the Service in the Dependency Injector Container.
     *
     * @param  ServiceProviderInterface $serviceProvider
     * @return $this
     */
    protected function initializeServiceProvider(ServiceProviderInterface $serviceProvider)
    {
        $serviceProvider->register();
        $serviceProvider->boot();
 
        $this->serviceProviders[$serviceProvider->getName()] = $serviceProvider;
 
        return $this;
    }
 
    /**
     * Create internal Application to handle requests.
     *
     * @param  string $mode The Application mode.
     * @return Console|MvcApplication
     *
     * @throws InvalidArgumentException
     */
    protected function createInternalApplication($mode)
    {
        $this->mode = $mode;
        switch ($mode) {
            case 'normal':
                return new MvcApplication($this->di);
            case 'cli':
                return new Console($this->di);
            case 'api':
                throw new InvalidArgumentException(
                    'Not implemented yet.'
                );
            default:
                throw new InvalidArgumentException(
                    sprintf(
                        'Invalid Application mode. Expected either "normal" either "cli" or "api". Got %s',
                        is_scalar($mode) ? $mode : var_export($mode, true)
                    )
                );
        }
    }
}
#23QQ\Core\Application->run()
/home/webtailieu.net/public_html/www/public/index.php (30)
<?php
header('Content-Type: text/html; charset=utf-8');
mb_internal_encoding("UTF-8");
if( ! ini_get('date.timezone') )
{
    date_default_timezone_set('Asia/Bangkok');
}
ini_set('display_errors', "On");
ini_set('max_execution_time', 3000);
error_reporting(E_ALL & ~E_NOTICE & ~E_WARNING );
//set_error_handler(function($errno, $errstr, $errfile, $errline) {
//    throw new \Exception($errstr.PHP_EOL.$errfile.":".$errline, $errno);
//});
use QQ\Core\Application;
 
// Register the auto loader
require __DIR__.'/../bootstrap/autoloader.php';
 
// Profiler
$profiler = new \Fabfuel\Prophiler\Profiler();
 
 
// Create the Application
$app = new Application();
if(getenv('APP_DEBUG')){
    $debug = new Phalcon\Debug();
    $debug->listen();
}
// Run the Application
echo $app->run();
?>
KeyValue
_url/danh-muc-tai-lieu-mien-phi/ky-thuat-cong-nghe/moi-truong/tat-ca-tai-lieu-moi-truong.27.html
KeyValue
PATH/bin:/usr/bin
HTTP_ACCEPT*/*
HTTP_ACCEPT_ENCODINGgzip, br
HTTP_HOSTwebtailieu.net
HTTP_REFERERhttp://webtailieu.net/danh-muc-tai-lieu-mien-phi/ky-thuat-cong-nghe/moi-truong/tat-ca-tai-lieu-moi-truong.27.html
HTTP_USER_AGENTMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; [email protected])
HTTP_X_FORWARDED_FOR216.73.216.7
HTTP_CF_RAYa0386bc18957b6ed-CMH
HTTP_CDN_LOOPcloudflare; loops=1
HTTP_CF_CONNECTING_IP216.73.216.7
HTTP_CF_IPCOUNTRYUS
HTTP_CF_VISITOR{"scheme":"https"}
HTTP_X_FORWARDED_PROTOhttps
DOCUMENT_ROOT/home/webtailieu.net/public_html/www
REMOTE_ADDR104.23.197.178
REMOTE_PORT11898
SERVER_ADDR167.179.93.206
SERVER_NAMEwebtailieu.net
SERVER_ADMIN[email protected]
SERVER_PORT443
REQUEST_URI/danh-muc-tai-lieu-mien-phi/ky-thuat-cong-nghe/moi-truong/tat-ca-tai-lieu-moi-truong.27.html
REDIRECT_URL/public/danh-muc-tai-lieu-mien-phi/ky-thuat-cong-nghe/moi-truong/tat-ca-tai-lieu-moi-truong.27.html
HTTPSon
REDIRECT_STATUS200
X_SPDYHTTP2
SSL_PROTOCOLTLSv1.3
SSL_CIPHERTLS_AES_128_GCM_SHA256
SSL_CIPHER_USEKEYSIZE128
SSL_CIPHER_ALGKEYSIZE128
LSWS_EDITIONOpenlitespeed 1.7.11
X-LSCACHEon,crawler
SCRIPT_FILENAME/home/webtailieu.net/public_html/www/public/index.php
QUERY_STRING_url=/danh-muc-tai-lieu-mien-phi/ky-thuat-cong-nghe/moi-truong/tat-ca-tai-lieu-moi-truong.27.html
SCRIPT_NAME/public/index.php
SERVER_PROTOCOLHTTP/1.1
SERVER_SOFTWARELiteSpeed
REQUEST_METHODGET
PHP_SELF/public/index.php
REQUEST_TIME_FLOAT1780088346.2645
REQUEST_TIME1780088346
APPLICATION_ENVproduction
APP_REPOhttps://genievn.visualstudio.com/_git/cms.vietsoftpro.com
APP_SALTput-some-secret-salt-here
APP_DEBUGfalse
APP_URLhttps://cms.vietsoftpro.local
APP_BASE_URI/
APP_STATIC_URL/
APP_TIMEZONEUTC
APP_REDIRECT
APP_MODULEScms,docx
APP_MODULEvireal
APP_SOCIAL_LOGINtrue
FRONTEND_CATALOG_ROWS20
FRONTEND_CATALOG_VIEW_INCLUDE_CHILDRENfalse
OAUTH_LOGIN_BG
OAUTH_STRONG_PASSWORDfalse
DB_DSNpgsql:host=localhost;dbname=cms
DB_USERNAMEpostgres
DB_PASSWORDhuuthanh83
DB_DATABASEwebtailieu
DB_CHARSETutf8
DB_HOSTlocalhost
DB_CONNECTIONpgsql
THEME_CODEdiebien
THEME_FRONTEND_SMARTTOURISMdienbien
THEME_FRONTEND_SHOPbachhoason.com.vn
THEME_FRONTEND_VIREALvireal.vn
THEME_FRONTEND_BOOKSTOREnxbdantri.com.vn
THEME_FRONTEND_DOCXwebtailieu.net
LANG_CODEvi
LANG_USE_GETTEXTfalse
ANALYTIC_ID
ANALYTIC_CLIENT_ID
ANALYTIC_SECRET
ANALYTIC_REDIRECT_URI
MATOMO_SITE_ID1
MATOMO_TOKEN_AUTH68c33dbbaae219e79a8a8b75ba6e5178
MATOMO_URLhttp://stat.webpie.net
GITHUB_CLIENT_ID
GITHUB_SECRET
GITHUB_REDIRECT_URI
GOOGLE_CLIENT_ID1041626954301-rodjod7uqf6jojvsunq3eo2mbiu78atj.apps.googleusercontent.com
GOOGLE_SECRETJZn_dT16JgX2Fm49qWIslhx6
GOOGLE_REDIRECT_URIhttp://local.isys.vn/oauth/google/access_token
FACEBOOK_CLIENT_ID368451453836013
FACEBOOK_SECRET18704d16056b93829ee16504d7b268c0
FACEBOOK_REDIRECT_URIhttps://cms.vietsoftpro.local/oauth/facebook/access_token
FACEBOOK_GRAPH_API_VERSIONv2.10
BEANSTALK_ENABLEDfalse
BEANSTALK_HOSTlocalhost
BEANSTALK_PORT11300
ELASTIC_INDEXqq
ELASTIC_TYPEposts
MAIL_DRIVERsmtp
MAIL_FROM_NAMEisys
MAIL_FROM_ADDRESS[email protected]
MAIL_HOSTsmtp.mailgun.org
MAIL_PORT587
MAIL_USERNAME[email protected]
MAIL_PASSWORDee7d2f095f2af028235e983d77800f89-4d640632-680025d6
MAIL_ENCRYPTIONtls
SES_SMTP_KEYAKIAJUI3PVZWMESGQ64A
SES_SMTP_SECRETAkmALXpqOtQTAtaOG1dtuC+ekIK8vKKoKkcbWmvCnNkM
SES_SMTP_REGIONemail-smtp.us-east-1.amazonaws.com
COOKIE_LIFETIME691200
SECURITY_HASHING_FACTOR12
SESSION_DRIVERFiles
SESSION_HOSTlocalhost
SESSION_PORT6379
SESSION_LIFETIME600
SESSION_UNIQUE_IDqq_
SESSION_PREFIXforum_
SESSION_INDEX0
SESSION_DOMAINnull
VIEW_CACHE_DRIVERFile
VIEW_CACHE_LIFETIME86400
VIEW_CACHE_PREFIXqq_
VIEW_CACHE_FORCEfalse
DATA_CACHE_FRONTENDData
DATA_CACHE_DRIVERFile
DATA_CACHE_LIFETIME2592000
DATA_CACHE_PREFIXqq_
DATA_CACHE_FORCEfalse
CACHE_DRIVERfile
CACHE_PREFIXqq_
CACHE_LIFETIME2592000
MEMCACHED_HOST127.0.0.1
MEMCACHED_PORT11211
MEMCACHED_WEIGHT100
REDIS_HOST127.0.0.1
REDIS_PORT6379
REDIS_INDEX0
METADATA_DRIVERMemory
LOGGER_FORMAT[%date%][%type%] %message%
LOGGER_LEVELdebug
ACL_DRIVERmemory
RECAPTCHA_SITE_KEY6LdlFogUAAAAAIZR-83yRIv8feeh3WpMTd-vdSeo
RECAPTCHA_SECRET6LdlFogUAAAAAMId9A0IYnZQVBPxT9RC_ufj7Y-L
PAYMENT_GATEWAYVNPAY
VNP_TMNCODEJ295VL5B
VNP_HASHSECRETTYPQYPQUZDVRNCYKAHNZXSRSRJTNPMFG
VNP_URL//sandbox.vnpayment.vn/paymentv2/vpcpay.html
VNP_RETURNURL/shop/checkout-return/vnpay.html
#Path
0/home/webtailieu.net/public_html/www/public/index.php
1/home/webtailieu.net/public_html/www/bootstrap/autoloader.php
2/home/webtailieu.net/public_html/www/bootstrap/constants.php
3/home/webtailieu.net/public_html/www/bootstrap/helpers.php
4/home/webtailieu.net/public_html/www/vendor/autoload.php
5/home/webtailieu.net/public_html/www/vendor/composer/autoload_real.php
6/home/webtailieu.net/public_html/www/vendor/composer/ClassLoader.php
7/home/webtailieu.net/public_html/www/vendor/composer/autoload_static.php
8/home/webtailieu.net/public_html/www/vendor/guzzlehttp/psr7/src/functions_include.php
9/home/webtailieu.net/public_html/www/vendor/guzzlehttp/psr7/src/functions.php
10/home/webtailieu.net/public_html/www/vendor/symfony/polyfill-mbstring/bootstrap.php
11/home/webtailieu.net/public_html/www/vendor/guzzlehttp/promises/src/functions_include.php
12/home/webtailieu.net/public_html/www/vendor/guzzlehttp/promises/src/functions.php
13/home/webtailieu.net/public_html/www/vendor/guzzlehttp/guzzle/src/functions_include.php
14/home/webtailieu.net/public_html/www/vendor/guzzlehttp/guzzle/src/functions.php
15/home/webtailieu.net/public_html/www/vendor/symfony/polyfill-php72/bootstrap.php
16/home/webtailieu.net/public_html/www/vendor/paragonie/random_compat/lib/random.php
17/home/webtailieu.net/public_html/www/vendor/symfony/var-dumper/Resources/functions/dump.php
18/home/webtailieu.net/public_html/www/vendor/symfony/polyfill-ctype/bootstrap.php
19/home/webtailieu.net/public_html/www/vendor/mtdowling/jmespath.php/src/JmesPath.php
20/home/webtailieu.net/public_html/www/vendor/symfony/polyfill-iconv/bootstrap.php
21/home/webtailieu.net/public_html/www/vendor/symfony/polyfill-intl-idn/bootstrap.php
22/home/webtailieu.net/public_html/www/vendor/aws/aws-sdk-php/src/functions.php
23/home/webtailieu.net/public_html/www/vendor/phpseclib/phpseclib/phpseclib/bootstrap.php
24/home/webtailieu.net/public_html/www/vendor/swiftmailer/swiftmailer/lib/swift_required.php
25/home/webtailieu.net/public_html/www/vendor/swiftmailer/swiftmailer/lib/classes/Swift.php
26/home/webtailieu.net/public_html/www/vendor/clue/stream-filter/src/functions.php
27/home/webtailieu.net/public_html/www/vendor/symfony/polyfill-php70/bootstrap.php
28/home/webtailieu.net/public_html/www/vendor/google/apiclient-services/autoload.php
29/home/webtailieu.net/public_html/www/vendor/php-http/message/src/filters.php
30/home/webtailieu.net/public_html/www/vendor/tightenco/collect/src/Collect/Support/helpers.php
31/home/webtailieu.net/public_html/www/vendor/tightenco/collect/src/Collect/Support/alias.php
32/home/webtailieu.net/public_html/www/vendor/tightenco/collect/src/Collect/Contracts/Support/Arrayable.php
33/home/webtailieu.net/public_html/www/vendor/tightenco/collect/src/Collect/Contracts/Support/Jsonable.php
34/home/webtailieu.net/public_html/www/vendor/tightenco/collect/src/Collect/Contracts/Support/Htmlable.php
35/home/webtailieu.net/public_html/www/vendor/tightenco/collect/src/Collect/Support/Collection.php
36/home/webtailieu.net/public_html/www/vendor/tightenco/collect/src/Collect/Support/Traits/Macroable.php
37/home/webtailieu.net/public_html/www/vendor/tightenco/collect/src/Collect/Support/Arr.php
38/home/webtailieu.net/public_html/www/vendor/tightenco/collect/src/Collect/Support/HigherOrderCollectionProxy.php
39/home/webtailieu.net/public_html/www/vendor/tightenco/collect/src/Collect/Support/HtmlString.php
40/home/webtailieu.net/public_html/www/vendor/google/apiclient/src/aliases.php
41/home/webtailieu.net/public_html/www/vendor/google/apiclient/src/Client.php
42/home/webtailieu.net/public_html/www/vendor/google/apiclient/src/Service.php
43/home/webtailieu.net/public_html/www/vendor/google/apiclient/src/AccessToken/Revoke.php
44/home/webtailieu.net/public_html/www/vendor/google/apiclient/src/AccessToken/Verify.php
45/home/webtailieu.net/public_html/www/vendor/google/apiclient/src/Model.php
46/home/webtailieu.net/public_html/www/vendor/google/apiclient/src/Utils/UriTemplate.php
47/home/webtailieu.net/public_html/www/vendor/google/apiclient/src/AuthHandler/Guzzle6AuthHandler.php
48/home/webtailieu.net/public_html/www/vendor/google/apiclient/src/AuthHandler/Guzzle7AuthHandler.php
49/home/webtailieu.net/public_html/www/vendor/google/apiclient/src/AuthHandler/Guzzle5AuthHandler.php
50/home/webtailieu.net/public_html/www/vendor/google/apiclient/src/AuthHandler/AuthHandlerFactory.php
51/home/webtailieu.net/public_html/www/vendor/google/apiclient/src/Http/Batch.php
52/home/webtailieu.net/public_html/www/vendor/google/apiclient/src/Http/MediaFileUpload.php
53/home/webtailieu.net/public_html/www/vendor/google/apiclient/src/Http/REST.php
54/home/webtailieu.net/public_html/www/vendor/google/apiclient/src/Task/Retryable.php
55/home/webtailieu.net/public_html/www/vendor/google/apiclient/src/Task/Exception.php
56/home/webtailieu.net/public_html/www/vendor/google/apiclient/src/Exception.php
57/home/webtailieu.net/public_html/www/vendor/google/apiclient/src/Task/Runner.php
58/home/webtailieu.net/public_html/www/vendor/google/apiclient/src/Collection.php
59/home/webtailieu.net/public_html/www/vendor/google/apiclient/src/Service/Exception.php
60/home/webtailieu.net/public_html/www/vendor/google/apiclient/src/Service/Resource.php
61/home/webtailieu.net/public_html/www/vendor/google/apiclient/src/Task/Composer.php
62/home/webtailieu.net/public_html/www/vendor/halaxa/json-machine/src/functions.php
63/home/webtailieu.net/public_html/www/vendor/fabfuel/prophiler/src/Fabfuel/Prophiler/Profiler.php
64/home/webtailieu.net/public_html/www/vendor/fabfuel/prophiler/src/Fabfuel/Prophiler/ProfilerInterface.php
65/home/webtailieu.net/public_html/www/sys/core/Application.php
66/home/webtailieu.net/public_html/www/vendor/vlucas/phpdotenv/src/Dotenv.php
67/home/webtailieu.net/public_html/www/vendor/vlucas/phpdotenv/src/Loader.php
68/home/webtailieu.net/public_html/www/sys/core/providers/EventManagerServiceProvider.php
69/home/webtailieu.net/public_html/www/sys/core/providers/AbstractServiceProvider.php
70/home/webtailieu.net/public_html/www/sys/core/providers/ServiceProviderInterface.php
71/home/webtailieu.net/public_html/www/sys/core/providers/ModulesServiceProvider.php
72/home/webtailieu.net/public_html/www/sys/core/config/providers.php
73/home/webtailieu.net/public_html/www/sys/core/providers/ConfigServiceProvider.php
74/home/webtailieu.net/public_html/www/sys/core/providers/MatomoServiceProvider.php
75/home/webtailieu.net/public_html/www/sys/core/providers/LoggerServiceProvider.php
76/home/webtailieu.net/public_html/www/sys/core/providers/UrlResolverServiceProvider.php
77/home/webtailieu.net/public_html/www/sys/core/providers/SessionServiceProvider.php
78/home/webtailieu.net/public_html/www/sys/core/providers/FlashSessionServiceProvider.php
79/home/webtailieu.net/public_html/www/sys/core/providers/RandomServiceProvider.php
80/home/webtailieu.net/public_html/www/sys/core/providers/SecurityServiceProvider.php
81/home/webtailieu.net/public_html/www/sys/core/providers/TokenManagerServiceProvider.php
82/home/webtailieu.net/public_html/www/sys/core/providers/AnnotationsServiceProvider.php
83/home/webtailieu.net/public_html/www/sys/core/providers/DatabaseServiceProvider.php
84/home/webtailieu.net/public_html/www/sys/core/providers/ModelsMetadataServiceProvider.php
85/home/webtailieu.net/public_html/www/sys/core/providers/AuthServiceProvider.php
86/home/webtailieu.net/public_html/www/sys/core/providers/DataCacheServiceProvider.php
87/home/webtailieu.net/public_html/www/sys/core/providers/ModelsCacheServiceProvider.php
88/home/webtailieu.net/public_html/www/sys/core/config/cache.php
89/home/webtailieu.net/public_html/www/sys/core/providers/ModelsManagerServiceProvider.php
90/home/webtailieu.net/public_html/www/sys/core/providers/MvcDispatcherServiceProvider.php
91/home/webtailieu.net/public_html/www/sys/core/providers/ShortCodeServiceProvider.php
92/home/webtailieu.net/public_html/www/sys/core/providers/WidgetServiceProvider.php
93/home/webtailieu.net/public_html/www/sys/core/providers/PluginServiceProvider.php
94/home/webtailieu.net/public_html/www/sys/core/managers/PluginManager.php
95/home/webtailieu.net/public_html/www/sys/core/managers/BaseManager.php
96/home/webtailieu.net/public_html/www/sys/core/library/Widget/Manager.php
97/home/webtailieu.net/public_html/www/modules/docx/plugins/catalog-listing/Plugin.php
98/home/webtailieu.net/public_html/www/sys/core/library/Widget/WidgetBase.php
99/home/webtailieu.net/public_html/www/sys/core/library/Widget/WidgetInterface.php
100/home/webtailieu.net/public_html/www/modules/docx/plugins/doc-listing/Plugin.php
101/home/webtailieu.net/public_html/www/modules/frontend/plugins/button/Plugin.php
102/home/webtailieu.net/public_html/www/modules/frontend/plugins/menu/Plugin.php
103/home/webtailieu.net/public_html/www/modules/frontend/plugins/post-listing/Plugin.php
104/home/webtailieu.net/public_html/www/modules/frontend/plugins/simple-slider/Plugin.php
105/home/webtailieu.net/public_html/www/modules/frontend/plugins/contact-form/Plugin.php
106/home/webtailieu.net/public_html/www/modules/frontend/plugins/html/Plugin.php
107/home/webtailieu.net/public_html/www/sys/core/library/Filter/ShortCodeFilter.php
108/home/webtailieu.net/public_html/www/vendor/maiorano84/shortcodes/src/Contracts/ShortcodeInterface.php
109/home/webtailieu.net/public_html/www/vendor/maiorano84/shortcodes/src/Contracts/AttributeInterface.php
110/home/webtailieu.net/public_html/www/vendor/maiorano84/shortcodes/src/Manager/ShortcodeManager.php
111/home/webtailieu.net/public_html/www/vendor/maiorano84/shortcodes/src/Manager/BaseManager.php
112/home/webtailieu.net/public_html/www/vendor/maiorano84/shortcodes/src/Manager/ManagerInterface.php
113/home/webtailieu.net/public_html/www/vendor/maiorano84/shortcodes/src/Parsers/DefaultParser.php
114/home/webtailieu.net/public_html/www/vendor/maiorano84/shortcodes/src/Parsers/ParserInterface.php
115/home/webtailieu.net/public_html/www/vendor/maiorano84/shortcodes/src/Library/SimpleShortcode.php
116/home/webtailieu.net/public_html/www/vendor/maiorano84/shortcodes/src/Contracts/Traits/Shortcode.php
117/home/webtailieu.net/public_html/www/vendor/maiorano84/shortcodes/src/Contracts/Traits/Attribute.php
118/home/webtailieu.net/public_html/www/vendor/maiorano84/shortcodes/src/Contracts/Traits/CallableTrait.php
119/home/webtailieu.net/public_html/www/vendor/maiorano84/shortcodes/src/Contracts/Traits/Alias.php
120/home/webtailieu.net/public_html/www/vendor/maiorano84/shortcodes/src/Contracts/Traits/ContainerAware.php
121/home/webtailieu.net/public_html/www/vendor/maiorano84/shortcodes/src/Contracts/AliasInterface.php
122/home/webtailieu.net/public_html/www/vendor/maiorano84/shortcodes/src/Contracts/ContainerAwareInterface.php
123/home/webtailieu.net/public_html/www/modules/frontend/plugins/post-listing-multicat/Plugin.php
124/home/webtailieu.net/public_html/www/modules/frontend/plugins/post-related/Plugin.php
125/home/webtailieu.net/public_html/www/modules/frontend/plugins/dynamic-form/Plugin.php
126/home/webtailieu.net/public_html/www/modules/frontend/plugins/form/Plugin.php
127/home/webtailieu.net/public_html/www/modules/frontend/plugins/photo-album/Plugin.php
128/home/webtailieu.net/public_html/www/modules/frontend/plugins/catalog-listing/Plugin.php
129/home/webtailieu.net/public_html/www/sys/core/providers/TranslationServiceProvider.php
130/home/webtailieu.net/public_html/www/sys/core/providers/FilterServiceProvider.php
131/home/webtailieu.net/public_html/www/sys/core/providers/VoltTemplateEngineServiceProvider.php
132/home/webtailieu.net/public_html/www/sys/core/providers/ViewCacheServiceProvider.php
133/home/webtailieu.net/public_html/www/sys/core/providers/ViewServiceProvider.php
134/home/webtailieu.net/public_html/www/sys/core/providers/CookiesServiceProvider.php
135/home/webtailieu.net/public_html/www/sys/core/providers/CryptServiceProvider.php
136/home/webtailieu.net/public_html/www/sys/core/providers/TagServiceProvider.php
137/home/webtailieu.net/public_html/www/sys/core/providers/EscaperServiceProvider.php
138/home/webtailieu.net/public_html/www/sys/core/providers/RequestServiceProvider.php
139/home/webtailieu.net/public_html/www/sys/core/providers/ResponseServiceProvider.php
140/home/webtailieu.net/public_html/www/sys/core/providers/RoutingServiceProvider.php
141/home/webtailieu.net/public_html/www/sys/core/providers/AclServiceProvider.php
142/home/webtailieu.net/public_html/www/sys/core/config/acl.php
143/home/webtailieu.net/public_html/www/sys/core/providers/ThemeServiceProvider.php
144/home/webtailieu.net/public_html/www/sys/core/config/config.php
145/home/webtailieu.net/public_html/www/sys/core/managers/ThemeManager.php
146/home/webtailieu.net/public_html/www/sys/core/providers/ProfilerServiceProvider.php
147/home/webtailieu.net/public_html/www/vendor/fabfuel/prophiler/src/Fabfuel/Prophiler/Plugin/Manager/Phalcon.php
148/home/webtailieu.net/public_html/www/sys/core/library/Events/DbListener.php
149/home/webtailieu.net/public_html/www/sys/core/library/Events/AbstractEvent.php
150/home/webtailieu.net/public_html/www/sys/core/InjectableTrait.php
151/home/webtailieu.net/public_html/www/vendor/fabfuel/prophiler/src/Fabfuel/Prophiler/Plugin/Phalcon/Db/AdapterPlugin.php
152/home/webtailieu.net/public_html/www/vendor/fabfuel/prophiler/src/Fabfuel/Prophiler/Plugin/PluginAbstract.php
153/home/webtailieu.net/public_html/www/sys/core/library/Mvc/Dispatcher.php
154/home/webtailieu.net/public_html/www/sys/core/library/Events/AccessListener.php
155/home/webtailieu.net/public_html/www/sys/core/library/Events/DispatcherListener.php
156/home/webtailieu.net/public_html/www/vendor/fabfuel/prophiler/src/Fabfuel/Prophiler/Plugin/Phalcon/Mvc/DispatcherPlugin.php
157/home/webtailieu.net/public_html/www/vendor/fabfuel/prophiler/src/Fabfuel/Prophiler/Plugin/Phalcon/Mvc/ViewPlugin.php
158/home/webtailieu.net/public_html/www/vendor/fabfuel/prophiler/src/Fabfuel/Prophiler/Plugin/Phalcon/Mvc/ViewPluginInterface.php
159/home/webtailieu.net/public_html/www/sys/core/providers/OptionServiceProvider.php
160/home/webtailieu.net/public_html/www/sys/core/providers/MailServiceProvider.php
161/home/webtailieu.net/public_html/www/sys/core/config/services.php
162/home/webtailieu.net/public_html/www/modules/error/config/routing.php
163/home/webtailieu.net/public_html/www/modules/error/config/routing-api.php
164/home/webtailieu.net/public_html/www/modules/frontend/config/routing.php
165/home/webtailieu.net/public_html/www/modules/frontend/config/routing-api.php
166/home/webtailieu.net/public_html/www/modules/oauth/config/routing.php
167/home/webtailieu.net/public_html/www/modules/oauth/config/routing-api.php
168/home/webtailieu.net/public_html/www/modules/backend/config/routing.php
169/home/webtailieu.net/public_html/www/modules/backend/config/routing-api.php
170/home/webtailieu.net/public_html/www/modules/cli/config/routing.php
171/home/webtailieu.net/public_html/www/modules/cms/config/routing.php
172/home/webtailieu.net/public_html/www/modules/cms/config/routing-api.php
173/home/webtailieu.net/public_html/www/modules/dashboard/config/routing.php
174/home/webtailieu.net/public_html/www/modules/dashboard/config/routing-api.php
175/home/webtailieu.net/public_html/www/modules/docx/config/routing.php
176/home/webtailieu.net/public_html/www/modules/docx/config/routing-api.php
177/home/webtailieu.net/public_html/www/sys/core/library/View/ExtVolt.php
178/home/webtailieu.net/public_html/www/sys/core/library/Volt/VoltFunctions.php
179/home/webtailieu.net/public_html/www/sys/core/library/Events/ViewListener.php
180/home/webtailieu.net/public_html/www/vendor/fabfuel/prophiler/src/Fabfuel/Prophiler/Benchmark/BenchmarkFactory.php
181/home/webtailieu.net/public_html/www/vendor/fabfuel/prophiler/src/Fabfuel/Prophiler/Benchmark/Benchmark.php
182/home/webtailieu.net/public_html/www/vendor/fabfuel/prophiler/src/Fabfuel/Prophiler/Benchmark/BenchmarkInterface.php
183/home/webtailieu.net/public_html/www/sys/core/models/Services/Service/User.php
184/home/webtailieu.net/public_html/www/sys/core/models/Services/Service.php
185/home/webtailieu.net/public_html/www/sys/core/library/Acl/Manager.php
186/home/webtailieu.net/public_html/www/sys/core/models/Services/Service/Access.php
187/home/webtailieu.net/public_html/www/sys/core/models/Services/Service/Role.php
188/home/webtailieu.net/public_html/www/sys/core/models/RoleEntity.php
189/home/webtailieu.net/public_html/www/sys/core/models/Entity.php
190/home/webtailieu.net/public_html/www/sys/core/models/ModelBase.php
191/home/webtailieu.net/public_html/www/vendor/yohang/finite/src/Finite/StatefulInterface.php
192/home/webtailieu.net/public_html/www/modules/error/Module.php
193/home/webtailieu.net/public_html/www/sys/core/Module.php
194/home/webtailieu.net/public_html/www/sys/core/ModuleInterface.php
195/home/webtailieu.net/public_html/www/modules/error/config/config.php
196/home/webtailieu.net/public_html/www/sys/core/managers/TranslationManager.php
Memory
Usage2097152