Phalcon Framework 3.4.4

Phalcon\Mvc\Url\Exception: Cannot obtain a route using the name 'referrer-login'

/www/be.cvreferral.com/public_html/app/modules/Index/Controller/ForgotPasswordController.php (46)
#0Phalcon\Mvc\Url->get(Array([for] => referrer-login))
/www/be.cvreferral.com/public_html/app/modules/Index/Controller/ForgotPasswordController.php (46)
<?php
 
namespace Index\Controller;
 
use Application\Mvc\Controller;
use Index\Form\ForgotPasswordForm;
use Index\Form\ResetPasswordForm;
use Index\Model\User;
use Index\Model\Company;
use Phalcon\DI;
use Phalcon\Exception;
use Index\Language\Language;
use Phalcon\Mvc\Model\Query;
use Phalcon\Mvc\Model\Resultset\Simple as Resultset;
use Phalcon\Paginator\Adapter\NativeArray as PaginatorArray;
 
class ForgotPasswordController extends Controller
{
    /**
     * @AuthMiddleware("Application\Middleware\PreventLogined")
     *
     */
    public function indexAction()
    {
        if (!$this->session->get('language') && $this->getDI()->get('request')->getQuery('lang') == "") {
            $language = "vi";
            $this->session->set('language', $language);
            $this->view->language_show = $language;
        } elseif (!$this->session->get('language') && $this->getDI()->get('request')->getQuery('lang') != "") {
            $language = $this->getDI()->get('request')->getQuery('lang');
            $this->session->set('language', $language);
        } elseif ($this->session->get('language') && $this->getDI()->get('request')->getQuery('lang') == "") {
            $language = $this->session->get('language');
        } elseif ($this->session->get('language') && $this->getDI()->get('request')->getQuery('lang') != "") {
            $language = $this->getDI()->get('request')->getQuery('lang');
            $this->session->set('language', $language);
        }
 
        $r = $this->request->get('r');
        switch (strtolower($r)) {
            case 'rec':
                $this->view->loginUrl = $this->url->get(['for' => 'recruiter-login']);
                $this->view->setLayout('recruiter');
                break;
            case 'ref':
                $this->view->loginUrl = $this->url->get(['for' => 'referrer-login']);
                $this->view->setLayout('referrer');
                break;
        }
 
        $form = new ForgotPasswordForm();
        if ($this->request->isPost()) {
            $post = $this->request->getPost();
            if ($form->isValid($post)) {
                $email = $this->request->getPost("email");
                if ($user = User::findFirstByEmail($email)) {
                    if ($this->getDI()->get('email')->sendResetPasswordEmail($user)) {
                        $this->flash->success(Language::FORGET_PASS_RECRUITER['sent_mail'][$language]);
 
                        return $this->redirect($this->view->loginUrl, 101);
                    }
                } else {
                    $this->flash->error(Language::FORGET_PASS_RECRUITER['incorrect_mail'][$language]);
                }
            }
        }
 
        $language = $this->session->get('language');
        $this->view->form = $form;
        $this->view->language_show = $language;
        $this->view->value_language = Language::FORGET_PASS_RECRUITER;
        $this->view->select_language = Language::LANGUAGE_SELECT;
        // TYTTOOT: add company link
        // $domain = $this->getDI()->get('request')->getQuery('domain');
        // if ($domain) {
        //   $company = Company::findFirst('sub_domain="'.explode('.', $domain)[0].'"');
        //   if ($company) {
        //     $this->view->logo = $company->getLogo();
        //     $this->view->company_domain = '?domain='.$domain;
        //   }
        // }
        // if (!$this->view->logo) {
        //   $this->view->logo = '/static/images/cv-logo.png';
        //   $this->view->company_domain = '';
        // }
 
        // TYTTOOT: add company link
 
        $domain = $this->getDI()->get('request')->getQuery('domain');
        if ($domain) {
            $company = Company::findFirst('sub_domain="' . explode('.', $domain)[0] . '"');
            if ($company) {
                $logo = $company->getLogo();
                $this->view->company_domain = '?domain=' . $domain;
            }
        }
 
        if ($logo) {
            $this->view->display_logo =
                '<img width="100px" src="' . $logo . '"/>';
        } else {
            $this->view->company_domain = '';
 
            $this->view->display_logo = '<a href="' . $this->helper->getHomeUrl() . '">
                    <img width="100px" src="/static/images/cv-logo.png"/>
                  </a>';
        }
    }
 
    /**
     * Display input new password form.
     * Handle post/get HTTP for reset password
     *
     * @param $jwtResetPasswordToken
     */
    public function resetAction($jwtResetPasswordToken)
    {
        $this->view->display_logo =
            '<a href="' . $this->helper->getHomeUrl() . '">
            <img width="100px" src="/static/images/cv-logo.png"/>
        </a>';
 
        if (!$this->session->get('language') && !$this->getDI()->get('request')->getQuery('lang')) {
            $language = "vi";
            $this->view->language_show = $language;
            $this->session->set('language', $language);
        } elseif (!$this->session->get('language') && $this->getDI()->get('request')->getQuery('lang') != "") {
            $language = $this->getDI()->get('request')->getQuery('lang');
            $this->session->set('language', $language);
        } elseif ($this->session->get('language') && $this->getDI()->get('request')->getQuery('lang') == "") {
            $language = $this->session->get('language');
        } elseif ($this->session->get('language') && $this->getDI()->get('request')->getQuery('lang') != "") {
            $language = $this->getDI()->get('request')->getQuery('lang');
            $this->session->set('language', $language);
        }
 
        $language = $this->session->get('language');
        $jwtUtil = $this->getDI()->get('jwtUtils');
        $payload = $jwtUtil->getRawPayload($jwtResetPasswordToken);
        $user = User::findFirstByEmail($payload->email);
 
        try {
            if (!$user || !$user->decodeResetPassword($jwtResetPasswordToken)) {
                return $this->redirect($this->url->get(['for' => 'home-page']));
            }
        } catch (\UnexpectedValueException $e) {
            $this->flash->error(Language::RESET_PASS_RECRUITER['token_invalid'][$language]);
 
            return $this->redirect($this->url->get(['for' => 'home-page']));
        }
 
        switch ($user->getRole()) {
            case User::ROLE_RECRUITER:
                $this->view->setLayout('recruiter');
                break;
            case User::ROLE_REFERRER:
                $this->view->setLayout('referrer');
                break;
        }
 
        /**
         * Update user new password.
         */
        $form = new ResetPasswordForm();
        if ($this->request->isPost()) {
            $post = $this->request->getPost();
 
            if ($form->isValid($post)) {
                $password = $post['password'];
                $user->setPassword($password);
 
                if ($user->save()) {
                    $this->flash->success(Language::RESET_PASS_RECRUITER['change_pass_successfully'][$language]);
                    $this->getDI()->get('email')->sendPasswordChangeEmail($user);
                    if ($user->getRole() == User::ROLE_RECRUITER) {
                        return $this->redirect($this->url->get(['for' => 'recruiter-login']));
                    } else {
                        return $this->redirect($this->url->get(['for' => 'referrer-login']));
                    }
                } else {
                    $user->validation(); // Force model to validate
                    $form->mergeValidation($user->getMessages());
                }
            }
        }
 
        $this->view->language_show = $language;
        $this->view->value_language = Language::RESET_PASS_RECRUITER;
        $this->view->select_language = Language::LANGUAGE_SELECT;
        $this->view->form = $form;
    }
}
#1Index\Controller\ForgotPasswordController->indexAction()
#2Phalcon\Dispatcher->callActionMethod(Object(Index\Controller\ForgotPasswordController), indexAction, Array())
#3Phalcon\Dispatcher->dispatch()
/www/be.cvreferral.com/public_html/app/Bootstrap.php (546)
<?php
 
namespace GUCMS;
 
use GUCMS\Plugin\FacebookOauthUtils;
use GUCMS\Plugin\GoogleOauthUtils;
use GUCMS\Plugin\LinkedinOauthUtils;
 
/**
 * Bootstrap
 *
 * @copyright Copyright (c) 2011 - 2014 Aleksandr Torosh (http://wezoom.com.ua)
 * @author    Aleksandr Torosh <webtorua@gmail.com>
 */
 
class Bootstrap
{
 
