【问题标题】:Raw PHP vs Laravel Framework : 'include' file原始 PHP 与 Laravel 框架:“包含”文件
【发布时间】:2020-08-18 01:53:24
【问题描述】:

我正在研究 Laravel 中的基本概念,但我有一个概念问题。

在原始 PHP 中:

当我想创建一个类(例如用户)的对象时,它位于具有命名空间(例如命名空间 App)的不同目录(例如 app\user.php)中,我必须首先包含该文件(使用包括'app/user.php'),然后添加'use'(使用App\User)。

<?php

include 'app/user.php'; // including the file

use App\User;

$user = new User('John');

但是,在 Laravel 中,我看到它们根本不包含任何文件。他们只需添加“使用”关键字(使用 App\User.php),然后就可以实例化它的一个对象。 ($user = User::find(1))。

<?php

namespace App\Http\Controllers;

use App\User;

class UserController extends Controller
{

public function index()
{
    $user = User::find(1);
}
}

谁能解释一下这是怎么回事?

【问题讨论】:

    标签: php laravel


    【解决方案1】:

    这不是 laravel 功能,这是来自 php 的 autoload_class。

    https://www.php.net/manual/en/language.oop5.autoload.php

    spl_autoload_register() 函数注册任意数量的自动加载器,如果当前未定义类和接口,则可以自动加载它们。通过注册自动加载器,PHP 获得了加载类或接口的最后机会,以免出现错误。

    所有类都存在于composer自动加载文件中:

    vendor/composer/autoload_classmap.php 
    

    【讨论】:

    • 不知道这个。感谢您的回答
    猜你喜欢
    • 2013-06-14
    • 1970-01-01
    • 2015-03-03
    • 2011-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多