Phalcon Framework 3.4.5

Error: Class 'Phalcon\Breadcrumbs\Exception\InvalidArgumentException' not found

/var/www/html/actiage/shared/vendor/phalcon/breadcrumbs/src/Breadcrumbs.php (313)
#0Phalcon\Breadcrumbs->add(null, null, Array([linked] => ))
/var/www/html/actiage/releases/20240418131204/src/front/Controller/Content/ContentsviewgetController.php (143)
<?php
 
namespace Actiage\Front\Controller\Content;
 
use Actiage\Front\Controller\BaseController;
use Actiage\Shared\Infraestructure\Categories\CategoriesGetIdBySlug;
use Actiage\Shared\Infraestructure\Categories\CategoriesGetNameBySlug;
use Actiage\Shared\Infraestructure\Contents\ContentsGetDiseasesRelated;
use Actiage\Shared\Infraestructure\Contents\ContentsGetNameBySlug;
use Actiage\Shared\Infraestructure\Contents\ContentsGetNextInfinityScroll;
use Actiage\Shared\Infraestructure\Contents\ContentsGetRelatedByCategory;
use Actiage\Shared\Infraestructure\Contents\ContentsGetRelatedDiseases;
use Actiage\Shared\Lib\Utils\Device;
use Actiage\Shared\Lib\Utils\Text;
use Actiage\Shared\Models\Categorias;
use Actiage\Shared\Models\ConsultasCitas;
use Actiage\Shared\Models\Contenidos;
use Actiage\Shared\Models\CorazonesContenidos;
use Actiage\Shared\Models\Estadisticas;
use Actiage\Shared\Models\EstadisticasContenidosTotal;
use Actiage\Shared\Models\Medicos;
use Actiage\Shared\Models\Roles;
 
 
/**
 * Class ContentsViewGetController
 */
final class ContentsViewGetController extends BaseController
{
    private $votes = 0;
 
    private $content;
 
    private $doctor;
 
    private $descriptionSeo = '';
 
    private $breadCrumbJsonld = [];
 
    private $contentSlug = '';
 
    private $categorySlug = '';
 
    private $breadCrumbChain = '';
 
    private $categories;
 
    private $contents;
 
    private $paragraphs = [];
 
    private $showAllResults = '';
    private $loginText = '';
 
    private $scroll = false;
 
    public function initialize()
    {
        $this->jsFiles = [
            'js/contents.js',
            'js/infinite-scroll-custom.js',
            'js/jquery-clever-infinite-scroll.js'
        ];
        parent::initialize();
    }
 
    /**
     * @param string $slug
     * @return mixed|void
     */
    public function viewAction(string $slug = '')
    {
 
        $this->setData();
        $this->setBreadCrumbs();
        $this->setVotes();
        $this->setRegistreCookie();
        $this->setInfiniteScroll();
        $this->setBody();
        $this->setStatistics();
        $this->setSchemaBreadCrumbs();
        $this->setSeo();
 
 
        if (in_array($this->content->id,
            [
                Contenidos::ES_POSIBLE_REVERTIR_DIABETES_ARTICLE,
                Contenidos::DIABETES_TIPO_2_Y_LONGEVIDAD_ARTICLE
            ]
        )) {
            $this->ApiConversionesFbPlugin->viewContent();
        }
 
        $this->setSchemaContent();
        $this->setViewData();
        $this->view->pick('content/contents/view');
 
    }
 
    private function setData(): void
    {
        $this->categorySlug = filter_var($this->dispatcher->getParam('categoriaSlug'),
            FILTER_SANITIZE_STRING, FILTER_FLAG_NO_ENCODE_QUOTES);
        $this->contentSlug = filter_var($this->dispatcher->getParam('contenidoSlug'),
            FILTER_SANITIZE_STRING, FILTER_FLAG_NO_ENCODE_QUOTES);
        $this->categories = new Categorias();
        $this->contents = new Contenidos();
        $this->content = Contenidos::findFirst([
            'conditions' => 'slug = "' . $this->contentSlug . '"',
            'cache' => [
                'key' => CACHE_PREFIX . $this->MemcachePlugin::CONTENT_SLUG . $this->contentSlug
            ]
        ]);
 
        if (!$this->content || $this->content->activo == 0) {
            $this->throw404();
        }
 
        $categoryId = CategoriesGetIdBySlug::get($this->categorySlug);
        if (empty($categoryId)) {
            $this->throw404();
        }
 
        if (!empty($this->content->medico_id)) {
            $this->doctor = Medicos::findfirst($this->content->medico_id);
        } else {
            $this->doctor = null;
        }
    }
 
