ErrorException Неопределенная переменная После перехода к вспомогательным функциям laravel - PullRequest
1 голос
/ 28 июня 2019

У меня есть старый сайт, который когда-то был на vanilla php. Я перешел на laravel, поместив весь код в «устаревшую папку» в представлениях, и у меня была папка с множеством функций.

В этот момент все работало нормально.

Чтобы сделать еще один шаг, я переместил функции из папок внутри представлений в помощники. Теперь я получаю несколько типов ошибок, повторяющихся повсюду в кодовой базе, я их отлаживаю, но их много, и я не знаю, почему они появляются сейчас, а не раньше.

Например, теперь выдаются ошибки, если:

  • Доступ к неопределенному индексу массива

    $ a = $ _GET ['a'];

  • Доступ к неопределенному свойству объекта

    $ a = $ b-> c;

  • Я пытаюсь поставить невыбранную переменную себе в очередь

    $ a. = "Пример";

  • foreach для неустановленной переменной называется

  • функция передается с ненастроенной переменной

Это мои маршруты / web.php

Route::get('{path?}', 'LegacyPagesController@show')->where('path', '.+');
Route::post('{path?}', 'LegacyPagesController@show')->where('path', '.+');

LegacyPagesController

public function show($path='index.php')
{
  ob_start();
  require(base_path('resources/views/legacy-pages/').$path);
  return ob_get_clean();
}

Я поместил хелперы в App \ Helpers \ ExampleHelper.php как бесклассовый набор функций и в composer.json

"autoload": {
    "files": [
        "app/Helpers/ExampleHelper.php",

Я не уверен, связаны ли эти ошибки с новыми помощниками или с ошибкой в ​​моей маршрутизации, или с чем-то другим, например с версией php или с конфигурацией php.ini. Любое предложение приветствуется.

1 Ответ

1 голос
/ 04 июля 2019

Чтобы удалить сообщение об ошибке, которое вы видите, просто измените переменную error_reporting следующим образом:

ini_set('error_reporting', E_ALL & ~E_STRICT);

Рекомендуется включить его и вместо этого исправить ошибки, так как это действительно ошибки, phpпросто достаточно умен, чтобы справиться с ними для вас.Этот ответ показывает рекомендуемые настройки от команды php.

...