Hola buenas.
Estoy usando el Silex Skeleton de Fabien Potencier y no entiendo por qué al pinchar en events
y timeline
del web profiler aparecen los mensajes:
No events have been recorded. Are you sure that debugging is enabled in the kernel? No timing events have been recorded. Are you sure that debugging is enabled in the kernel?
Otra duda es sobre Doctrine en el web profiler. Creo recordar que haciendo algunas pruebas con Symfony2, el web profiler también mostraba información de Doctrine (número de consultas, tiempo ...). ¿Es posible que el web profiler de Silex también tenga esta información?
Gracias.
Respuestas
@Yercapa, la causa más probable es que empezaras a utilizar el Silex Skeleton hace tiempo y que no hayas actualizado el contenido del archivo index_dev.php
a los últimos cambios.
Abre el archivo web/index_dev.php
y comprueba si tiene el siguiente contenido:
<?php use Symfony\Component\ClassLoader\DebugClassLoader; use Symfony\Component\HttpKernel\Debug\ErrorHandler; use Symfony\Component\HttpKernel\Debug\ExceptionHandler; require_once __DIR__.'/../vendor/autoload.php'; error_reporting(-1); DebugClassLoader::enable(); ErrorHandler::register(); if ('cli' !== php_sapi_name()) { ExceptionHandler::register(); } // ...
Modifica el anterior contenido por lo siguiente:
<?php use Symfony\Component\Debug\Debug; require_once __DIR__.'/../vendor/autoload.php'; Debug::enable(); // ...
Ahora ya debería volver a funcionarte la recogida de información detallada sobre los eventos y los tiempos de ejecución de tu aplicación Silex. Puedes consultar este commit para ver en detalle los cambios necesarios.
Respecto a Doctrine, el web profiler actual de Silex no lo soporta y no conozco ninguna extensión que lo haga.
@javiereguiluz
@javiereguiluz mi archivo web/index_dev.php tiene el siguiente contenido.
<?php use Symfony\Component\Debug\Debug; // This check prevents access to debug front controllers that are deployed by accident to production servers. // Feel free to remove this, extend it, or make something more sophisticated. /*if (isset($_SERVER['HTTP_CLIENT_IP']) || isset($_SERVER['HTTP_X_FORWARDED_FOR']) || !in_array(@$_SERVER['REMOTE_ADDR'], array('127.0.0.1', 'fe80::1', '::1')) ) { header('HTTP/1.0 403 Forbidden'); exit('You are not allowed to access this file. Check '.basename(__FILE__).' for more information.'); }*/ require_once __DIR__.'/../vendor/autoload.php'; Debug::enable(); $app = require __DIR__.'/../src/app.php'; require __DIR__.'/../config/dev.php'; require __DIR__.'/../src/controllers.php'; $app->run();
y la salida del comando composer show
:
installed: doctrine/annotations v1.1.2 Docblock Annotations Parser doctrine/cache v1.3.0 Caching library offering an object-orie doctrine/collections v1.1 Collections Abstraction library doctrine/common v2.4.1 Common Library for Doctrine projects doctrine/dbal 2.3.4 Database Abstraction Layer doctrine/inflector v1.0 Common String Manipulations with regard doctrine/lexer v1.0 Base library for a lexer that can be us monolog/monolog 1.7.0 Sends your logs to files, sockets, inbo pimple/pimple v1.1.0 Pimple is a simple Dependency Injection psr/log 1.0.0 Common interface for logging libraries silex/silex v1.1.2 The PHP micro-framework based on the Sy silex/web-profiler v1.0.1 A WebProfiler for Silex swiftmailer/swiftmailer v5.0.3 Swiftmailer, free feature-rich PHP maile symfony/browser-kit v2.4.1 Symfony BrowserKit Component symfony/class-loader v2.4.1 Symfony ClassLoader Component symfony/config v2.4.1 Symfony Config Component symfony/console v2.4.1 Symfony Console Component symfony/css-selector v2.4.1 Symfony CssSelector Component symfony/debug v2.4.1 Symfony Debug Component symfony/dom-crawler v2.4.1 Symfony DomCrawler Component symfony/event-dispatcher v2.4.1 Symfony EventDispatcher Component symfony/filesystem v2.4.1 Symfony Filesystem Component symfony/finder v2.4.1 Symfony Finder Component symfony/form v2.4.1 Symfony Form Component symfony/http-foundation v2.4.1 Symfony HttpFoundation Component symfony/http-kernel v2.4.1 Symfony HttpKernel Component symfony/icu v1.0.0 Contains an excerpt of the ICU data and symfony/intl v2.4.1 A PHP replacement layer for the C intl symfony/locale v2.4.1 Symfony Locale Component symfony/monolog-bridge v2.4.1 Symfony Monolog Bridge symfony/options-resolver v2.4.1 Symfony OptionsResolver Component symfony/process v2.4.1 Symfony Process Component symfony/property-access v2.4.1 Symfony PropertyAccess Component symfony/routing v2.4.1 Symfony Routing Component symfony/security v2.4.1 Symfony Security Component symfony/serializer v2.4.1 Symfony Serializer Component symfony/stopwatch v2.4.1 Symfony Stopwatch Component symfony/translation v2.4.1 Symfony Translation Component symfony/twig-bridge v2.4.1 Symfony Twig Bridge symfony/validator v2.4.1 Symfony Validator Component symfony/web-profiler-bundle v2.4.1 Symfony WebProfilerBundle symfony/yaml v2.4.1 Symfony Yaml Component twig/extensions v1.0.1 Common additional features for Twig tha twig/twig v1.15.0 Twig, the flexible, fast, and secure te
@Yercapa
El profiler de Silex se ha roto cuando utilizas Silex 1.* y Symfony 2.4*. Los detalles del error están en este pull request del repositorio de Silex.
En la rama master
ya está corregido, por lo que habrá que esperar a que creen una nueva etiqueta. Si no quieres esperar, cambia la versión de la dependencia silex/web-profiler
en tu archivo composer.json
:
"require": { "silex/web-profiler" : "dev-master", ... }
@javiereguiluz
Ahora si va el timeline.
Muchas gracias @javiereguiluz.
@Yercapa