    private function setBreadCrumbs(): void
    {
        // breadcrumbs
 
        $this->Breadcrumbs->add('Inicio', DS);
        $this->breadCrumbJsonld = ['nombre' => 'Inicio', 'url' => DS];
        $this->breadCrumbChain = DS . $this->categorySlug;
        $categoryName = CategoriesGetNameBySlug::get($this->categorySlug);
        $this->Breadcrumbs->add($categoryName, $this->breadCrumbChain);
        $this->breadCrumbJsonld[] = ['nombre' => $categoryName, 'url' => $this->breadCrumbChain];
        $this->breadCrumbChain .= DS . $this->contentSlug;
        $contentName = ContentsGetNameBySlug::get($this->contentSlug);
        $this->Breadcrumbs->add($contentName, null, ['linked' => false]);
        $this->breadCrumbJsonld[] = ['nombre' => $contentName, 'url' => $this->breadCrumbChain];
    }
 
    private function setVotes(): void
    {
        $hearts = CorazonesContenidos::findFirst(
            [
                'conditions' => 'contenido_id = ' . $this->content->id
            ]
        );
        if (isset($hearts->total)) {
            $this->votes = $hearts->total;
        }
    }
 
    private function setRegistreCookie(): void
    {
        $cookieContentId = (ENVIRONMENT == DEVELOPMENT) ? 248 : 321;
        if ($this->content->id == $cookieContentId) {
            if (!$this->session->has(Roles::USER)) {
                if (!$this->cookies->has('diabetesRegistroContenido')) {
                    $this->cookies->set(
                        'diabetesRegistroContenido',
                        $this->SecurePlugin->encrypt(SALT),
                        time() + 3600
                    );
                    $this->cookies->send();
                }
            }
        }
    }
 
    private function setInfiniteScroll(): void
    {
        if (!$this->request->isAjax()) {
            $_SESSION['esContenidoPrincipal'] = $this->router->getRewriteUri();
            $related = (new ContentsGetNextInfinityScroll())->get($this->categorySlug, $this->content->id);
            if (!empty($related)) {
                $_SESSION['contenidoRelacionadosDisponibles'] = $related;
                $linkNext = array_rand($_SESSION['contenidoRelacionadosDisponibles']);
                if (!empty($linkNext)) {
                    unset($_SESSION['contenidoRelacionadosDisponibles'][$linkNext]);
                    $this->scroll = true;
                     $this->view->enlaceNextpage = $linkNext;
                }
            }
        } else {
            $this->view->esAjax = true;
            if (isset($_SESSION['esContenidoPrincipal']) && $_SESSION['esContenidoPrincipal'] != $this->router->getRewriteUri() && !empty($_SESSION['contenidoRelacionadosDisponibles'])) {
                $linkNext = array_rand($_SESSION['contenidoRelacionadosDisponibles']);
                unset($_SESSION['contenidoRelacionadosDisponibles'][$linkNext]);
                if (!empty($linkNext)) {
                    $this->scroll = true;
                }
                $this->view->enlaceNextpage = $linkNext;
            }
        }
    }
 
    private function setBody(): void
    {
        if ($this->categorySlug == Categorias::NEWSLETTER_SLUG && !$this->session->has(Roles::USER)) {
            $this->paragraphs = Text::truncateParagrahs($this->content->cuerpo);
            $this->showAllResults = "style='filter: blur(4px);-moz-user-select: none; -webkit-user-select: none; -ms-user-select:none; user-select:none;-o-user-select:none; unselectable='on' onselectstart='return false;'onmousedown='return false;'";
            $this->loginText = 'Para ver toda la newsletter tienes que registrarte o hacer login';
        }
    }
 
    private function setStatistics(): void
    {
        Estadisticas::saveStatistics($this->content->id, date('m'), date('Y'));
        EstadisticasContenidosTotal::saveStatisticTotal($this->content->id);
    }
 
    /**
     * @param array $breadCrumbJsonld
     * @return object
     */
    public function setSchemaBreadCrumbs(): string
    {
        $itemListElement = [];
        foreach ($this->breadCrumbJsonld as $key => $bread) {
            $itemListElement[] = [
                "@type" => "ListItem",
                "position" => $key + 1,
                "item" => [
                    "@id" => DOMINIO . $bread['url'],
                    "name" => $bread['nombre']
                ]
            ];
        }
        $docBreadCrumbs = (object)[
            "@context" => "https://schema.org",
            "@type" => "BreadcrumbList",
            "itemListElement" => $itemListElement
        ];
 
        return json_encode($docBreadCrumbs, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES);
    }
 
    private function setSeo(): void
    {
        $intro = '';
        if (!empty($this->content->entradilla)) {
            $intro = Text::truncate(strip_tags($this->content->entradilla), 150);
        }
        $this->descriptionSeo = (!empty($this->content->descripcion_seo)) ? $this->content->descripcion_seo : $intro;
    }
 