  public function run()
  {
    $di = new \Phalcon\DI\FactoryDefault();
    // Config
    require_once APPLICATION_PATH . '/modules/Cms/Config.php';
    $config = \Cms\Config::get();
    $di->set('config', $config);
 
    // Registry
    $registry = new \Phalcon\Registry();
    $di->set('registry', $registry);
 
    // Loader
    $loader = new \Phalcon\Loader();
    $loader->registerNamespaces($config->loader->namespaces->toArray());
    $loader->registerDirs([APPLICATION_PATH . "/plugins/"]);
    $loader->register();
 
    require_once APPLICATION_PATH . '/../vendor/autoload.php';
 
    // Database
    $di->setShared('db', function () use ($config) {
      return new \Phalcon\Db\Adapter\Pdo\Mysql([
        "host"     => $config->database->host,
        "username" => $config->database->username,
        "password" => $config->database->password,
        "dbname"   => $config->database->dbname,
        "charset"  => $config->database->charset,
      ]);
    });
 
    $di->setShared('db2', function () use ($config) {
      return new \Phalcon\Db\Adapter\Pdo\Mysql([
        "host"     => $config->database2->host,
        "username" => $config->database2->username,
        "password" => $config->database2->password,
        "dbname"   => $config->database2->dbname,
        "charset"  => $config->database2->charset,
        "options"  => [
          \PDO::ATTR_EMULATE_PREPARES  => false,
          \PDO::ATTR_STRINGIFY_FETCHES => false,
        ],
      ]);
    });
 
    // View
    $this->initView($di);
 
    // URL
    $url = new \Phalcon\Mvc\Url();
    $url->setBasePath($config->base_path);
    $url->setBaseUri($config->base_path);
    $di->set('url', $url);
 
    // Cache
    $this->initCache($di);
 
    // CMS
    $cmsModel = new \Cms\Model\Configuration();
    $registry->cms = $cmsModel->getConfig(); // Отправляем в Registry
 
    // Application
    $application = new \Phalcon\Mvc\Application();
    $application->registerModules($config->modules->toArray());
 
    // Events Manager, Dispatcher
    $this->initEventManager($di);
 
    // Session
    $session = new \Phalcon\Session\Adapter\Files();
    $session->start();
    $di->set('session', $session);
 
    $acl = new \Application\Acl\DefaultAcl();
    $di->set('acl', $acl);
 
    // JS Assets
    $this->initAssetsManager($di);
 
    // Flash helper
    $flash = new \Application\Ext\Flash\FlashMessage([
      'error'   => 'alert alert-danger',
      'success' => 'alert alert-success',
      'notice'  => 'alert alert-info',
      'warning' => 'alert alert-warning',
    ]);
    $di->set('flash', $flash);
 
    $di->set('helper', new \Application\Mvc\Helper());
 
    /**
     * Custom DI
     */
    $di->setShared('email', function () use ($config) {
      return new \Application\Mvc\EmailHelper([
        'host'       => $config->mail->host,
        'port'       => $config->mail->port,
        'name'       => $config->mail->name,
        'pass'       => $config->mail->pass,
        'secured'    => $config->mail->secured,
        'from_email' => $config->mail->from_email,
        'from_name'  => $config->mail->from_name,
      ]);
    });
 
    $di->setShared('log', function () use ($config) {
      return new \Application\Mvc\LogHelper();
    });
 
    $di->setShared('cookies', function () {
      $cookies = new \Phalcon\Http\Response\Cookies();
      $cookies->useEncryption(false);
 
      return $cookies;
    });
 
    $di->setShared('googleOauthClient', function () use ($config) {
      return new GoogleOauthUtils([
        'clientId'     => $config->googleOauth->client_id,
        'clientSecret' => $config->googleOauth->client_secret,
      ]);
    });
 
    $di->setShared('facebookOauthClient', function () use ($config) {
      return new FacebookOauthUtils([
        'app_id'                => $config->fb->app_id,
        'app_secret'            => $config->fb->app_secret,
        'default_graph_version' => $config->fb->default_graph_version,
      ]);
    });
 
    $di->setShared('linkedinOauthClient', function () use ($config) {
      return new LinkedinOauthUtils([
        'app_id'     => $config->linkedin->app_id,
        'app_secret' => $config->linkedin->app_secret,
      ]);
    });
 
    $di->setShared('hrxmlParser', function () use ($config) {
      return \Hrxml\Parser::getInstance();
    });
 
    $di->setShared('resumeParser', function () use ($config) {
      return new \ResumeParser\ParserService($config->rchilli->key, $config->rchilli->user, $config->rchilli->wsdl);
    });
 
    $di->setShared('jwtUtils', function () use ($config) {
      return new \GUCMS\Plugin\JWTUtils([
        'key'           => $config->jwt->key,
        'lifetime'      => $config->jwt->lifetime,
        'global_domain' => $config->jwt->global_domain,
      ]);
    });
 
    $di->setShared('markdownParser', function () use ($config) {
      return new \League\CommonMark\CommonMarkConverter();
    });
 
    $di->setShared('s3', function () use ($config) {
      $credentials = new \Aws\Credentials\Credentials($config->aws->key, $config->aws->secret);
 
      $s3 = new \Aws\S3\S3Client([
        'version'     => 'latest',
        'region'      => $config->s3_upload->region,
        'credentials' => $credentials,
      ]);
 
      return $s3;
    });
 
    /**
     * undocumented class variable
     *
     * @var string
     **/
    $di->setShared('elastica', function () use ($di) {
      $elasticaClient = new \Elastica\Client([
        'host' => $di->getConfig()->elasticsearch->host,
        'port' => $di->getConfig()->elasticsearch->port,
      ]);
 
      return $elasticaClient;
    });
 
    # Config Ampq
    $di->setShared('amqp', function () use ($config) {
      return new \GUCMS\Plugin\Amqp([
        'host'     => $config->amqp->host,
        'port'     => $config->amqp->port,
        'user'     => $config->amqp->user,
        'pass'     => $config->amqp->pass,
        'vhost'    => $config->amqp->vhost,
        'queue'    => $config->amqp->queue,
        'exchange' => $config->amqp->exchange,
      ]);
    });
 
    $di->setShared('candidateFromExcelHelper', function () use ($config) {
      return new \GUCMS\Plugin\CandidateFromExcelHelper();
    });
 
    // Routing
    $this->initRouting($application, $di);
 
    $application->setDI($di);
 
    // Main dispatching process
    $this->dispatch($di);
 
  }
 
  private function initRouting($application, $di)
  {
    $router = new \Application\Mvc\Router\DefaultRouter();
    $router->setDi($di);
    foreach ($application->getModules() as $module) {
      $routesClassName = str_replace('Module', 'Routes', $module['className']);
      if (class_exists($routesClassName)) {
        $routesClass = new $routesClassName();
        $router = $routesClass->init($router);
      }
      $initClassName = str_replace('Module', 'Init', $module['className']);
      if (class_exists($initClassName)) {
        new $initClassName();
      }
    }
    $di->set('router', $router);
  }
 
  private function initAssetsManager($di)
  {
    $config = $di->get('config');
    $isProductionEnv = APPLICATION_ENV == "production";
    $locator = '';
    $jsMin = $isProductionEnv ? new \Phalcon\Assets\Filters\Jsmin() : new \Phalcon\Assets\Filters\None();
    $cssMin = $isProductionEnv ? new \Phalcon\Assets\Filters\Cssmin() : new \Phalcon\Assets\Filters\None();
 
    $assetsManager = new \Application\Assets\Manager();
    if ($isProductionEnv) {
      $js_collection = $assetsManager->collection('js')
        ->setLocal(true)
        ->addFilter($jsMin)
        ->setTargetPath(ROOT . '/assets/main.js')
        ->setTargetUri('assets/main.js')
        ->join($isProductionEnv);
    } else {
      $js_collection = $assetsManager->collection('js')->setLocal(true);
    }
    if ($config->assets->js) {
      foreach ($config->assets->js as $js) {
        $js_collection->addJs($locator . $js);
      }
    }
 
    if ($isProductionEnv) {
      $css_collection = $assetsManager->collection('css')
        ->setLocal(true)
        ->addFilter($cssMin)
        ->setTargetPath(ROOT . '/assets/main.min.css')
        ->setTargetUri('/assets/main.min.css')
        ->join($isProductionEnv);
    } else {
      $css_collection = $assetsManager->collection('css')->setLocal(true);
    }
    if ($config->assets->css) {
      foreach ($config->assets->css as $css) {
        $css_collection->addCss($locator . $css);
      }
    }
 
    // Admin JS Assets
    $assetsManager->collection('modules-admin-js')
      ->setLocal(false)
      ->addFilter(new \Phalcon\Assets\Filters\Jsmin())
      ->setTargetPath(ROOT . '/assets/modules-admin.js')
      ->setTargetUri('assets/modules-admin.js')
      ->join(true);
 
    // Admin LESS Assets
    $assetsManager->collection('modules-admin-less')
      ->setLocal(false)
      ->addFilter(new \Application\Assets\Filter\Less())
      ->setTargetPath(ROOT . '/assets/modules-admin.less')
      ->setTargetUri('assets/modules-admin.less')
      ->join(true)
      ->addCss(APPLICATION_PATH . '/modules/Admin/assets/admin.less');
 
    $di->set('assets', $assetsManager);
    $admin_js_collection = $assetsManager->collection('admin_js')->join($isProductionEnv);
    if ($config->assets->admin_js) {
      foreach ($config->assets->admin_js as $js) {
        $admin_js_collection->addJs($js);
      }
    }
 
    $admin_css_collection = $assetsManager->collection('admin_css')->setLocal(true);
    if ($config->assets->admin_css) {
      foreach ($config->assets->admin_css as $css) {
        $admin_css_collection->addCss($css);
      }
    }
  }
 
