Profil oluşturucu araç çubuğum symfony 4.3.1'de görünmüyor


9

Benim .envdosyamda, uygulama ortamımı dev ve hata ayıklamak için doğru olarak belirttik:

APP_ENV=dev
APP_DEBUG=true

Dosyamda config/packages/dev/web_profiler.yamlaşağıdakiler var:

web_profiler:
    toolbar: true
    intercept_redirects: false

framework:
    profiler: { only_exceptions: false }

İçindeki rota config/routes/dev/web_profiler.yamliyi görünüyor:

web_profiler_wdt:
    resource: '@WebProfilerBundle/Resources/config/routing/wdt.xml'
    prefix: /_wdt

web_profiler_profiler:
    resource: '@WebProfilerBundle/Resources/config/routing/profiler.xml'
    prefix: /_profiler

Sunucuyu çalıştırdığımda symfony server:starther şey yolunda ama profiler görünmüyor. Symfony'de bu özelliği sağlayan bir şeyi kaçırdım mı?

Açıklığa kavuşturmak için, sayfa uygun içeriğe sahip uygun bir HTML sayfası çıkarıyor. Görünen sadece bir profil oluşturucu yok.


Temel dal şablonum:

<!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 güvenlik duvarı:

    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!

Sonuçlar 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 

Son olarak ana sayfa denetleyicisi:

<?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 eklendi:

<?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);

Tarayıcınızda bir ctrl-u yapın ve görünen bir html sayfanız olduğunu doğrulayın. Çubuk yalnızca gerçek bir sayfa için mevcut olacaktır.
Cerad

1
1. tarayıcınızın ağ sekmesinde (ff ve kromda F12), bazı _profiler yollarının yüklü olduğunu kontrol edebilir misiniz? (evet ise, yüklü ancak görünmez). 2. web profiler paket etkin, bin/console debug:event-dispatcher kernel.response-128 öncelikli olması gereken yerlerde çalıştırın WebDebugToolbarListener::onKernelResponse. değilse, WebProfilerBundle içermesi gereken config / bundles.php dosyasını kontrol edin. Evet.
Jakumi

2
@ Majo0od, 102. satırdaki koşulların dinleyicinin çalışmayı durdurmasına neden olduğunu fark ederseniz, bunu daha da ilerletmeye ne denediniz? Bu koşullardan hangisi değerlendiriliyor true?
Nico Haase

1
Geçici olarak değiştirin WebDebugToolbarListener.php. 109 satırında bunu return ifadesinden önce ekleyin: echo 'Mode: ', $this->mode, " XDebTok: ", $response->headers->has('X-Debug-Token'), " IsRedir: ", $response->isRedirection(); die();ve bunun dönüşünü bildirin .
yivi

1
Bir hata alıp almadığınızı görmek için "config / Packages / dev / web_profiler.yaml" dosyasının başına sahte bir dize (örn. "Abc") ekleyin. Belki de dosya hiç okunmaz.
Jannes Botis

Yanıtlar:


7

Bunu imkansız değilse bile, uzaktan sizin için hata ayıklamak çok zordur. Tam sorun yerel kurulumunuzda belirli bir şeye bağlıdır ve projenize erişimi olmayan bir kişinin tam olarak neyin yanlış olduğunu görme şansı olmaz.

Durumunuz için bazı genel ve özel sorun giderme önerileri:

1 inci. Profil oluşturma paketini yeniden takın

Alışılmadık olsa da, kurulum boyanabilir. Profil oluşturma paketinizin iyi olduğundan emin olun.

Önce çıkarın ( composer remove profiler) ve sonra tekrar kurun :) composer require --dev profiler.

2. Yapılandırmayı kontrol edin

Yapılandırmanızı doğrulamak için Symfony'nin konsol komutunu kullanın.

Yerleşik profil oluşturucu için ilk önce:

$ bin/console debug:config framework profiler

Hangi böyle bir şey dönmelidir:

Current configuration for "framework.profiler"
==============================================

only_exceptions: false
enabled: true
collect: true
only_master_requests: false
dsn: 'file:%kernel.cache_dir%/profiler'

Ve sonra profil oluşturucu araç çubuğu için:

$ bin/console debug:config web_profiler

Hangi gibi bir şey dönmelidir:

Current configuration for extension with alias "web_profiler"
=============================================================

web_profiler:
    toolbar: true
    intercept_redirects: false
    excluded_ajax_paths: '^/((index|app(_[\w]+)?)\.php/)?_wdt'

3 üncü. Konteyneri kontrol edin

Profiler hizmetinin nasıl somutlaştırılacağını kontrol edin:

$ bin/console debug:container profiler --show-arguments

Bunun gibi bir şey bekliyoruz:

Information for Service "profiler"
==================================

 Profiler.

 ---------------- -------------------------------------------------------------------------------------
  Option           Value
 ---------------- -------------------------------------------------------------------------------------
  Service ID       profiler
  Class            Symfony\Component\HttpKernel\Profiler\Profiler
  Tags             monolog.logger (channel: profiler)
                   kernel.reset (method: reset)
  Calls            add, add, add, add, add, add, add, add, add, add, add, add, add, add, add, add, add
  Public           yes
  Synthetic        no
  Lazy             no
  Shared           yes
  Abstract         no
  Autowired        no
  Autoconfigured   no
  Arguments        Service(profiler.storage)
                   Service(monolog.logger.profiler)
                   1
 ---------------- -------------------------------------------------------------------------------------