    /**
     * @param $content
     * @param $descripcionSeo
     * @return void
     */
    public function setSchemaContent(): string
    {
        $doc = (object)[
            "@context" => "https://schema.org",
            "@type" => "NewsArticle",
            "mainEntityOfPage" => [
                "@type" => "WebPage",
                "@id" => DOMINIO . $this->router->getRewriteUri()
            ],
            "headline" => $this->content->nombre_contenido,
            "image" => [
                DOMINIO . $this->content->Imagenes->ruta
            ],
            "datePublished" => date('Y-m-d H:i:s', strtotime($this->content->created)),
            "dateModified" => date('Y-m-d H:i:s', strtotime($this->content->modified)),
            "author" => [
                "@type" => "Person",
                "name" => $this->content->Redactores->nombre,
                "url" => $this->content->Redactores->enlace
            ],
            "publisher" => [
                "@type" => "Organization",
                "name" => "Actiage",
                "logo" => [
                    "@type" => "ImageObject",
                    "url" => DOMINIO . '/img/common/logo-actiage.png'
                ]
            ],
            "description" => $this->descriptionSeo
        ];
 
        return json_encode($doc, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES);
    }
 
    private function setViewData(): void
    {
        if (!empty($this->content->tratamiento_id)) {
            $this->view->tratamiento = ConsultasCitas::findFirst($this->content->tratamiento_id);
        }
        if ($this->content->categoria_id == CATEGORIA_ID_ENFERMEDADES) {
            $this->view->enfermedadesRelacionadasContenidos = (new ContentsGetRelatedDiseases())->get($this->content->id);
        } else {
            $this->view->enfermedadesRelacionadas = (new ContentsGetDiseasesRelated())->get($this->content->id);
        }
        $this->view->contenidoNextCargar = $this->scroll;
        $this->view->contenidoRelacionados = (new ContentsGetRelatedByCategory())->get($this->categorySlug, $this->content->id);
        $this->view->cuerpo1 = $this->paragraphs[0];
        $this->view->cuerpo2 = $this->paragraphs[1];
        $this->view->mostrarResultadosCompletos = $this->showAllResults;
        $this->view->textoRegistroLogin = $this->loginText;
        $this->view->cuerpo = $this->content->cuerpo;
        $this->view->urlContenido = $this->breadCrumbChain;
        $this->view->jsonldBreadCrumbs = $this->setSchemaBreadCrumbs();
        $this->view->jsonld = $this->setSchemaContent();
        $this->view->medico = $this->doctor;
        $this->view->contenido = $this->content;
        $this->view->totalVotos = $this->votes;
        $this->view->rutaImagen =  $this->content->Imagenes->ruta . $this->content->Imagenes->original; // Image::get($this->content->Imagenes->toArray());
        $this->view->titleSeo = $this->content->nombre_contenido;
        $this->view->descriptionSeo = $this->descriptionSeo;
        $this->view->metakeys = $this->content->metakeys;
        $this->view->widthImagenPrincipal = ($this->deviceType == Device::DESKTOP) ? Device::DESKTOP_WIDTH_IMAGE : Device::MOBILE_WIDTH_IMAGE;
        $this->view->heightImagenPrincipal = ($this->deviceType == Device::DESKTOP) ? Device::DESKTOP_HEIGHT_IMAGE : Device::MOBILE_HEIGHT_IMAGE;
    }
}
#1Actiage\Front\Controller\Content\ContentsViewGetController->setBreadCrumbs()
/var/www/html/actiage/releases/20240418131204/src/front/Controller/Content/ContentsviewgetController.php (75)
<?php
 
namespace Actiage\Front\Controller\Content;
 
use Actiage\Front\Controller\BaseController;
use Actiage\Shared\Infraestructure\Categories\CategoriesGetIdBySlug;
use Actiage\Shared\Infraestructure\Categories\CategoriesGetNameBySlug;
use Actiage\Shared\Infraestructure\Contents\ContentsGetDiseasesRelated;
use Actiage\Shared\Infraestructure\Contents\ContentsGetNameBySlug;
use Actiage\Shared\Infraestructure\Contents\ContentsGetNextInfinityScroll;
use Actiage\Shared\Infraestructure\Contents\ContentsGetRelatedByCategory;
use Actiage\Shared\Infraestructure\Contents\ContentsGetRelatedDiseases;
use Actiage\Shared\Lib\Utils\Device;
use Actiage\Shared\Lib\Utils\Text;
use Actiage\Shared\Models\Categorias;
use Actiage\Shared\Models\ConsultasCitas;
use Actiage\Shared\Models\Contenidos;
use Actiage\Shared\Models\CorazonesContenidos;
use Actiage\Shared\Models\Estadisticas;
use Actiage\Shared\Models\EstadisticasContenidosTotal;
use Actiage\Shared\Models\Medicos;
use Actiage\Shared\Models\Roles;
 
 
/**
 * Class ContentsViewGetController
 */
final class ContentsViewGetController extends BaseController
{
    private $votes = 0;
 
    private $content;
 
    private $doctor;
 
    private $descriptionSeo = '';
 
    private $breadCrumbJsonld = [];
 
    private $contentSlug = '';
 
    private $categorySlug = '';
 
    private $breadCrumbChain = '';
 
    private $categories;
 
    private $contents;
 
    private $paragraphs = [];
 
    private $showAllResults = '';
    private $loginText = '';
 
    private $scroll = false;
 
