php 文件的作曲家 PSR-4

Composer PSR-4 for php file

在我的项目中,我有一个文件夹 lib\custom,其中包含 Web 文件夹和 functions.php 文件。在我的 functions.php 中,我有一些函数需要在另一个 类 中使用,在这个文件的第一行中,我定义了一个名称空间,如下所示

<?php
namespace Custom;

function abc(){....}

在 Web 文件夹中我有一些 类 和命名空间 Custom\Web;

在我的 composer.json 文件中,我定义的名称空间如下所示

"Custom\":"lib/custom/"

所以,现在我使用的 abc() 看起来像这样

use Custom;
$abc = Custom\abc("abc")

但作为回应,我得到了

Call to undefined function Custom\abc()

我该如何解决这个问题?

PSR-4 描述了从文件路径自动加载 类 的规范。它不包括从文件加载函数。

使用the files autoloader 自动加载每个请求的函数文件。只要您包含自动加载器,这将使您的功能可用:

{
    "autoload": {
        "files": ["lib/custom/functions.php"]
    }
}    

由于您的函数是命名空间的,因此您需要使用 use 语句导入它们或使用完全限定名称。

如果您的 Web 文件夹包含 PSR-4 兼容 类,请像以前一样使用 PSR-4 自动加载器加载它们(您可以在 composer.json 中定义多个自动加载器)。