  private function initEventManager($di)
  {
    $eventsManager = new \Phalcon\Events\Manager();
    $dispatcher = new \Phalcon\Mvc\Dispatcher();
 
    $eventsManager->attach("dispatch:beforeDispatchLoop", function ($event, $dispatcher) use ($di) {
      new \GUCMS\Plugin\EcoUser($di->get('cookies'), $di->get('jwtUtils'), $di->get('request'), $di);
      new \GUCMS\Plugin\CheckPoint($di->get('request'));
      new \GUCMS\Plugin\Localization($dispatcher);
      new \GUCMS\Plugin\AdminLocalization($di->get('config'));
      new \GUCMS\Plugin\Acl($di->get('acl'), $dispatcher, $di->get('view'));
      new \GUCMS\Plugin\MobileDetect($di->get('session'), $di->get('view'), $di->get('request'));
      new \GUCMS\Plugin\NewRelic($dispatcher, $di);
    });
 
    $eventsManager->attach('dispatch:beforeExecuteRoute', function ($event, $dispatcher) use ($di) {
      new \GUCMS\Plugin\BodyParser($di->get('request'));
    });
 
    $eventsManager->attach('dispatch:beforeExecuteRoute', new \Sid\Phalcon\AuthMiddleware\Event());
 
    $eventsManager->attach("dispatch:afterDispatchLoop", function ($event, $dispatcher) use ($di) {
      new \Seo\Plugin\SeoManager($dispatcher, $di->get('request'), $di->get('router'), $di->get('view'));
      new \GUCMS\Plugin\Title($di);
    });
 
 
    // Profiler
    $registry = $di->get('registry');
    if ($registry->cms['PROFILER']) {
      $profiler = new \Phalcon\Db\Profiler();
      $di->set('profiler', $profiler);
 
      $eventsManager->attach('db', function ($event, $db) use ($profiler) {
        if ($event->getType() == 'beforeQuery') {
          $profiler->startProfile($db->getSQLStatement());
        }
        if ($event->getType() == 'afterQuery') {
          $profiler->stopProfile();
        }
      });
    }
 
    $db = $di->get('db');
    $db->setEventsManager($eventsManager);
 
    $db2 = $di->get('db2');
    $db2->setEventsManager($eventsManager);
 
    $dispatcher->setEventsManager($eventsManager);
    $di->set('dispatcher', $dispatcher);
  }
 
  private function initView($di)
  {
    $view = new \Phalcon\Mvc\View();
 
    $theme = $di->get('config')['theme'];
    if ($theme) {
      $themePath = __DIR__ . '/themes/' . $di->get('config')['theme'] . '/';
      if (file_exists($themePath)) {
        define('MAIN_VIEW_PATH', '../../../themes/' . $theme . '/');
      } else {
        define('MAIN_VIEW_PATH', '../../../views/');
      }
    } else {
      define('MAIN_VIEW_PATH', '../../../views/');
    }
 
    $view->setMainView(MAIN_VIEW_PATH . 'main');
    $view->setLayoutsDir(MAIN_VIEW_PATH . '/layouts/');
    $view->setLayout('main');
    $view->setPartialsDir(MAIN_VIEW_PATH . '/partials/');
 
    // Volt
    $volt = new \Application\Mvc\View\Engine\Volt($view, $di);
    $volt->setOptions(['compiledPath' => APPLICATION_PATH . '/../data/cache/volt/']);
    $volt->initCompiler();
 
 
    $phtml = new \Phalcon\Mvc\View\Engine\Php($view, $di);
    $viewEngines = [
      ".volt"  => $volt,
      ".phtml" => $phtml,
    ];
 
    $view->registerEngines($viewEngines);
 
    $ajax = $di->get('request')->getQuery('_ajax');
    if ($ajax) {
      $view->setRenderLevel(\Phalcon\Mvc\View::LEVEL_LAYOUT);
    }
 
    $di->set('view', $view);
 
    return $view;
  }
 
  private function initCache($di)
  {
    $config = $di->get('config');
 
    $cacheFrontend = new \Phalcon\Cache\Frontend\Data([
      "lifetime" => 5 * 60,                             // 5 minutes
      "prefix"   => HOST_HASH,
    ]);
 
    $cache = null;
    switch ($config->cache) {
      case 'file':
        $cache = new \Phalcon\Cache\Backend\File($cacheFrontend, [
          "cacheDir" => APPLICATION_PATH . "/../data/cache/backend/",
        ]);
        break;
      case 'memcache':
        $cache = new \Phalcon\Cache\Backend\Memcache(
          $cacheFrontend, [
          "host" => $config->memcache->host,
          "port" => $config->memcache->port,
        ]);
        break;
    }
    $di->set('cache', $cache, true);
    $di->set('modelsCache', $cache, true);
 
    \Application\Widget\Proxy::$cache = $cache; // Modules Widget System
 
    $modelsMetadata = new \Phalcon\Mvc\Model\Metadata\Memory();
    $di->set('modelsMetadata', $modelsMetadata);
  }
 
  private function dispatch($di)
  {
    $router = $di['router'];
 
    $router->handle();
 
    $view = $di['view'];
 
    $dispatcher = $di['dispatcher'];
 
    $response = $di['response'];
 
    $dispatcher->setModuleName($router->getModuleName());
    $dispatcher->setControllerName($router->getControllerName());
    $dispatcher->setActionName($router->getActionName());
    $dispatcher->setParams($router->getParams());
 
    $moduleName = \Application\Utils\ModuleName::camelize($router->getModuleName());
    $ModuleClassName = $moduleName . '\Module';
    if (class_exists($ModuleClassName)) {
      $module = new $ModuleClassName;
      $module->registerAutoloaders();
      $module->registerServices($di);
 
      $theme = $di->get('config')['theme'];
      if ($theme) {
        $themePath = '/themes/' . $di->get('config')['theme'] . '/' . $moduleName . '/';
        if (file_exists(__DIR__ . $themePath)) {
          $view->setViewsDir(__DIR__ . $themePath);
        }
      }
    }
 
    /**
     * Routing for mobile API
     */
    if (strtolower($router->getModuleName()) == 'mobile') {
      $response->setContentType('application/json', 'UTF-8');
      try {
        $view->start();
        $dispatcher->dispatch();
      } catch (\Exception $e) {
        if ($e instanceof \Mobile\Validation\Exception  or $e instanceof \Index\Exception\Exception) {
 
          // 400 mean validation error
          $response->setStatusCode($e->getCode());
 
          $response->setContent(json_encode([
            "errors" => $e->getErrors(),
          ]));
 
        } else {
          $response->setContentType('application/json', 'UTF-8');
          $registry = $di['registry'];
 
          // 500 mean internal server error
          $response->setStatusCode('500');
 
          // log detail error
          $di->get('log')->error(['message' => $e->getMessage(), 'trace' => $e->getTraceAsString()]);
 
          if ($registry->cms['DEBUG_MODE']) {
 
            // in debug mode, return error with trace
            // $response->setContent($e->getMessage() . ". " . PHP_EOL . $e->getTraceAsString());
            $response->setContent(json_encode([
              "error" => $e->getMessage(),
              "trade" => $e->getTraceAsString(),
            ]));
 
          } else {
            $response->setContent(json_encode([
              "error" => $e->getMessage(),
            ]));
          }
        }
 
        $response->sendHeaders();
        echo $response->getContent();
      } finally {
        return;
      }
    }
    /**
     * If not mobile API
     */
 
    $view->start();
 
    $registry = $di['registry'];
    if ($registry->cms['DEBUG_MODE']) {
      $debug = new \Phalcon\Debug();
      $debug->listen();
      $dispatcher->dispatch();
    } else {
      try {
        $dispatcher->dispatch();
      } catch (\Phalcon\Exception $e) {
        // Errors catching
        $view->setViewsDir(__DIR__ . '/modules/Index/views/');
        $view->setPartialsDir('');
        $view->e = $e;
 
        if ($e instanceof \Phalcon\Mvc\Dispatcher\Exception) {
          $response->setHeader(404, 'Not Found');
          $view->partial('error/error404');
        } else {
          $response->setHeader(503, 'Service Unavailable');
          $view->partial('error/error503');
        }
 
        $response->sendHeaders();
        echo $response->getContent();
 
        return;
 
      }
    }
 
    $view->render(
      $dispatcher->getControllerName(),
      $dispatcher->getActionName(),
      $dispatcher->getParams()
    );
 
    $view->finish();
 
    $response = $di['response'];
 
    // AJAX
    $request = $di['request'];
    $_ajax = $request->getQuery('_ajax');
    if ($_ajax) {
      $contents = $view->getContent();
 
      $return = new \stdClass();
      $return->html = $contents;
      $return->title = $di->get('helper')->title()->get();
      $return->success = true;
 
      if ($view->bodyClass) {
        $return->bodyClass = $view->bodyClass;
      }
 
      $headers = $response->getHeaders()->toArray();
      if (isset($headers[404]) || isset($headers[503])) {
        $return->success = false;
      }
      $response->setContentType('application/json', 'UTF-8');
      $response->setContent(json_encode($return));
    } else {
      $response->setContent($view->getContent());
    }
 
    $response->sendHeaders();
 
    echo $response->getContent();
  }
 
}
#4GUCMS\Bootstrap->dispatch(Object(Phalcon\Di\FactoryDefault))
/www/be.cvreferral.com/public_html/app/Bootstrap.php (226)
<?php
 