    public function initialize()
    {
        $this->jsFiles = [
            'js/contents.js',
            'js/infinite-scroll-custom.js',
            'js/jquery-clever-infinite-scroll.js'
        ];
        parent::initialize();
    }
 
    /**
     * @param string $slug
     * @return mixed|void
     */
    public function viewAction(string $slug = '')
    {
 
        $this->setData();
        $this->setBreadCrumbs();
        $this->setVotes();
        $this->setRegistreCookie();
        $this->setInfiniteScroll();
        $this->setBody();
        $this->setStatistics();
        $this->setSchemaBreadCrumbs();
        $this->setSeo();
 
 
        if (in_array($this->content->id,
            [
                Contenidos::ES_POSIBLE_REVERTIR_DIABETES_ARTICLE,
                Contenidos::DIABETES_TIPO_2_Y_LONGEVIDAD_ARTICLE
            ]
        )) {
            $this->ApiConversionesFbPlugin->viewContent();
        }
 
        $this->setSchemaContent();
        $this->setViewData();
        $this->view->pick('content/contents/view');
 
    }
 
    private function setData(): void
    {
        $this->categorySlug = filter_var($this->dispatcher->getParam('categoriaSlug'),
            FILTER_SANITIZE_STRING, FILTER_FLAG_NO_ENCODE_QUOTES);
        $this->contentSlug = filter_var($this->dispatcher->getParam('contenidoSlug'),
            FILTER_SANITIZE_STRING, FILTER_FLAG_NO_ENCODE_QUOTES);
        $this->categories = new Categorias();
        $this->contents = new Contenidos();
        $this->content = Contenidos::findFirst([
            'conditions' => 'slug = "' . $this->contentSlug . '"',
            'cache' => [
                'key' => CACHE_PREFIX . $this->MemcachePlugin::CONTENT_SLUG . $this->contentSlug
            ]
        ]);
 
        if (!$this->content || $this->content->activo == 0) {
            $this->throw404();
        }
 
        $categoryId = CategoriesGetIdBySlug::get($this->categorySlug);
        if (empty($categoryId)) {
            $this->throw404();
        }
 
        if (!empty($this->content->medico_id)) {
            $this->doctor = Medicos::findfirst($this->content->medico_id);
        } else {
            $this->doctor = null;
        }
    }
 
    private function setBreadCrumbs(): void
    {
        // breadcrumbs
 
        $this->Breadcrumbs->add('Inicio', DS);
        $this->breadCrumbJsonld = ['nombre' => 'Inicio', 'url' => DS];
        $this->breadCrumbChain = DS . $this->categorySlug;
        $categoryName = CategoriesGetNameBySlug::get($this->categorySlug);
        $this->Breadcrumbs->add($categoryName, $this->breadCrumbChain);
        $this->breadCrumbJsonld[] = ['nombre' => $categoryName, 'url' => $this->breadCrumbChain];
        $this->breadCrumbChain .= DS . $this->contentSlug;
        $contentName = ContentsGetNameBySlug::get($this->contentSlug);
        $this->Breadcrumbs->add($contentName, null, ['linked' => false]);
        $this->breadCrumbJsonld[] = ['nombre' => $contentName, 'url' => $this->breadCrumbChain];
    }
 
    private function setVotes(): void
    {
        $hearts = CorazonesContenidos::findFirst(
            [
                'conditions' => 'contenido_id = ' . $this->content->id
            ]
        );
        if (isset($hearts->total)) {
            $this->votes = $hearts->total;
        }
    }
 
    private function setRegistreCookie(): void
    {
        $cookieContentId = (ENVIRONMENT == DEVELOPMENT) ? 248 : 321;
        if ($this->content->id == $cookieContentId) {
            if (!$this->session->has(Roles::USER)) {
                if (!$this->cookies->has('diabetesRegistroContenido')) {
                    $this->cookies->set(
                        'diabetesRegistroContenido',
                        $this->SecurePlugin->encrypt(SALT),
                        time() + 3600
                    );
                    $this->cookies->send();
                }
            }
        }
    }
 
    private function setInfiniteScroll(): void
    {
        if (!$this->request->isAjax()) {
            $_SESSION['esContenidoPrincipal'] = $this->router->getRewriteUri();
            $related = (new ContentsGetNextInfinityScroll())->get($this->categorySlug, $this->content->id);
            if (!empty($related)) {
                $_SESSION['contenidoRelacionadosDisponibles'] = $related;
                $linkNext = array_rand($_SESSION['contenidoRelacionadosDisponibles']);
                if (!empty($linkNext)) {
                    unset($_SESSION['contenidoRelacionadosDisponibles'][$linkNext]);
                    $this->scroll = true;
                     $this->view->enlaceNextpage = $linkNext;
                }
            }
        } else {
            $this->view->esAjax = true;
            if (isset($_SESSION['esContenidoPrincipal']) && $_SESSION['esContenidoPrincipal'] != $this->router->getRewriteUri() && !empty($_SESSION['contenidoRelacionadosDisponibles'])) {
                $linkNext = array_rand($_SESSION['contenidoRelacionadosDisponibles']);
                unset($_SESSION['contenidoRelacionadosDisponibles'][$linkNext]);
                if (!empty($linkNext)) {
                    $this->scroll = true;
                }
                $this->view->enlaceNextpage = $linkNext;
            }
        }
    }
 
