我怎么能在一个位于另一个文件中的类中调用我的函数而不求助于include
例如,我有test.php文件,其中包含:
<?php
echo Customer::test();
?>
该类的文件customer
是Customer.class.php,它包含:
<?php
class Customer {
public function test(){
echo "test";
}
}
?>
是否有一个方法或配置文件可以定义,例如,当我调用一个类时,它会在一个名为 classes 的文件夹中查找?
通过 PSR-4,这是类自动加载的规范1
重要的提示
在根级别的 PHP 项目中,执行以下命令:
使用此命令,您将生成一个名为的文件
composer.json
,您必须用请求的数据填充该文件。composer.json
您应该具有类似于以下的结构,尤其是检查键之后的内容
require
解释
App
它是包含您的开发的主要名称空间,它将识别您的文件夹中包含的类clases
;那么内部存在的每个文件都clases
必须以该值开头,如下所示:Class1.php
命名空间应用程序;
Class2.php
命名空间应用
clases
它是物理路径,即包含所有要使用的类的文件夹。在您的 classes 文件夹中生成名为的文件,该文件
Customer.php
应或多或少如下所示:现在我们必须使用以下命令生成供应商文件夹:
前面的命令将负责注册我们的命名空间
App
,该命名空间指向我们clases
在数组中的文件夹,如下所示:完成上述操作后,在项目的根目录中创建名为test.php的文件,并在其中写入以下内容:
Customer
我们通过其完整的命名空间调用该类,App\Customer
记住,App
该命名空间绑定到clases
我们要从中提取的文件夹Customer.php
。require
toautoload.php
where 的行授予,尽管您仍然需要它,但它只是一个文件,它反过来管理下面文件夹中的所有文件clases
参考