namespace GUCMS;
 
use GUCMS\Plugin\FacebookOauthUtils;
use GUCMS\Plugin\GoogleOauthUtils;
use GUCMS\Plugin\LinkedinOauthUtils;
 
/**
 * Bootstrap
 *
 * @copyright Copyright (c) 2011 - 2014 Aleksandr Torosh (http://wezoom.com.ua)
 * @author    Aleksandr Torosh <webtorua@gmail.com>
 */
 
class Bootstrap
{
 
  public function run()
  {
    $di = new \Phalcon\DI\FactoryDefault();
    // Config
    require_once APPLICATION_PATH . '/modules/Cms/Config.php';
    $config = \Cms\Config::get();
    $di->set('config', $config);
 
    // Registry
    $registry = new \Phalcon\Registry();
    $di->set('registry', $registry);
 
    // Loader
    $loader = new \Phalcon\Loader();
    $loader->registerNamespaces($config->loader->namespaces->toArray());
    $loader->registerDirs([APPLICATION_PATH . "/plugins/"]);
    $loader->register();
 
    require_once APPLICATION_PATH . '/../vendor/autoload.php';
 
    // Database
    $di->setShared('db', function () use ($config) {
      return new \Phalcon\Db\Adapter\Pdo\Mysql([
        "host"     => $config->database->host,
        "username" => $config->database->username,
        "password" => $config->database->password,
        "dbname"   => $config->database->dbname,
        "charset"  => $config->database->charset,
      ]);
    });
 
    $di->setShared('db2', function () use ($config) {
      return new \Phalcon\Db\Adapter\Pdo\Mysql([
        "host"     => $config->database2->host,
        "username" => $config->database2->username,
        "password" => $config->database2->password,
        "dbname"   => $config->database2->dbname,
        "charset"  => $config->database2->charset,
        "options"  => [
          \PDO::ATTR_EMULATE_PREPARES  => false,
          \PDO::ATTR_STRINGIFY_FETCHES => false,
        ],
      ]);
    });
 
    // View
    $this->initView($di);
 
    // URL
    $url = new \Phalcon\Mvc\Url();
    $url->setBasePath($config->base_path);
    $url->setBaseUri($config->base_path);
    $di->set('url', $url);
 
    // Cache
    $this->initCache($di);
 
    // CMS
    $cmsModel = new \Cms\Model\Configuration();
    $registry->cms = $cmsModel->getConfig(); // Отправляем в Registry
 
    // Application
    $application = new \Phalcon\Mvc\Application();
    $application->registerModules($config->modules->toArray());
 
    // Events Manager, Dispatcher
    $this->initEventManager($di);
 
    // Session
    $session = new \Phalcon\Session\Adapter\Files();
    $session->start();
    $di->set('session', $session);
 
    $acl = new \Application\Acl\DefaultAcl();
    $di->set('acl', $acl);
 
    // JS Assets
    $this->initAssetsManager($di);
 
    // Flash helper
    $flash = new \Application\Ext\Flash\FlashMessage([
      'error'   => 'alert alert-danger',
      'success' => 'alert alert-success',
      'notice'  => 'alert alert-info',
      'warning' => 'alert alert-warning',
    ]);
    $di->set('flash', $flash);
 
    $di->set('helper', new \Application\Mvc\Helper());
 
    /**
     * Custom DI
     */
    $di->setShared('email', function () use ($config) {
      return new \Application\Mvc\EmailHelper([
        'host'       => $config->mail->host,
        'port'       => $config->mail->port,
        'name'       => $config->mail->name,
        'pass'       => $config->mail->pass,
        'secured'    => $config->mail->secured,
        'from_email' => $config->mail->from_email,
        'from_name'  => $config->mail->from_name,
      ]);
    });
 
    $di->setShared('log', function () use ($config) {
      return new \Application\Mvc\LogHelper();
    });
 
    $di->setShared('cookies', function () {
      $cookies = new \Phalcon\Http\Response\Cookies();
      $cookies->useEncryption(false);
 
      return $cookies;
    });
 
    $di->setShared('googleOauthClient', function () use ($config) {
      return new GoogleOauthUtils([
        'clientId'     => $config->googleOauth->client_id,
        'clientSecret' => $config->googleOauth->client_secret,
      ]);
    });
 
    $di->setShared('facebookOauthClient', function () use ($config) {
      return new FacebookOauthUtils([
        'app_id'                => $config->fb->app_id,
        'app_secret'            => $config->fb->app_secret,
        'default_graph_version' => $config->fb->default_graph_version,
      ]);
    });
 
    $di->setShared('linkedinOauthClient', function () use ($config) {
      return new LinkedinOauthUtils([
        'app_id'     => $config->linkedin->app_id,
        'app_secret' => $config->linkedin->app_secret,
      ]);
    });
 
    $di->setShared('hrxmlParser', function () use ($config) {
      return \Hrxml\Parser::getInstance();
    });
 
    $di->setShared('resumeParser', function () use ($config) {
      return new \ResumeParser\ParserService($config->rchilli->key, $config->rchilli->user, $config->rchilli->wsdl);
    });
 
    $di->setShared('jwtUtils', function () use ($config) {
      return new \GUCMS\Plugin\JWTUtils([
        'key'           => $config->jwt->key,
        'lifetime'      => $config->jwt->lifetime,
        'global_domain' => $config->jwt->global_domain,
      ]);
    });
 
    $di->setShared('markdownParser', function () use ($config) {
      return new \League\CommonMark\CommonMarkConverter();
    });
 
    $di->setShared('s3', function () use ($config) {
      $credentials = new \Aws\Credentials\Credentials($config->aws->key, $config->aws->secret);
 
      $s3 = new \Aws\S3\S3Client([
        'version'     => 'latest',
        'region'      => $config->s3_upload->region,
        'credentials' => $credentials,
      ]);
 
      return $s3;
    });
 
    /**
     * undocumented class variable
     *
     * @var string
     **/
    $di->setShared('elastica', function () use ($di) {
      $elasticaClient = new \Elastica\Client([
        'host' => $di->getConfig()->elasticsearch->host,
        'port' => $di->getConfig()->elasticsearch->port,
      ]);
 
      return $elasticaClient;
    });
 
    # Config Ampq
    $di->setShared('amqp', function () use ($config) {
      return new \GUCMS\Plugin\Amqp([
        'host'     => $config->amqp->host,
        'port'     => $config->amqp->port,
        'user'     => $config->amqp->user,
        'pass'     => $config->amqp->pass,
        'vhost'    => $config->amqp->vhost,
        'queue'    => $config->amqp->queue,
        'exchange' => $config->amqp->exchange,
      ]);
    });
 
    $di->setShared('candidateFromExcelHelper', function () use ($config) {
      return new \GUCMS\Plugin\CandidateFromExcelHelper();
    });
 
    // Routing
    $this->initRouting($application, $di);
 
    $application->setDI($di);
 
    // Main dispatching process
    $this->dispatch($di);
 
  }
 
