Php 扩展Laravel 5响应面
在尝试扩展Laravel 5中的响应外观时,我遇到了名称空间问题。我在Php 扩展Laravel 5响应面,php,laravel,fatal-error,facade,Php,Laravel,Fatal Error,Facade,在尝试扩展Laravel 5中的响应外观时,我遇到了名称空间问题。我在app目录下创建了一个名为Extensions\Facades的新文件夹树。在这个文件夹中,我有一个名为AjaxResponse.php的文件,其中包含以下内容: <?php namespace App\Extensions\Facades; use Illuminate\Support\Facades\Response; class AjaxResponse extends Response{ publi
app
目录下创建了一个名为Extensions\Facades
的新文件夹树。在这个文件夹中,我有一个名为AjaxResponse.php
的文件,其中包含以下内容:
<?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();
}
}
这会引发找不到类的正常命名空间错误:
FatalErrorException in ProviderRepository.php line 150:
Class 'App\Extensions\Facades\AjaxResponse' not found
有人能解释为什么找不到这个班吗 转到项目根文件夹并在终端类型中
composer dump-autoload
那么一切都会好起来的。创建新文件夹时,composer不知道该文件夹,因此它无法从中自动加载文件,即使这些文件是psr-4
命名空间文件
编辑此外,您还需要在别名数组下的config/app.php
中为您的外观声明别名,而不是提供者:
'AjaxResponse' => 'App\Extensions\Facades\AjaxResponse',
尝试使用\照明\支持\外观\响应;(注意开头的反斜杠)。无论如何,服务提供商应该覆盖register方法,参考Laravel文档上的Facades。错误与我创建的类有关,而不是与我使用的类有关。我不认为这有什么问题。另外,
ProviderRepository.php
引用与我的新类包含在我thinkOK给你的config\app.php
文件中有关。尝试将扩展作为服务提供商加载是错误的。有道理。我只需要能够使用这个类。不管我尝试什么,它仍然告诉我找不到该类!该死的PHP名称空间他们总是让我头痛这与你的问题没有直接关系,但你可能想看看是的,我实际上在使用这种方法,这是一个可靠的建议。出于学术上的原因,我仍然想找出这个mo of outNice,谢谢。仍然得到f-in错误,但这是好东西。
'AjaxResponse' => 'App\Extensions\Facades\AjaxResponse',