我在php中了解到,要使用命名空间,您必须先声明或包含。
<?php
namespace namespace_01;
function f1()
{
echo 'this is function';
}
use namespace_01 as test_namespace;
test_namespace\f1();
?>
几乎所有的laravel代码都使用名称空间。但是它们在哪里定义?
示例
当我创建一个控制器时。
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class controller1 extends Controller
{
//
}
Illuminate\Http\Request
在哪里定义?
答案 0 :(得分:2)
这些内容可以在Laravel Framework中找到。 Laravel使用composer自动加载这些软件包。您可以在/vendor
文件夹中找到源文件,这是composer放置软件包的地方。
答案 1 :(得分:2)
打开vendor/laravel/framework/src/Illuminate/Http/Request.php
中的文件
您将看到在顶部声明为namespace Illuminate\Http;
的名称空间,并且类名为Request
,您可以在composer.json
文件中看到
"autoload": {
"classmap": [
"database/seeds",
"database/factories"
],
"psr-4": {
"App\\": "app/"
}
},
因此,App文件夹中的所有类都将自动随Composer以及供应商文件加载。您不需要每次都包含文件。