  private function initRouting($application, $di)
  {
    $router = new \Application\Mvc\Router\DefaultRouter();
    $router->setDi($di);
    foreach ($application->getModules() as $module) {
      $routesClassName = str_replace('Module', 'Routes', $module['className']);
      if (class_exists($routesClassName)) {
        $routesClass = new $routesClassName();
        $router = $routesClass->init($router);
      }
      $initClassName = str_replace('Module', 'Init', $module['className']);
      if (class_exists($initClassName)) {
        new $initClassName();
      }
    }
    $di->set('router', $router);
  }
 
  private function initAssetsManager($di)
  {
    $config = $di->get('config');
    $isProductionEnv = APPLICATION_ENV == "production";
    $locator = '';
    $jsMin = $isProductionEnv ? new \Phalcon\Assets\Filters\Jsmin() : new \Phalcon\Assets\Filters\None();
    $cssMin = $isProductionEnv ? new \Phalcon\Assets\Filters\Cssmin() : new \Phalcon\Assets\Filters\None();
 
    $assetsManager = new \Application\Assets\Manager();
    if ($isProductionEnv) {
      $js_collection = $assetsManager->collection('js')
        ->setLocal(true)
        ->addFilter($jsMin)
        ->setTargetPath(ROOT . '/assets/main.js')
        ->setTargetUri('assets/main.js')
        ->join($isProductionEnv);
    } else {
      $js_collection = $assetsManager->collection('js')->setLocal(true);
    }
    if ($config->assets->js) {
      foreach ($config->assets->js as $js) {
        $js_collection->addJs($locator . $js);
      }
    }
 
    if ($isProductionEnv) {
      $css_collection = $assetsManager->collection('css')
        ->setLocal(true)
        ->addFilter($cssMin)
        ->setTargetPath(ROOT . '/assets/main.min.css')
        ->setTargetUri('/assets/main.min.css')
        ->join($isProductionEnv);
    } else {
      $css_collection = $assetsManager->collection('css')->setLocal(true);
    }
    if ($config->assets->css) {
      foreach ($config->assets->css as $css) {
        $css_collection->addCss($locator . $css);
      }
    }
 
    // Admin JS Assets
    $assetsManager->collection('modules-admin-js')
      ->setLocal(false)
      ->addFilter(new \Phalcon\Assets\Filters\Jsmin())
      ->setTargetPath(ROOT . '/assets/modules-admin.js')
      ->setTargetUri('assets/modules-admin.js')
      ->join(true);
 
    // Admin LESS Assets
    $assetsManager->collection('modules-admin-less')
      ->setLocal(false)
      ->addFilter(new \Application\Assets\Filter\Less())
      ->setTargetPath(ROOT . '/assets/modules-admin.less')
      ->setTargetUri('assets/modules-admin.less')
      ->join(true)
      ->addCss(APPLICATION_PATH . '/modules/Admin/assets/admin.less');
 
    $di->set('assets', $assetsManager);
    $admin_js_collection = $assetsManager->collection('admin_js')->join($isProductionEnv);
    if ($config->assets->admin_js) {
      foreach ($config->assets->admin_js as $js) {
        $admin_js_collection->addJs($js);
      }
    }
 
    $admin_css_collection = $assetsManager->collection('admin_css')->setLocal(true);
    if ($config->assets->admin_css) {
      foreach ($config->assets->admin_css as $css) {
        $admin_css_collection->addCss($css);
      }
    }
  }
 
  private function initEventManager($di)
  {
    $eventsManager = new \Phalcon\Events\Manager();
    $dispatcher = new \Phalcon\Mvc\Dispatcher();
 
    $eventsManager->attach("dispatch:beforeDispatchLoop", function ($event, $dispatcher) use ($di) {
      new \GUCMS\Plugin\EcoUser($di->get('cookies'), $di->get('jwtUtils'), $di->get('request'), $di);
      new \GUCMS\Plugin\CheckPoint($di->get('request'));
      new \GUCMS\Plugin\Localization($dispatcher);
      new \GUCMS\Plugin\AdminLocalization($di->get('config'));
      new \GUCMS\Plugin\Acl($di->get('acl'), $dispatcher, $di->get('view'));
      new \GUCMS\Plugin\MobileDetect($di->get('session'), $di->get('view'), $di->get('request'));
      new \GUCMS\Plugin\NewRelic($dispatcher, $di);
    });
 
    $eventsManager->attach('dispatch:beforeExecuteRoute', function ($event, $dispatcher) use ($di) {
      new \GUCMS\Plugin\BodyParser($di->get('request'));
    });
 
    $eventsManager->attach('dispatch:beforeExecuteRoute', new \Sid\Phalcon\AuthMiddleware\Event());
 
    $eventsManager->attach("dispatch:afterDispatchLoop", function ($event, $dispatcher) use ($di) {
      new \Seo\Plugin\SeoManager($dispatcher, $di->get('request'), $di->get('router'), $di->get('view'));
      new \GUCMS\Plugin\Title($di);
    });
 
 
    // Profiler
    $registry = $di->get('registry');
    if ($registry->cms['PROFILER']) {
      $profiler = new \Phalcon\Db\Profiler();
      $di->set('profiler', $profiler);
 
      $eventsManager->attach('db', function ($event, $db) use ($profiler) {
        if ($event->getType() == 'beforeQuery') {
          $profiler->startProfile($db->getSQLStatement());
        }
        if ($event->getType() == 'afterQuery') {
          $profiler->stopProfile();
        }
      });
    }
 
    $db = $di->get('db');
    $db->setEventsManager($eventsManager);
 
    $db2 = $di->get('db2');
    $db2->setEventsManager($eventsManager);
 
    $dispatcher->setEventsManager($eventsManager);
    $di->set('dispatcher', $dispatcher);
  }
 
  private function initView($di)
  {
    $view = new \Phalcon\Mvc\View();
 
    $theme = $di->get('config')['theme'];
    if ($theme) {
      $themePath = __DIR__ . '/themes/' . $di->get('config')['theme'] . '/';
      if (file_exists($themePath)) {
        define('MAIN_VIEW_PATH', '../../../themes/' . $theme . '/');
      } else {
        define('MAIN_VIEW_PATH', '../../../views/');
      }
    } else {
      define('MAIN_VIEW_PATH', '../../../views/');
    }
 
    $view->setMainView(MAIN_VIEW_PATH . 'main');
    $view->setLayoutsDir(MAIN_VIEW_PATH . '/layouts/');
    $view->setLayout('main');
    $view->setPartialsDir(MAIN_VIEW_PATH . '/partials/');
 
    // Volt
    $volt = new \Application\Mvc\View\Engine\Volt($view, $di);
    $volt->setOptions(['compiledPath' => APPLICATION_PATH . '/../data/cache/volt/']);
    $volt->initCompiler();
 
 
    $phtml = new \Phalcon\Mvc\View\Engine\Php($view, $di);
    $viewEngines = [
      ".volt"  => $volt,
      ".phtml" => $phtml,
    ];
 
    $view->registerEngines($viewEngines);
 
    $ajax = $di->get('request')->getQuery('_ajax');
    if ($ajax) {
      $view->setRenderLevel(\Phalcon\Mvc\View::LEVEL_LAYOUT);
    }
 
    $di->set('view', $view);
 
    return $view;
  }
 
  private function initCache($di)
  {
    $config = $di->get('config');
 
    $cacheFrontend = new \Phalcon\Cache\Frontend\Data([
      "lifetime" => 5 * 60,                             // 5 minutes
      "prefix"   => HOST_HASH,
    ]);
 
    $cache = null;
    switch ($config->cache) {
      case 'file':
        $cache = new \Phalcon\Cache\Backend\File($cacheFrontend, [
          "cacheDir" => APPLICATION_PATH . "/../data/cache/backend/",
        ]);
        break;
      case 'memcache':
        $cache = new \Phalcon\Cache\Backend\Memcache(
          $cacheFrontend, [
          "host" => $config->memcache->host,
          "port" => $config->memcache->port,
        ]);
        break;
    }
    $di->set('cache', $cache, true);
    $di->set('modelsCache', $cache, true);
 
    \Application\Widget\Proxy::$cache = $cache; // Modules Widget System
 
    $modelsMetadata = new \Phalcon\Mvc\Model\Metadata\Memory();
    $di->set('modelsMetadata', $modelsMetadata);
  }
 
