In meiner .env
Datei habe ich meine App-Umgebung als dev und debug als true angegeben:
APP_ENV=dev
APP_DEBUG=true
In meiner config/packages/dev/web_profiler.yaml
Datei habe ich Folgendes:
web_profiler:
toolbar: true
intercept_redirects: false
framework:
profiler: { only_exceptions: false }
Das Routing innerhalb config/routes/dev/web_profiler.yaml
scheint in Ordnung zu sein:
web_profiler_wdt:
resource: '@WebProfilerBundle/Resources/config/routing/wdt.xml'
prefix: /_wdt
web_profiler_profiler:
resource: '@WebProfilerBundle/Resources/config/routing/profiler.xml'
prefix: /_profiler
Wenn ich also den Server mit symfony server:start
allem starte, ist alles in Ordnung, aber der Profiler wird nicht angezeigt. Habe ich etwas verpasst, das diese Funktion in Symfony aktiviert?
Zur Verdeutlichung gibt die Seite eine richtige HTML-Seite mit dem entsprechenden Inhalt aus. Es wird einfach kein Profiler angezeigt.
Meine Basiszweigvorlage:
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title>{% block title %} {% endblock %}</title>
{{ encore_entry_script_tags('base') }}
<link rel="icon" type="image/x-icon" href="{{ asset('build/images/favicon.ico') }}" />
<link href="https://fonts.googleapis.com/css?family=IBM+Plex+Sans:400,500|Playfair+Display:400,700&display=swap" rel="stylesheet">
{{ encore_entry_link_tags("base") }}
{% block stylesheet %}{% endblock %}
</head>
<body {% if app.request.get('_route') == 'home' %} class='homepage' {% endif %} >
<header>
<div id='top-navigation' class='padding-lg__left-md padding-lg__right-md padding-lg__top-sm padding-lg__bottom-sm row row__align-center row__justify-start'>
<span class='text-color__white text-size__small text-weight__bold margin-lg__right-lg'>Our Mission</span>
<span class='text-color__white text-size__small text-weight__bold margin-lg__right-lg'>Our Team</span>
<span class='text-color__white text-size__small text-weight__bold margin-lg__right-lg'>Where the Money Goes</span>
<span class='text-color__white text-size__small text-weight__bold margin-lg__right-lg'>Community Leadership</span>
<span class='text-color__white text-size__small text-weight__bold'>Policies</span>
<span class='text-color__white text-size__small text-weight__bold margin-lg__left-auto icon-set'> <span class='icon size__small color__white margin-lg__right-xsm'>{{ source('@public_path'~asset('build/images/icons/feedback.svg')) }}</span>Submit Feedback</span>
</div>
<nav class="padding-lg__top-md padding-lg__bottom-md padding-lg__left-md padding-lg__right-md row row__align-center row__justify-start {% if app.request.get('_route') == 'home' %} homepage {% endif %}">
<div id='logo'>
<a href="{{ url('home') }}">
<img src="{{ asset('build/images/logo_placeholder.png') }}" alt="logo">
</a>
</div>
{% if app.request.get('_route') == 'creator-register' %}
{% else %}
{% if not is_granted('IS_AUTHENTICATED_FULLY') %}
<div class='margin-lg__left-auto'>
<a href="{{ url('login') }}">
<div class='icon-set'>
<span class='icon margin-lg__right-xsm'>
{{ source('@public_path'~asset('build/images/icons/user.svg')) }}
</span>
<span class='nav-item'>Login</span>
</div>
</a>
</div>
{% endif %}
{% endif %}
</nav>
</header>
{% if app.request.get('_route') != 'home' %} <div class='container is_top'> {% endif %}
{% block body %} {% endblock %}
{% if app.request.get('_route') != 'home' %} </div> {% endif %}
</body>
</html>
Security.yaml Firewall:
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
main:
anonymous: true
guard:
authenticators:
- App\Security\LoginFormAuthenticator
logout:
path : logout
remember_me:
secret: '%kernel.secret%'
lifetime: 2592000 #<- 30 days in seconds - defaults to one year if you take this out!
Ergebnisse zu php bin/console debug:router | grep _profiler
:
_profiler_home ANY ANY ANY /_profiler/
_profiler_search ANY ANY ANY /_profiler/search
_profiler_search_bar ANY ANY ANY /_profiler/search_bar
_profiler_phpinfo ANY ANY ANY /_profiler/phpinfo
_profiler_search_results ANY ANY ANY /_profiler/{token}/search/results
_profiler_open_file ANY ANY ANY /_profiler/open
_profiler ANY ANY ANY /_profiler/{token}
_profiler_router ANY ANY ANY /_profiler/{token}/router
_profiler_exception ANY ANY ANY /_profiler/{token}/exception
_profiler_exception_css ANY ANY ANY /_profiler/{token}/exception.css
Zuletzt Homepage-Controller:
<?php
namespace App\Controller;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
class HomepageController extends AbstractController{
/**
* @Route("/", name="home")
*/
public function output(){
return $this->render('homepage/home.html.twig',[
'title' => 'yo',
]);
}
}
?>
Public / index.php hinzugefügt:
<?php
use App\Kernel;
use Symfony\Component\Debug\Debug;
use Symfony\Component\HttpFoundation\Request;
require dirname(__DIR__).'/config/bootstrap.php';
if ($_SERVER['APP_DEBUG']) {
umask(0000);
Debug::enable();
}
if ($trustedProxies = $_SERVER['TRUSTED_PROXIES'] ?? $_ENV['TRUSTED_PROXIES'] ?? false) {
Request::setTrustedProxies(explode(',', $trustedProxies), Request::HEADER_X_FORWARDED_ALL ^ Request::HEADER_X_FORWARDED_HOST);
}
if ($trustedHosts = $_SERVER['TRUSTED_HOSTS'] ?? $_ENV['TRUSTED_HOSTS'] ?? false) {
Request::setTrustedHosts([$trustedHosts]);
}
$kernel = new Kernel($_SERVER['APP_ENV'], (bool) $_SERVER['APP_DEBUG']);
$request = Request::createFromGlobals();
$response = $kernel->handle($request);
$response->send();
$kernel->terminate($request, $response);
bin/console debug:event-dispatcher kernel.response
mit der Priorität -128 ausWebDebugToolbarListener::onKernelResponse
. Ist dies nicht der Fall, überprüfen Sie config / bundles.php, die WebProfilerBundle enthalten sollte. Ja.true
?WebDebugToolbarListener.php
. Fügen Sie dies in Zeile 109 vor der return-Anweisung hinzu:echo 'Mode: ', $this->mode, " XDebTok: ", $response->headers->has('X-Debug-Token'), " IsRedir: ", $response->isRedirection(); die();
und melden Sie die Rückgabe dafür.Antworten:
Es ist sehr schwierig, wenn nicht unmöglich, dies aus der Ferne für Sie zu debuggen. Das genaue Problem hängt mit etwas Bestimmtem in Ihrem lokalen Setup zusammen, und jemand ohne Zugriff auf Ihr Projekt hätte keine Chance, genau zu sehen, was falsch ist.
Einige allgemeine und spezifische Ratschläge zur Fehlerbehebung für Ihre Situation:
1. Installieren Sie das Profiler Pack neu
Obwohl ungewöhnlich, könnte die Installation verzerrt sein. Stellen Sie sicher, dass Ihr Profiler-Paket in Ordnung ist.
Entfernen Sie es zuerst (
composer remove profiler
) und installieren Sie es dann erneut :)composer require --dev profiler
.2 .. Überprüfen Sie die Konfiguration
Verwenden Sie den Konsolenbefehl von Symfony, um Ihre Konfiguration zu überprüfen.
Zuerst für den eingebauten Profiler:
Welches sollte so etwas zurückgeben:
Und dann zur Profiler-Symbolleiste:
Welches sollte etwas zurückgeben wie:
3 .. Überprüfen Sie den Behälter
Überprüfen Sie, wie der Profiler-Service instanziiert wird:
Erwarten Sie so etwas:
Und dann für die web_toolbar:
Für so etwas:
(Beachten Sie die
2
, die die Symbolleiste aktiviert).4 .. Überprüfen Sie den Ereignis-Dispatcher.
Die Web-Debug-Symbolleiste wird während des
kernel.response
Ereignisses eingefügt . Überprüfen Sie, ob der Rückruf ordnungsgemäß angeschlossen ist:Welches wird so etwas zurückgeben:
Hinweiselement
#7
, bei dem es sich um den Profiler-Kollektor handelt (der unter anderem denX-Debug-Token
Header in der Antwort enthält, der später von der Web-Debug-Symbolleiste überprüft wird, die#8
in der obigen Liste enthalten ist.Wenn eine der oben genannten Prüfungen fehlschlägt
Sie müssen sich auf diesen bestimmten Teil konzentrieren, um herauszufinden, warum er fehlschlägt. Vielleicht stört ein anderes Bündel? Ein Problem mit einer der Konfigurationsdateien?
Alles checkt aus
... aber immer noch nicht funktioniert? Das ist komisch. Stellen Sie sicher, dass Ihre zurückgegebene Vorlage ein
</body>
Tag enthält und dass die zurückgegebene Antwort vomtext/html
Inhaltstyp ist. Aber wenn alle oben genannten Punkte überprüft werden ... sollte es funktionieren.In einem Kommentar sagen Sie, dass
framework.profiler.collect
dieser Wert bei diesen Überprüfungen auf false gesetzt ist.Setzen Sie es auf true, indem Sie Folgendes ändern
config/packages/dev/web_profiler.yaml
:quelle
debug:config framework profiler
collect: false
framework.profiler.collect
so hinzuzufügen , wie es heißttrue
.collect : true
wenn ich mich richtig erinnere? Ist das neu