无法安装分析器 symfony flex

Can't install profiler symfony flex

我在 运行 composer req profiler 之后无法使用 symfony 分析器 我在 4.0 beta 版中使用 symfony/skeleton,但我记得几个月前在 3.3 中测试它时遇到了同样的问题。

工具栏无法使用,请在此处留言:

An error occurred while loading the web debug toolbar. Open the web profiler.

当点击 "open the web profiler" 时,出现 404 错误。

如果有人解决了,谢谢你的帮助。如果没有,我会在仍处于测试阶段时报告错误。

关于安装: 使用 composer 创建了一个项目,这里链接了 4.0-beta 版的 symfony/skeleton 包:https://github.com/symfony/skeleton

我的php版本是7.1;我尝试从上面的命令安装分析器。

尝试按照以下步骤操作:

composer create-project -s beta symfony/skeleton:4.0.x s40b1
cd s40b1
composer require web-server
composer require cli
composer require profiler

添加控制器

class DemoController extends AbstractController
{
    public function demoAction()
    {
        $html = <<<EOT
<!DOCTYPE html>
<html>
  <head><meta charset="UTF-8"><title>s4b1</title></head>
  <body>Demo Body</body>
</html>
EOT;
        return new Response($html);
    }
}

还有一条路线

demo:
    path: /demo
    defaults: { _controller: 'App\Controller\DemoController::demoAction' }

然后

bin/console cache:clear
bin/console server:run

导航到

http://127.0.0.1:8000/demo

如果有效,则确定您的配置在哪里不同。

OP 已经解决了他的问题,但我想我会评论一下我的经历。就我而言,我使用 Flex 来很好地安装分析器;检查我的应用程序,路线设置正确。我遵循 Symfony's guide to webserver configuration for Apache 和 PHP-FPM,这对于获取 PHP 文件 运行 非常有效。但是,关于非 PHP 文件的重写规则部分在 mod_php 部分,在 FPM 部分不再重复。我在快速阅读时错过了这个。具体来说,您需要确保您的配置中有 mod_rewrite 块,如下所示(使用 Apache 2.2 或 2.4 设置,而不是两者):

DocumentRoot /var/www/project/public
<Directory /var/www/project/public>
    AllowOverride None

    # Apache 2.2
    Order Allow,Deny
    Allow from All
    # /Apache 2.2

    # Apache 2.4
    Require all granted
    # /Apache 2.4

    <IfModule mod_rewrite.c>
        Options -MultiViews
        RewriteEngine On
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteRule ^(.*)$ index.php [QSA,L]
    </IfModule>
</Directory>

我刚遇到同样的问题。 我使用 composer require profiler --dev

安装它

然后我安装了 twig,因为我想 return 一个视图而不是 Response object,但是分析器没有工作。

原因是我创建了一个没有扩展 base.html.twig 的 Twig 模板,它只是一个简单的 html 布局,具有 html、body、head 和 title 标签。

所以结果是探查器需要 body 标记在您正在 returning 的标记响应中。

所以,我所做的就是在新模板的顶部添加 {% extends 'base.html.twig' %}

成功了!