  private function dispatch($di)
  {
    $router = $di['router'];
 
    $router->handle();
 
    $view = $di['view'];
 
    $dispatcher = $di['dispatcher'];
 
    $response = $di['response'];
 
    $dispatcher->setModuleName($router->getModuleName());
    $dispatcher->setControllerName($router->getControllerName());
    $dispatcher->setActionName($router->getActionName());
    $dispatcher->setParams($router->getParams());
 
    $moduleName = \Application\Utils\ModuleName::camelize($router->getModuleName());
    $ModuleClassName = $moduleName . '\Module';
    if (class_exists($ModuleClassName)) {
      $module = new $ModuleClassName;
      $module->registerAutoloaders();
      $module->registerServices($di);
 
      $theme = $di->get('config')['theme'];
      if ($theme) {
        $themePath = '/themes/' . $di->get('config')['theme'] . '/' . $moduleName . '/';
        if (file_exists(__DIR__ . $themePath)) {
          $view->setViewsDir(__DIR__ . $themePath);
        }
      }
    }
 
    /**
     * Routing for mobile API
     */
    if (strtolower($router->getModuleName()) == 'mobile') {
      $response->setContentType('application/json', 'UTF-8');
      try {
        $view->start();
        $dispatcher->dispatch();
      } catch (\Exception $e) {
        if ($e instanceof \Mobile\Validation\Exception  or $e instanceof \Index\Exception\Exception) {
 
          // 400 mean validation error
          $response->setStatusCode($e->getCode());
 
          $response->setContent(json_encode([
            "errors" => $e->getErrors(),
          ]));
 
        } else {
          $response->setContentType('application/json', 'UTF-8');
          $registry = $di['registry'];
 
          // 500 mean internal server error
          $response->setStatusCode('500');
 
          // log detail error
          $di->get('log')->error(['message' => $e->getMessage(), 'trace' => $e->getTraceAsString()]);
 
          if ($registry->cms['DEBUG_MODE']) {
 
            // in debug mode, return error with trace
            // $response->setContent($e->getMessage() . ". " . PHP_EOL . $e->getTraceAsString());
            $response->setContent(json_encode([
              "error" => $e->getMessage(),
              "trade" => $e->getTraceAsString(),
            ]));
 
          } else {
            $response->setContent(json_encode([
              "error" => $e->getMessage(),
            ]));
          }
        }
 
        $response->sendHeaders();
        echo $response->getContent();
      } finally {
        return;
      }
    }
    /**
     * If not mobile API
     */
 
    $view->start();
 
    $registry = $di['registry'];
    if ($registry->cms['DEBUG_MODE']) {
      $debug = new \Phalcon\Debug();
      $debug->listen();
      $dispatcher->dispatch();
    } else {
      try {
        $dispatcher->dispatch();
      } catch (\Phalcon\Exception $e) {
        // Errors catching
        $view->setViewsDir(__DIR__ . '/modules/Index/views/');
        $view->setPartialsDir('');
        $view->e = $e;
 
        if ($e instanceof \Phalcon\Mvc\Dispatcher\Exception) {
          $response->setHeader(404, 'Not Found');
          $view->partial('error/error404');
        } else {
          $response->setHeader(503, 'Service Unavailable');
          $view->partial('error/error503');
        }
 
        $response->sendHeaders();
        echo $response->getContent();
 
        return;
 
      }
    }
 
    $view->render(
      $dispatcher->getControllerName(),
      $dispatcher->getActionName(),
      $dispatcher->getParams()
    );
 
    $view->finish();
 
    $response = $di['response'];
 
    // AJAX
    $request = $di['request'];
    $_ajax = $request->getQuery('_ajax');
    if ($_ajax) {
      $contents = $view->getContent();
 
      $return = new \stdClass();
      $return->html = $contents;
      $return->title = $di->get('helper')->title()->get();
      $return->success = true;
 
      if ($view->bodyClass) {
        $return->bodyClass = $view->bodyClass;
      }
 
      $headers = $response->getHeaders()->toArray();
      if (isset($headers[404]) || isset($headers[503])) {
        $return->success = false;
      }
      $response->setContentType('application/json', 'UTF-8');
      $response->setContent(json_encode($return));
    } else {
      $response->setContent($view->getContent());
    }
 
    $response->sendHeaders();
 
    echo $response->getContent();
  }
 
}
#5GUCMS\Bootstrap->run()
/www/be.cvreferral.com/public_html/web/index.php (36)
<?php
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS');
header("Access-Control-Allow-Headers: X-Requested-With, Authorization, Content-Type, fromDomain, X-Access-Token");
 
 
 
