Este foro ya no está activo, así que no puedes publicar nuevas preguntas ni responder a las preguntas existentes.

Silex web-profiler: activar timeline, events del web-profiler y doctrine

21 de enero de 2014

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

#1

@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

27 enero 2014, 8:48
#2

@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

28 enero 2014, 0:00
#3

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

28 enero 2014, 23:09
#4

Ahora si va el timeline.

Muchas gracias @javiereguiluz.

@Yercapa

30 enero 2014, 22:37