Ve sonra web_toolbar için:

# bin/console debug:container web_profiler.debug_toolbar --show-arguments

Bunun gibi bir şey için:

Information for Service "web_profiler.debug_toolbar"
====================================================

 WebDebugToolbarListener injects the Web Debug Toolbar.

 ---------------- ------------------------------------------------------------------------
  Option           Value
 ---------------- ------------------------------------------------------------------------
  Service ID       web_profiler.debug_toolbar
  Class            Symfony\Bundle\WebProfilerBundle\EventListener\WebDebugToolbarListener
  Tags             kernel.event_subscriber
                   container.hot_path
  Public           no
  Synthetic        no
  Lazy             no
  Shared           yes
  Abstract         no
  Autowired        no
  Autoconfigured   no
  Arguments        Service(twig)

                   2
                   Service(router.default)
                   ^/((index|app(_[\w]+)?)\.php/)?_wdt
                   Service(web_profiler.csp.handler)
 ---------------- ------------------------------------------------------------------------

( 2Araç çubuğunu etkinleştiren,).

4. Olay göndericisini kontrol edin.

Web hata ayıklama araç çubuğu kernel.responseetkinlik sırasında enjekte edilir . Geri aramanın uygun şekilde bağlandığını kontrol edin:

$ bin/console debug:event-dispatcher kernel.response

Hangi böyle bir şey döndürür:

Registered Listeners for "kernel.response" Event
================================================

 ------- -------------------------------------------------------------------------------------------- ----------
  Order   Callable                                                                                     Priority
 ------- -------------------------------------------------------------------------------------------- ----------
  #1      ApiPlatform\Core\Hydra\EventListener\AddLinkHeaderListener::onKernelResponse()               0
  #2      Symfony\Component\HttpKernel\EventListener\ResponseListener::onKernelResponse()              0
  #3      Symfony\Component\HttpKernel\DataCollector\RequestDataCollector::onKernelResponse()          0
  #4      Symfony\Component\WebLink\EventListener\AddLinkHeaderListener::onKernelResponse()            0
  #5      Symfony\Component\Security\Http\RememberMe\ResponseListener::onKernelResponse()              0
  #6      ApiPlatform\Core\HttpCache\EventListener\AddHeadersListener::onKernelResponse()              -1
  #7      Symfony\Component\HttpKernel\EventListener\ProfilerListener::onKernelResponse()              -100
  #8      Symfony\Bundle\WebProfilerBundle\EventListener\WebDebugToolbarListener::onKernelResponse()   -128
  #9      Symfony\Component\HttpKernel\EventListener\TestSessionListener::onKernelResponse()           -128
  #10     Symfony\Component\HttpKernel\EventListener\DisallowRobotsIndexingListener::onResponse()      -255
  #11     Symfony\Component\HttpKernel\EventListener\SessionListener::onKernelResponse()               -1000
  #12     Symfony\Component\HttpKernel\EventListener\StreamedResponseListener::onKernelResponse()      -1024
 ------- -------------------------------------------------------------------------------------------- ----------

Bildirim öğesi #7diğer şeylerin yanı içerecektir Profiler kollektör (olduğunu X-Debug-Tokensonradan öğedir Web ayıklama Toolbar tarafından kontrol edilecek cevaben başlığını, #8listeleme yukarıda.

Yukarıdaki kontrollerden herhangi biri başarısız olursa

Neden başarısız olduğunu öğrenmek için o bölüme odaklanmanız gerekir. Belki başka bir paket karışıyor? Yapılandırma dosyalarından biriyle ilgili bir sorun mu var?

Her şey kontrol ediyor

... ama hala çalışmıyor mu? Bu garip. Döndürülen şablonunuzun bir </body>etiketi olduğundan ve döndürülen yanıtın text/htmliçerik türünde olduğundan emin olun . Ama yukarıdaki kontroller dışında tüm ... o eğer gerektiğini çalışır.


Bir yorumda framework.profiler.collect, bu kontrolleri gerçekleştirirken bunun false olarak ayarlandığını söylersiniz .

Aşağıdaki gibi değiştirerek doğru olarak ayarlayın config/packages/dev/web_profiler.yaml:

framework:
    profiler:
        only_exceptions: false
        collect: true

3
debug:config framework profilercollect: false
Göze çarpan

Yani yapılandırmasını eklemeyi deneyin framework.profiler.collectdiyor böylece true.
yivi

1
YAŞIYOR!!! En sonunda! Şimdi geri döndü! Tüm hata ayıklama ve yardım için teşekkür ederiz !!!!
Majo0od

Tek bir hattı bilenler herşeyi mahvedebilir. Tarihsel olarak collect : truedoğru hatırlarsam eklememize gerek yoktu ? Bu yeni mi?
Majo0od

Tüm bu adımlar için teşekkürler! Görünüşe göre tabanı genişletmeyen bir şablon oluşturdum, bu yüzden aslında HTML / Javascript değil, sadece düz metin döndürüyordu.
Alexander Varwijk
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.