if ($_SERVER['REQUEST_METHOD'] === 'OPTIONS') {
 
  echo 1;die;
 
} else {
 
  defined('APPLICATION_ENV') || define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'production'));
 
  if (APPLICATION_ENV === 'development' || APPLICATION_ENV === 'staging') {
    //@TODO: fixed me by update docker to allow config php.ini
    ini_set('error_reporting', 1);
    ini_set('display_errors', 1);
    error_reporting(E_ERROR);
    ini_set('display_startup_errors', 0);
    ini_set('log_errors', 1);
 
  }
 
  chdir(dirname(__DIR__));
 
  define('ROOT', __DIR__);
  define('HOST_HASH', substr(md5($_SERVER['HTTP_HOST']), 0, 12));
 
 
  define('APPLICATION_PATH', __DIR__ . '/../app');
 
  require_once APPLICATION_PATH . '/Bootstrap.php';
  $bootstrap = new GUCMS\Bootstrap();
  $bootstrap->run();
 
}
KeyValue
_url/forgotpassword
rref
KeyValue
TEMP/tmp
TMPDIR/tmp
TMP/tmp
PATH/usr/local/bin:/usr/bin:/bin
HOSTNAME
USERnginx
HOME/var/lib/nginx
HTTP_ACCEPT_ENCODINGgzip
HTTP_IF_MODIFIED_SINCEWed, 16 Oct 2019 02:27:05 PDT
HTTP_ACCEPT_LANGUAGEen-US,en;q=0.5
HTTP_ACCEPTtext/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
HTTP_USER_AGENTCCBot/2.0 (https://commoncrawl.org/faq/)
HTTP_CONNECTIONclose
HTTP_X_REAL_SCHEMEhttps
HTTP_X_FORWARDED_FOR18.205.176.85
HTTP_X_REAL_IP18.205.176.85
HTTP_HOSTaccounts.cvreferral.com
SCRIPT_FILENAME/www/be.cvreferral.com/public_html/web/index.php
PATH_TRANSLATED/www/be.cvreferral.com/public_html/web
PATH_INFO
ZALO_ACCESS_TOKENks-PM9iPIcopPvPUcX15RxDjdLYL3Gu7_XhSOwWsRrF9BxqHw2WPGxCAkppjAX5BaJtFDCnAGdljGfivhsW139Dgs6RI400aj3sk6FOs0cdNAziPWI9ULCWPX1-1RmnDz7ke0w9n5NVcJxGtepSR0iWgfdxW43nFlXMSE9OD0mhLSQ4yz7KGQjS8oZRn46bZY2d07DyER2g1CkrkuZvaAQ0NsNl61a8avJtAQxz75XlaJhvxbcaMCiXqcK2WRWOzY7MWSSbwVHsYOjugq6y1GX5EwmMP3qPe
ZALO_APP_SECRECT_KEYVIntRHF8Yd67BNf8Djva
ZALO_APP_ID4518819077898483327
ZALO_OA_SECRECT_KEY8VNYC85TPH4DhU3BqI7L
ZALO_OA_ID3183219118599168667
ZALO_API_URLhttps://openapi.zalo.me/v2.0/oa/
ESMS_BRAND_NAMECVReferral
ESMS_API_URLhttp://api.esms.vn/MainService.svc/xml/SendMultipleMessage_V4/
ESMS_SECRET_KEY5C2F9B040620A65740E62DC29237C8
ESMS_API_KEY34F86C94BB6AEBDF3410F5EE56912F
AUTH_PWqEKkg9
AUTH_USERadmin
ONESIGNAL_APP_KEYMWRkZDViZGItODUwNS00Mjg0LTkwZjEtY2E5ZTUzNTMxYjVh
ONESIGNAL_APP_IDfd47ff52-d34a-4eca-a84b-23476250f69e
RCHILLI_WSDLhttp://cvreferral.rchilli.com/RChilliParser/services/RChilliParser?wsdl
RCHILLI_USERcvreferral
RCHILLI_KEYWXE70UBKIPZ
HTML2PDF_URLhttp://html2pdf:8080/convert?auth=arachnys-weaver&url=
PDF_CONVERTER_MEDIAhttps://pdf.cvreferral.com
PDF_CONVERTER_URLhttps://pdf.cvreferral.com/api/v1
ELASTIC_SEARCH_PORT9201
ELASTIC_SEARCH_HOST10.158.14.54
S3_UPLOAD_REGIONus-west-1
S3_UPLOAD_BUCKETmagnetoproduction
AWS_SECRETxKULkSMOaEl3g28/kcbU3QHr8BsagfgHynNDDLKY
AWS_KEYAKIAI4QTNC6RGROIISSQ
AMQP_EXCHANGErouter
AMQP_QUEUEemail_queue
AMQP_VHOSTmagneto_vhost
AMQP_PASSgu123451
AMQP_USERmagneto
AMQP_PORT5672
AMQP_HOSTqueue
SMTP_FROM_NAMECVreferral
SMTP_FROM_MAILno-reply@cvreferral.com
SMTP_IS_SECURE1
SMTP_PASSK44FRZLmxX7XgsgUtMJ5Ce79
SMTP_NAMEstmp-1
SMTP_PORT587
SMTP_HOSTsmtp.sendgrid.net
USE_EMAIL_WORKER0
FB_DEFAULT_GRAPH_VERSIONv2.5
FB_APP_SECRET3736de3f8bf259ec12ae1f3340a2b879
FB_APP_ID243529006083457
LINKEDIN_APP_SECRET3If8YpEPPLKAenPU
LINKEDIN_APP_ID815fboyxzih3c7
GOOGLE_CLIENT_SECRETZ_7pYo6fG1FMlfsyeFEJsiHd
GOOGLE_CLIENT_ID755880203915-00fpnmgoalqrs1vg16famgmk78i04nmp.apps.googleusercontent.com
RECAPTCHA_PRIVATE_KEY6LeUFREUAAAAAGmxSfghop01Y8EeyVNvzrQHK1OU
RECAPTCHA_PUBLIC_KEY6LeUFREUAAAAABR9vfHSbGx8zhnKoSWWAaptI5TD
DB2_NAMEmagneto
DB2_PASSdba@cvreferral
DB2_USERcvr-prod
DB2_HOST10.158.14.53
DB_NAMEcms_prod
DB_PASSdba@cvreferral
DB_USERcvr-prod
DB_HOST10.158.14.53
JWT_LIFETIME1296000
JWT_KEYhqqBylYoDasJFf1yXRSe
TERM_OF_SERICEhttps://cvreferral.com/dieu-khoan-dich-vu/
HOME_PAGEhttps://cvreferral.com
JOB_BOARD_URLhttps://jobs.cvreferral.com
GLOBAL_DOMAIN.cvreferral.com
UNSUBCRIBLE_LINKhttps://accounts.cvreferral.com/email-setting/unsubcrible
LANDING_PAGEhttps://www.cvreferral.com/
REFERRER_APP_URLhttps://referrer.cvreferral.com/
BASE_URLhttps://accounts.cvreferral.com/
APPLICATION_ENVdevelopment
ALLOW_OVERRIDEtrue
APP_NAMEreferrerApi
TZAsia/Saigon
REDIRECT_STATUS200
SERVER_NAMEaccounts.cvreferral.com
SERVER_PORT8005
SERVER_ADDR10.158.14.51
REMOTE_PORT45904
REMOTE_ADDR10.158.14.51
SERVER_SOFTWAREnginx/1.12.2
GATEWAY_INTERFACECGI/1.1
REQUEST_SCHEMEhttp
SERVER_PROTOCOLHTTP/1.1
DOCUMENT_ROOT/www/be.cvreferral.com/public_html/web
DOCUMENT_URI/index.php
REQUEST_URI/forgotpassword?r=ref
SCRIPT_NAME/index.php
CONTENT_LENGTH
CONTENT_TYPE
REQUEST_METHODGET
QUERY_STRING_url=/forgotpassword&r=ref
FCGI_ROLERESPONDER
PHP_SELF/index.php
REQUEST_TIME_FLOAT1574324366.5839
REQUEST_TIME1574324366
#Path
0/www/be.cvreferral.com/public_html/web/index.php
1/www/be.cvreferral.com/public_html/app/Bootstrap.php
2/www/be.cvreferral.com/public_html/app/modules/Cms/Config.php
3/www/be.cvreferral.com/public_html/app/config/environment/development.php
4/www/be.cvreferral.com/public_html/app/config/global.php
5/www/be.cvreferral.com/public_html/app/themes/magneto/config/assets/assets.php
6/www/be.cvreferral.com/public_html/app/config/assets/_admin.php
7/www/be.cvreferral.com/public_html/app/config/assets/_front_page.php
8/www/be.cvreferral.com/public_html/app/config/modules.php
9/www/be.cvreferral.com/public_html/app/modules/Application/Loader/Modules.php
10/www/be.cvreferral.com/public_html/vendor/autoload.php
11/www/be.cvreferral.com/public_html/vendor/composer/autoload_real.php
12/www/be.cvreferral.com/public_html/vendor/composer/ClassLoader.php
13/www/be.cvreferral.com/public_html/vendor/composer/include_paths.php
14/www/be.cvreferral.com/public_html/vendor/composer/autoload_static.php
15/www/be.cvreferral.com/public_html/vendor/symfony/polyfill-mbstring/bootstrap.php
16/www/be.cvreferral.com/public_html/vendor/symfony/polyfill-ctype/bootstrap.php
17/www/be.cvreferral.com/public_html/vendor/ralouphie/getallheaders/src/getallheaders.php
18/www/be.cvreferral.com/public_html/vendor/guzzlehttp/psr7/src/functions_include.php
19/www/be.cvreferral.com/public_html/vendor/guzzlehttp/psr7/src/functions.php
20/www/be.cvreferral.com/public_html/vendor/cakephp/core/functions.php
21/www/be.cvreferral.com/public_html/vendor/guzzlehttp/promises/src/functions_include.php
22/www/be.cvreferral.com/public_html/vendor/guzzlehttp/promises/src/functions.php
23/www/be.cvreferral.com/public_html/vendor/guzzlehttp/guzzle/src/functions_include.php
24/www/be.cvreferral.com/public_html/vendor/guzzlehttp/guzzle/src/functions.php
25/www/be.cvreferral.com/public_html/vendor/symfony/polyfill-php72/bootstrap.php
26/www/be.cvreferral.com/public_html/vendor/symfony/polyfill-php72/Php72.php
27/www/be.cvreferral.com/public_html/vendor/symfony/var-dumper/Resources/functions/dump.php
28/www/be.cvreferral.com/public_html/vendor/facebook/graph-sdk/src/Facebook/polyfills.php
29/www/be.cvreferral.com/public_html/vendor/react/promise/src/functions_include.php
30/www/be.cvreferral.com/public_html/vendor/react/promise/src/functions.php
31/www/be.cvreferral.com/public_html/vendor/mtdowling/jmespath.php/src/JmesPath.php
32/www/be.cvreferral.com/public_html/vendor/aws/aws-sdk-php/src/functions.php
33/www/be.cvreferral.com/public_html/vendor/cakephp/collection/functions.php
34/www/be.cvreferral.com/public_html/vendor/cakephp/utility/bootstrap.php
35/www/be.cvreferral.com/public_html/vendor/cakephp/utility/Inflector.php
36/www/be.cvreferral.com/public_html/vendor/myclabs/deep-copy/src/DeepCopy/deep_copy.php
37/www/be.cvreferral.com/public_html/vendor/psy/psysh/src/functions.php
38/www/be.cvreferral.com/public_html/vendor/donatj/phpuseragentparser/src/UserAgentParser.php
39/www/be.cvreferral.com/public_html/app/modules/Application/Mvc/View/Engine/Volt.php
40/www/be.cvreferral.com/public_html/app/modules/Application/Widget/Proxy.php
41/www/be.cvreferral.com/public_html/app/modules/Cms/Model/Configuration.php
42/www/be.cvreferral.com/public_html/vendor/sidroberts/phalcon-authmiddleware/src/Event.php
43/www/be.cvreferral.com/public_html/app/modules/Application/Acl/DefaultAcl.php
44/www/be.cvreferral.com/public_html/app/config/acl.php
45/www/be.cvreferral.com/public_html/app/modules/Application/Assets/Manager.php
46/www/be.cvreferral.com/public_html/app/modules/Application/Assets/Filter/Less.php
47/www/be.cvreferral.com/public_html/app/modules/Application/Ext/Flash/FlashMessage.php
48/www/be.cvreferral.com/public_html/app/modules/Application/Mvc/Helper.php
49/www/be.cvreferral.com/public_html/app/modules/Menu/Helper/Menu.php
50/www/be.cvreferral.com/public_html/app/modules/Application/Mvc/Router/DefaultRouter.php
51/www/be.cvreferral.com/public_html/app/modules/Index/Routes.php
52/www/be.cvreferral.com/public_html/app/modules/Index/Router/AfterLoginRecruiterRouter.php
53/www/be.cvreferral.com/public_html/app/modules/Index/Router/AfterLoginReferrerRouter.php
54/www/be.cvreferral.com/public_html/app/modules/Index/Router/AuthRouter.php
55/www/be.cvreferral.com/public_html/app/modules/Index/Router/ForgotPasswordRouter.php
56/www/be.cvreferral.com/public_html/app/modules/Index/Router/ForgotPasswordApiRouter.php
57/www/be.cvreferral.com/public_html/app/modules/Index/Router/JobRouter.php
58/www/be.cvreferral.com/public_html/app/modules/Index/Router/CompanyRouter.php
59/www/be.cvreferral.com/public_html/app/modules/Index/Router/ProfileRouter.php
60/www/be.cvreferral.com/public_html/app/modules/Index/Router/LoginRecruiterRouter.php
61/www/be.cvreferral.com/public_html/app/modules/Index/Router/LoginReferrerRouter.php
62/www/be.cvreferral.com/public_html/app/modules/Index/Router/LoginInvitationRouter.php
63/www/be.cvreferral.com/public_html/app/modules/Index/Router/LogoutRouter.php
64/www/be.cvreferral.com/public_html/app/modules/Index/Router/RegisterRecruiterRouter.php
65/www/be.cvreferral.com/public_html/app/modules/Index/Router/RegisterReferrerRouter.php
66/www/be.cvreferral.com/public_html/app/modules/Index/Router/ReportRouter.php
67/www/be.cvreferral.com/public_html/app/modules/Index/Router/SubcribleRouter.php
68/www/be.cvreferral.com/public_html/app/modules/Admin/Routes.php
69/www/be.cvreferral.com/public_html/app/modules/Admin/Router/AdminBillingRouter.php
70/www/be.cvreferral.com/public_html/app/modules/Admin/Router/AdminWithdrawRouter.php
71/www/be.cvreferral.com/public_html/app/modules/Admin/Router/AdminPackageRouter.php
72/www/be.cvreferral.com/public_html/app/modules/Admin/Router/AdminUserRouter.php
73/www/be.cvreferral.com/public_html/app/modules/Admin/Router/AdminReferrerRouter.php
74/www/be.cvreferral.com/public_html/app/modules/Admin/Router/AdminPedingInvitationReferrerRouter.php
75/www/be.cvreferral.com/public_html/app/modules/Admin/Router/AdminRecruiterRouter.php
76/www/be.cvreferral.com/public_html/app/modules/Admin/Router/AdminCompanyReportRouter.php
77/www/be.cvreferral.com/public_html/app/modules/Admin/Router/AdminReferrerBalanceAmountRouter.php
78/www/be.cvreferral.com/public_html/app/modules/Admin/Router/AdminSubmissionReportRouter.php
79/www/be.cvreferral.com/public_html/app/modules/Admin/Router/AdminCompanyBalanceAmountRouter.php
80/www/be.cvreferral.com/public_html/app/modules/Admin/Router/AdminManageRecruiterRouter.php
81/www/be.cvreferral.com/public_html/app/modules/Admin/Router/AdminManageReferrerRouter.php
82/www/be.cvreferral.com/public_html/app/modules/Admin/Router/AdminManageBalanceRouter.php
83/www/be.cvreferral.com/public_html/app/modules/Admin/Router/AdminManageReferralRouter.php
84/www/be.cvreferral.com/public_html/app/modules/Admin/Router/AdminManageReportRouter.php
85/www/be.cvreferral.com/public_html/app/modules/Admin/Router/AdminManageComplainSubmissionRouter.php
86/www/be.cvreferral.com/public_html/app/modules/Staff/Routes.php
87/www/be.cvreferral.com/public_html/app/modules/Staff/Model/Type.php
88/www/be.cvreferral.com/public_html/app/modules/Application/Mvc/Model/Model.php
89/www/be.cvreferral.com/public_html/app/modules/Application/Mvc/Helper/CmsCache.php
90/www/be.cvreferral.com/public_html/app/modules/Widget/Routes.php
91/www/be.cvreferral.com/public_html/app/modules/Page/Routes.php
92/www/be.cvreferral.com/public_html/app/modules/Page/Model/Page.php
93/www/be.cvreferral.com/public_html/app/modules/Application/Utils/Tree/Node/NodeTrait.php
94/www/be.cvreferral.com/public_html/app/modules/Application/Utils/Tree/Builder/TreeBuilderTrait.php
95/www/be.cvreferral.com/public_html/app/modules/Publication/Routes.php
96/www/be.cvreferral.com/public_html/app/modules/Publication/Model/Type.php
97/www/be.cvreferral.com/public_html/app/modules/Slider/Routes.php
98/www/be.cvreferral.com/public_html/app/modules/Seo/Routes.php
99/www/be.cvreferral.com/public_html/app/modules/Menu/Routes.php
100/www/be.cvreferral.com/public_html/app/modules/Menu/Model/Type.php
101/www/be.cvreferral.com/public_html/app/modules/Tree/Init.php
102/www/be.cvreferral.com/public_html/app/modules/Tree/Mvc/Helper.php
103/www/be.cvreferral.com/public_html/app/modules/Sitemap/Routes.php
104/www/be.cvreferral.com/public_html/app/modules/Mobile/Routes.php
105/www/be.cvreferral.com/public_html/app/modules/Mobile/Router/CandidateRouter.php
106/www/be.cvreferral.com/public_html/app/modules/Mobile/Router/JobRouter.php
107/www/be.cvreferral.com/public_html/app/modules/Mobile/Router/PublicJobRouter.php
108/www/be.cvreferral.com/public_html/app/modules/Mobile/Router/InternalJobRouter.php
109/www/be.cvreferral.com/public_html/app/modules/Mobile/Router/StorageRouter.php
110/www/be.cvreferral.com/public_html/app/modules/Mobile/Router/SubmissionRouter.php
111/www/be.cvreferral.com/public_html/app/modules/Mobile/Router/ProfileRouter.php
112/www/be.cvreferral.com/public_html/app/modules/Mobile/Router/ResumeRouter.php
113/www/be.cvreferral.com/public_html/app/modules/Mobile/Router/NotificationRouter.php
114/www/be.cvreferral.com/public_html/app/modules/Mobile/Router/BankAccountRouter.php
115/www/be.cvreferral.com/public_html/app/modules/Mobile/Router/MassCandidateRouter.php
116/www/be.cvreferral.com/public_html/app/modules/Mobile/Router/ReferrerShareJobRouter.php
117/www/be.cvreferral.com/public_html/app/modules/Mobile/Router/RewardRedeemRouter.php
118/www/be.cvreferral.com/public_html/app/modules/Mobile/Router/UsersRouter.php
119/www/be.cvreferral.com/public_html/app/modules/Application/Utils/ModuleName.php
120/www/be.cvreferral.com/public_html/app/modules/Index/Module.php
121/www/be.cvreferral.com/public_html/app/plugins/EcoUser.php
122/www/be.cvreferral.com/public_html/app/plugins/JWTUtils.php
123/www/be.cvreferral.com/public_html/vendor/firebase/php-jwt/src/JWT.php
124/www/be.cvreferral.com/public_html/app/plugins/CheckPoint.php
125/www/be.cvreferral.com/public_html/app/plugins/Localization.php
126/www/be.cvreferral.com/public_html/app/modules/Cms/Model/Translate.php
127/www/be.cvreferral.com/public_html/app/plugins/AdminLocalization.php
128/www/be.cvreferral.com/public_html/data/translations/admin/en.php
129/www/be.cvreferral.com/public_html/app/plugins/Acl.php
130/www/be.cvreferral.com/public_html/app/plugins/MobileDetect.php
131/www/be.cvreferral.com/public_html/vendor/mobiledetect/mobiledetectlib/Mobile_Detect.php
132/www/be.cvreferral.com/public_html/app/plugins/NewRelic.php
133/www/be.cvreferral.com/public_html/app/modules/Index/Controller/ForgotPasswordController.php
134/www/be.cvreferral.com/public_html/app/modules/Application/Mvc/Controller.php
135/www/be.cvreferral.com/public_html/app/plugins/BodyParser.php
136/www/be.cvreferral.com/public_html/app/modules/Application/Middleware/PreventLogined.php
137/www/be.cvreferral.com/public_html/vendor/sidroberts/phalcon-authmiddleware/src/MiddlewareInterface.php
138/www/be.cvreferral.com/public_html/app/modules/Application/Mvc/LogHelper.php
Memory
Usage2097152