xdebug не может войти в приложение laravel

Я большой поклонник использования Xdebug с Laravel (особенно в напор). Однако в последнее время происходит нечто странное (Примечание: мой xdebug отлично работает, когда я запускаю его на модульных тестах с помощью этой команды:

php -dxdebug.remote_enable = 1 -dxdebug.remote_mode = req -dxdebug.remote_port = 9000 -dxdebug.remote_host = 127.0.0.1 ./vendor/bin/phpunit

  1. Я сначала поставил точку останова в методе контроллера, например
  2. Я запускаю команду в браузере, которая вызовет HTTP-вызов, который вызовет этот метод контроллера
    точка останова появляется здесь: (project / path / serve.php)

<

<?php <------- breakpoint appears here

/**
* Laravel - A PHP Framework For Web Artisans
*
* @package  Laravel
* @author   Taylor Otwell <[email protected]>
*/

$uri = urldecode(
parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH)
);

// This file allows us to emulate Apache's "mod_rewrite" functionality from the
// built-in PHP web server. This provides a convenient way to test a Laravel
// application without having installed a "real" web server software here.
if ($uri !== '/' && file_exists(__DIR__.'/public'.$uri)) {
return false;
}

require_once __DIR__.'/public/index.php';

если я наберу команду «получить весь контекст», я получу это:

$uri                 = /* uninitialized */'';

пошаговое выполнение переходит к строке if ($ uri, в этом случае uri правильно отображается в contxt

когда я перехожу к концу этого файла, он сразу же переходит сюда:

/**
* Handle the PHP shutdown event.
*
* @return void
*/
public function handleShutdown()
{
if (! is_null($error = error_get_last()) && $this->isFatal($error['type'])) {

в

Illuminate\Foundation\Bootstrap\HandleExceptions->handleShutdown()

затем он сразу переходит к вороной поставщик услуг:

/**
* Register the service provider.
*/
public function register()
{

..
// Register the fatal error handler.
register_shutdown_function(function () {
if (isset($this->app['Raven_Client'])) { <---- comes here
(new Raven_ErrorHandler($this->app['Raven_Client']))->registerShutdownFunction();
}
});

в

Jenssegers\Raven\RavenServiceProvider->Jenssegers\Raven\{closure}()

тогда здесь @ Raven_Client-> onShutdown () /path/to/project/vendor/sentry/sentry/lib/Raven/Client.php:1388

public function onShutdown()
{
if (!defined('RAVEN_CLIENT_END_REACHED')) { <--
define('RAVEN_CLIENT_END_REACHED', true);
}
$this->sendUnsentErrors();
if ($this->curl_method == 'async') {
$this->_curl_handler->join();
}
}

тогда здесь @ Raven_ErrorHandler-> handleFatalError () /path/to/project/vendor/sentry/sentry/lib/Raven/ErrorHandler.php:126

public function handleFatalError()
{
unset($this->reservedMemory); <---

if (null === $error = error_get_last()) {
return;
}

if ($this->shouldCaptureFatalError($error['type'])) {
$e = new ErrorException(
@$error['message'], 0, @$error['type'],
@$error['file'], @$error['line']
);
$this->handleException($e, true);
}

тогда здесь @ Monolog \ Handler \ RotatingFileHandler -> __ destruct () /path/to/project/vendor/monolog/monolog/src/Monolog/Handler/AbstractHandler.php:169

public function __destruct()
{
try {
$this->close();
} catch (\Exception $e) {
// do nothing
} catch (\Throwable $e) {
// do nothing
}
}

как я могу остановить это?

я удалил поставщика услуг ворона из моего env, выполнив это:

класс AppServiceProvider расширяет ServiceProvider
{

/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
$env = config('app.env');

if (!$env === 'local' || !$env === 'testing') {
$this->app->register(\Jenssegers\Raven\RavenServiceProvider::class);
$this->app->alias('Raven', Jenssegers\Raven\Facades\Raven::class);
}

но теперь, когда я отлаживаю, это все еще идет здесь:

/**
* Handle the PHP shutdown event.
*
* @return void
*/
public function handleShutdown()
{
if (! is_null($error = error_get_last()) && $this->isFatal($error['type'])) {

в

Illuminate\Foundation\Bootstrap\HandleExceptions->handleShutdown()

но это пропускает воронья вещи .. так что это действительно моя проблема. Происходит ошибка, но я хотел бы отладить до я дошел до этой ошибки ..

  • Я заметил, что точки останова в промежуточном программном обеспечении работают нормально, но затем он пропускает мой контроллер
  • Если я сделаю запрос от почтальона (я переключился на API входа для курения), он работает просто отлично, вот как выглядит моя команда почтальона (преобразованная в curl):

>

curl --request POST \
--url 'http://127.0.0.1:8000/api/users/login' \
--header 'Accept: application/x.toters.v1+json' \
--header 'Content-Type: application/json' \
--header 'content-type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW' \
--form 'email={{client_user_name}}' \
--form 'password={{general_password}}'

с другой стороны, это запрос от браузера, который не работает:

curl 'http://127.0.0.1:8000/api/users/login'
-X OPTIONS
-H 'Access-Control-Request-Method: POST'
-H 'Origin: http://localhost:3000'
-H 'Accept-Encoding: gzip, deflate, br'
-H 'Accept-Language: en-US,en;q=0.9'
-H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.167 Safari/537.36'
-H 'Accept: */*'
-H 'Connection: keep-alive'
-H 'Access-Control-Request-Headers: content-type' --compressed

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]