    private function setBody(): void
    {
        if ($this->categorySlug == Categorias::NEWSLETTER_SLUG && !$this->session->has(Roles::USER)) {
            $this->paragraphs = Text::truncateParagrahs($this->content->cuerpo);
            $this->showAllResults = "style='filter: blur(4px);-moz-user-select: none; -webkit-user-select: none; -ms-user-select:none; user-select:none;-o-user-select:none; unselectable='on' onselectstart='return false;'onmousedown='return false;'";
            $this->loginText = 'Para ver toda la newsletter tienes que registrarte o hacer login';
        }
    }
 
    private function setStatistics(): void
    {
        Estadisticas::saveStatistics($this->content->id, date('m'), date('Y'));
        EstadisticasContenidosTotal::saveStatisticTotal($this->content->id);
    }
 
    /**
     * @param array $breadCrumbJsonld
     * @return object
     */
    public function setSchemaBreadCrumbs(): string
    {
        $itemListElement = [];
        foreach ($this->breadCrumbJsonld as $key => $bread) {
            $itemListElement[] = [
                "@type" => "ListItem",
                "position" => $key + 1,
                "item" => [
                    "@id" => DOMINIO . $bread['url'],
                    "name" => $bread['nombre']
                ]
            ];
        }
        $docBreadCrumbs = (object)[
            "@context" => "https://schema.org",
            "@type" => "BreadcrumbList",
            "itemListElement" => $itemListElement
        ];
 
        return json_encode($docBreadCrumbs, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES);
    }
 
    private function setSeo(): void
    {
        $intro = '';
        if (!empty($this->content->entradilla)) {
            $intro = Text::truncate(strip_tags($this->content->entradilla), 150);
        }
        $this->descriptionSeo = (!empty($this->content->descripcion_seo)) ? $this->content->descripcion_seo : $intro;
    }
 
    /**
     * @param $content
     * @param $descripcionSeo
     * @return void
     */
    public function setSchemaContent(): string
    {
        $doc = (object)[
            "@context" => "https://schema.org",
            "@type" => "NewsArticle",
            "mainEntityOfPage" => [
                "@type" => "WebPage",
                "@id" => DOMINIO . $this->router->getRewriteUri()
            ],
            "headline" => $this->content->nombre_contenido,
            "image" => [
                DOMINIO . $this->content->Imagenes->ruta
            ],
            "datePublished" => date('Y-m-d H:i:s', strtotime($this->content->created)),
            "dateModified" => date('Y-m-d H:i:s', strtotime($this->content->modified)),
            "author" => [
                "@type" => "Person",
                "name" => $this->content->Redactores->nombre,
                "url" => $this->content->Redactores->enlace
            ],
            "publisher" => [
                "@type" => "Organization",
                "name" => "Actiage",
                "logo" => [
                    "@type" => "ImageObject",
                    "url" => DOMINIO . '/img/common/logo-actiage.png'
                ]
            ],
            "description" => $this->descriptionSeo
        ];
 
        return json_encode($doc, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES);
    }
 
    private function setViewData(): void
    {
        if (!empty($this->content->tratamiento_id)) {
            $this->view->tratamiento = ConsultasCitas::findFirst($this->content->tratamiento_id);
        }
        if ($this->content->categoria_id == CATEGORIA_ID_ENFERMEDADES) {
            $this->view->enfermedadesRelacionadasContenidos = (new ContentsGetRelatedDiseases())->get($this->content->id);
        } else {
            $this->view->enfermedadesRelacionadas = (new ContentsGetDiseasesRelated())->get($this->content->id);
        }
        $this->view->contenidoNextCargar = $this->scroll;
        $this->view->contenidoRelacionados = (new ContentsGetRelatedByCategory())->get($this->categorySlug, $this->content->id);
        $this->view->cuerpo1 = $this->paragraphs[0];
        $this->view->cuerpo2 = $this->paragraphs[1];
        $this->view->mostrarResultadosCompletos = $this->showAllResults;
        $this->view->textoRegistroLogin = $this->loginText;
        $this->view->cuerpo = $this->content->cuerpo;
        $this->view->urlContenido = $this->breadCrumbChain;
        $this->view->jsonldBreadCrumbs = $this->setSchemaBreadCrumbs();
        $this->view->jsonld = $this->setSchemaContent();
        $this->view->medico = $this->doctor;
        $this->view->contenido = $this->content;
        $this->view->totalVotos = $this->votes;
        $this->view->rutaImagen =  $this->content->Imagenes->ruta . $this->content->Imagenes->original; // Image::get($this->content->Imagenes->toArray());
        $this->view->titleSeo = $this->content->nombre_contenido;
        $this->view->descriptionSeo = $this->descriptionSeo;
        $this->view->metakeys = $this->content->metakeys;
        $this->view->widthImagenPrincipal = ($this->deviceType == Device::DESKTOP) ? Device::DESKTOP_WIDTH_IMAGE : Device::MOBILE_WIDTH_IMAGE;
        $this->view->heightImagenPrincipal = ($this->deviceType == Device::DESKTOP) ? Device::DESKTOP_HEIGHT_IMAGE : Device::MOBILE_HEIGHT_IMAGE;
    }
}
#2Actiage\Front\Controller\Content\ContentsViewGetController->viewAction(nutricion, nutricion)
#3Phalcon\Dispatcher->callActionMethod(Object(Actiage\Front\Controller\Content\ContentsViewGetController), viewAction, Array([categoriaSlug] => nutricion, [contenidoSlug] => nutricion))
#4Phalcon\Dispatcher->dispatch()
#5Phalcon\Mvc\Application->handle()
/var/www/html/actiage/releases/20240418131204/public/index.php (80)
<?php
 
