Я получаю проблему с пространством имен при попытке расширить фасад Response в Laraval 5. Я создал новое дерево папок в каталоге app
с именем Extensions\Facades
. В этой папке у меня есть файл с именем AjaxResponse.php
, который имеет следующее содержание:Extend Laravel 5 Response Facade
<?php namespace App\Extensions\Facades;
use Illuminate\Support\Facades\Response;
class AjaxResponse extends Response{
public static function send($code,$body,$http_code=200){
parent::json(array(
'status'=>(string)$code,
'body' =>$body
))->setStatusCode($http_code)->send();
exit();
}
}
Я регистрация в этом качестве поставщика услуг в config/app.php
, как я понимаю, я должен:
providers=[
//..normal stuff
'App\Extensions\Facades\AjaxResponse',
]
И это метание нормальной ошибки пространства имен класса не найдено:
FatalErrorException in ProviderRepository.php line 150:
Class 'App\Extensions\Facades\AjaxResponse' not found
Может кто-нибудь пролить свет на то, почему класс не найден?
Попробуйте с * использовать \ ILLUMINATE \ Support \ Фасады \ Response; * (обратите внимание на обратная косая черта в начале). Во всяком случае, ServiceProvider должен перезаписать метод регистрации, см. Фасады в документах Laravel. – marcanuy
Ошибка связана с классом, который я создал не для класса, который я использовал. Я не думаю, что есть проблема с этим. Кроме того, ссылка «ProviderRepository.php» относится к включению моего нового класса в файл 'config \ app.php', я думаю, –
ОК получил вас. Я ошибаюсь, чтобы попытаться загрузить расширение в качестве поставщика услуг. Имеет смысл. Мне просто нужно иметь возможность использовать этот класс. Не имеет значения, что я пытаюсь это все еще говорит мне, что класс не может быть найден! Проклятые пространства имен PHP, которые они всегда дают мне головную боль –