use Phalcon\Debug;
use Phalcon\Di\FactoryDefault;
use Phalcon\Mvc\Application;
 
$debug = new Debug();
$debug->listen();
error_reporting(E_ALL);
 
define('BASE_PATH', dirname(__DIR__));
define('APP_PATH', BASE_PATH . '/src');
 
try {
    /**
     * The FactoryDefault Dependency Injector automatically registers
     * the services that provide a full stack framework.
     */
    $di = new FactoryDefault();
 
    /**
     * Entornos de desarrollo disponibles y variables de entorno
     */
    include APP_PATH . '/config/environment.php';
 
    /**
     * Información listas en klaviyo
     */
    include APP_PATH . '/config/klaviyo.php';
 
    /**
     * Read services
     */
    include APP_PATH . '/config/services.php';
 
    /**
     * Handle routes
     */
    include APP_PATH . '/config/router.php';
 
    /**
     * Get config service for use in inline setup below
     */
    $config = $di->getConfig();
 
    /**
     * Include Autoloader
     */
    include APP_PATH . '/config/loader.php';
 
    /**
     * Handle the request
     */
    $application = new Application($di);
    $application->registerModules(
        [
            'admin' => [
                'className' => 'Actiage\Admin\Module',
                'path'      => '../src/admin/Module.php',
            ],
            'doctor'  => [
                'className' => 'Actiage\Doctor\Module',
                'path'      => '../src/doctor/Module.php',
            ],
            'sponsor'  => [
                'className' => 'Actiage\Sponsor\Module',
                'path'      => '../src/sponsor/Module.php',
            ],
            'user'  => [
                'className' => 'Actiage\User\Module',
                'path'      => '../src/user/Module.php',
            ],
            'front'  => [
                'className' => 'Actiage\Front\Module',
                'path'      => '../src/front/Module.php',
            ]
        ]
    );
    if(ENVIRONMENT != DEVELOPMENT) {
        echo str_replace(['\n', '\r', '\t'], '', $application->handle()->getContent());
    } else {
        echo $application->handle()->getContent();
    }
} catch (\Exception $e) {
    $logger = new \Phalcon\Logger\Adapter\File(BASE_PATH . '/tmp/logs/error.log');
    $message = get_class($e) . ": " . $e->getMessage() . "\n" . " File=" . $e->getFile() . "\n" . " Line=" . $e->getLine() . "\n" . $e->getTraceAsString() . "\n";
    $logger->critical($message);
}
KeyValue
_url/nutricion/nutricion
KeyValue
USERnginx
HOME/var/lib/nginx
HTTP_REFERERhttps://www.actiage.es/nutricion/nutricion
HTTP_USER_AGENTMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
HTTP_ACCEPT*/*
HTTP_HOSTactiage.es
REDIRECT_STATUS200
SERVER_NAMEactiage.es
SERVER_PORT443
SERVER_ADDR54.38.94.57
REMOTE_PORT39949
REMOTE_ADDR18.216.233.58
SERVER_SOFTWAREnginx/1.21.1
GATEWAY_INTERFACECGI/1.1
HTTPSon
REQUEST_SCHEMEhttps
SERVER_PROTOCOLHTTP/2.0
DOCUMENT_ROOT/var/www/html/actiage/current/public
DOCUMENT_URI/index.php
REQUEST_URI/nutricion/nutricion
SCRIPT_NAME/index.php
CONTENT_LENGTH
CONTENT_TYPE
REQUEST_METHODGET
QUERY_STRING_url=/nutricion/nutricion&
SCRIPT_FILENAME/var/www/html/actiage/current/public/index.php
APPLICATION_ENVproduction
FCGI_ROLERESPONDER
PHP_SELF/index.php
REQUEST_TIME_FLOAT1713550983,8732
REQUEST_TIME1713550983
#Path
0/var/www/html/actiage/releases/20240418131204/public/index.php
1/var/www/html/actiage/shared/environment.php
2/var/www/html/actiage/shared/klaviyo.php
3/var/www/html/actiage/releases/20240418131204/src/config/services.php
4/var/www/html/actiage/releases/20240418131204/src/config/session.php
5/var/www/html/actiage/releases/20240418131204/src/config/router.php
6/var/www/html/actiage/releases/20240418131204/src/front/router.php
7/var/www/html/actiage/releases/20240418131204/src/admin/router.php
8/var/www/html/actiage/releases/20240418131204/src/doctor/router.php
9/var/www/html/actiage/releases/20240418131204/src/user/router.php
10/var/www/html/actiage/releases/20240418131204/src/sponsor/router.php
11/var/www/html/actiage/shared/config.php
12/var/www/html/actiage/releases/20240418131204/src/config/loader.php
13/var/www/html/actiage/shared/vendor/autoload.php
14/var/www/html/actiage/shared/vendor/composer/autoload_real.php
15/var/www/html/actiage/shared/vendor/composer/platform_check.php
16/var/www/html/actiage/shared/vendor/composer/ClassLoader.php
17/var/www/html/actiage/shared/vendor/composer/autoload_static.php
18/var/www/html/actiage/shared/vendor/symfony/deprecation-contracts/function.php
19/var/www/html/actiage/shared/vendor/symfony/polyfill-php80/bootstrap.php
20/var/www/html/actiage/shared/vendor/symfony/polyfill-php81/bootstrap.php
21/var/www/html/actiage/shared/vendor/symfony/polyfill-mbstring/bootstrap.php
22/var/www/html/actiage/shared/vendor/symfony/polyfill-ctype/bootstrap.php
23/var/www/html/actiage/shared/vendor/symfony/polyfill-php73/bootstrap.php
24/var/www/html/actiage/shared/vendor/symfony/polyfill-php73/Php73.php
25/var/www/html/actiage/shared/vendor/symfony/polyfill-intl-grapheme/bootstrap.php
26/var/www/html/actiage/shared/vendor/symfony/polyfill-intl-normalizer/bootstrap.php
27/var/www/html/actiage/shared/vendor/symfony/string/Resources/functions.php
28/var/www/html/actiage/shared/vendor/symfony/var-dumper/Resources/functions/dump.php
29/var/www/html/actiage/shared/vendor/psy/psysh/src/functions.php
30/var/www/html/actiage/shared/vendor/myclabs/deep-copy/src/DeepCopy/deep_copy.php
31/var/www/html/actiage/shared/vendor/ralouphie/getallheaders/src/getallheaders.php
32/var/www/html/actiage/shared/vendor/swiftmailer/swiftmailer/lib/swift_required.php
33/var/www/html/actiage/shared/vendor/swiftmailer/swiftmailer/lib/classes/Swift.php
34/var/www/html/actiage/shared/vendor/digitalbazaar/json-ld/jsonld.php
35/var/www/html/actiage/shared/vendor/guzzlehttp/guzzle/src/functions_include.php
36/var/www/html/actiage/shared/vendor/guzzlehttp/guzzle/src/functions.php
37/var/www/html/actiage/shared/vendor/lambdish/phunctional/src/_bootstrap.php
38/var/www/html/actiage/shared/vendor/lambdish/phunctional/src/all.php
39/var/www/html/actiage/shared/vendor/lambdish/phunctional/src/any.php
40/var/www/html/actiage/shared/vendor/lambdish/phunctional/src/apply.php
41/var/www/html/actiage/shared/vendor/lambdish/phunctional/src/assoc.php
42/var/www/html/actiage/shared/vendor/lambdish/phunctional/src/butlast.php
43/var/www/html/actiage/shared/vendor/lambdish/phunctional/src/complement.php
44/var/www/html/actiage/shared/vendor/lambdish/phunctional/src/compose.php
45/var/www/html/actiage/shared/vendor/lambdish/phunctional/src/constant.php
46/var/www/html/actiage/shared/vendor/lambdish/phunctional/src/dissoc.php
47/var/www/html/actiage/shared/vendor/lambdish/phunctional/src/do_if.php
48/var/www/html/actiage/shared/vendor/lambdish/phunctional/src/each.php
49/var/www/html/actiage/shared/vendor/lambdish/phunctional/src/filter.php
50/var/www/html/actiage/shared/vendor/lambdish/phunctional/src/filter_fresh.php
51/var/www/html/actiage/shared/vendor/lambdish/phunctional/src/filter_null.php
52/var/www/html/actiage/shared/vendor/lambdish/phunctional/src/first.php
53/var/www/html/actiage/shared/vendor/lambdish/phunctional/src/flat_map.php
54/var/www/html/actiage/shared/vendor/lambdish/phunctional/src/flatten.php
55/var/www/html/actiage/shared/vendor/lambdish/phunctional/src/get.php
56/var/www/html/actiage/shared/vendor/lambdish/phunctional/src/get_each.php
57/var/www/html/actiage/shared/vendor/lambdish/phunctional/src/get_in.php
58/var/www/html/actiage/shared/vendor/lambdish/phunctional/src/group_by.php
59/var/www/html/actiage/shared/vendor/lambdish/phunctional/src/key.php
60/var/www/html/actiage/shared/vendor/lambdish/phunctional/src/identity.php
61/var/www/html/actiage/shared/vendor/lambdish/phunctional/src/instance_of.php
62/var/www/html/actiage/shared/vendor/lambdish/phunctional/src/last.php
63/var/www/html/actiage/shared/vendor/lambdish/phunctional/src/map.php
64/var/www/html/actiage/shared/vendor/lambdish/phunctional/src/memoize.php
65/var/www/html/actiage/shared/vendor/lambdish/phunctional/src/not.php
66/var/www/html/actiage/shared/vendor/lambdish/phunctional/src/partial.php
67/var/www/html/actiage/shared/vendor/lambdish/phunctional/src/partition.php
68/var/www/html/actiage/shared/vendor/lambdish/phunctional/src/pipe.php
69/var/www/html/actiage/shared/vendor/lambdish/phunctional/src/reduce.php
70/var/www/html/actiage/shared/vendor/lambdish/phunctional/src/reindex.php
71/var/www/html/actiage/shared/vendor/lambdish/phunctional/src/repeat.php
72/var/www/html/actiage/shared/vendor/lambdish/phunctional/src/rest.php
73/var/www/html/actiage/shared/vendor/lambdish/phunctional/src/reverse.php
74/var/www/html/actiage/shared/vendor/lambdish/phunctional/src/search.php
75/var/www/html/actiage/shared/vendor/lambdish/phunctional/src/some.php
76/var/www/html/actiage/shared/vendor/lambdish/phunctional/src/sort.php
77/var/www/html/actiage/shared/vendor/lambdish/phunctional/src/to_array.php
78/var/www/html/actiage/shared/vendor/ramsey/uuid/src/functions.php
79/var/www/html/actiage/releases/20240418131204/src/front/Module.php
80/var/www/html/actiage/releases/20240418131204/src/front/Controller/Content/ContentsviewgetController.php
81/var/www/html/actiage/releases/20240418131204/src/front/Controller/BaseController.php
82/var/www/html/actiage/releases/20240418131204/src/Shared/plugins/TimeZonePlugin.php
83/var/www/html/actiage/releases/20240418131204/src/middleware/MiddleWareView.php
84/var/www/html/actiage/shared/vendor/mobiledetect/mobiledetectlib/Mobile_Detect.php
85/var/www/html/actiage/releases/20240418131204/src/Shared/library/Utils/Device.php
86/var/www/html/actiage/releases/20240418131204/src/Shared/models/Cookies.php
87/var/www/html/actiage/releases/20240418131204/src/Shared/models/ModelBase.php
88/var/www/html/actiage/releases/20240418131204/src/Shared/models/Paises.php
89/var/www/html/actiage/releases/20240418131204/src/Shared/plugins/CommonPlugin.php
90/var/www/html/actiage/releases/20240418131204/src/Shared/library/Utils/Slug.php
91/var/www/html/actiage/releases/20240418131204/src/Shared/library/Utils/Currency.php
92/var/www/html/actiage/releases/20240418131204/src/Shared/plugins/BotsPlugin.php
93/var/www/html/actiage/releases/20240418131204/src/Shared/plugins/RobotsPlugin.php
94/var/www/html/actiage/releases/20240418131204/src/Shared/plugins/MemcachePlugin.php
95/var/www/html/actiage/releases/20240418131204/src/Shared/library/Utils/Image.php
96/var/www/html/actiage/releases/20240418131204/src/Shared/plugins/JsPlugin.php
97/var/www/html/actiage/shared/vendor/matthiasmullie/minify/src/JS.php
98/var/www/html/actiage/shared/vendor/matthiasmullie/minify/src/Minify.php
99/var/www/html/actiage/releases/20240418131204/src/Shared/plugins/CssPlugin.php
100/var/www/html/actiage/releases/20240418131204/src/Shared/models/Roles.php
101/var/www/html/actiage/releases/20240418131204/src/Shared/models/Provincias.php
102/var/www/html/actiage/releases/20240418131204/src/Shared/plugins/SeoPlugin.php
103/var/www/html/actiage/releases/20240418131204/src/Shared/models/SemaforoCritical.php
104/var/www/html/actiage/releases/20240418131204/src/Shared/models/Categorias.php
105/var/www/html/actiage/releases/20240418131204/src/Shared/models/Contenidos.php
106/var/www/html/actiage/releases/20240418131204/src/Shared/Infraestructure/Categories/CategoriesGetIdBySlug.php
107/var/www/html/actiage/shared/vendor/phalcon/breadcrumbs/src/Breadcrumbs.php
108/var/www/html/actiage/releases/20240418131204/src/Shared/Infraestructure/Categories/CategoriesGetNameBySlug.php
109/var/www/html/actiage/releases/20240418131204/src/Shared/Infraestructure/Contents/ContentsGetNameBySlug.php
Memory
Usage2097152