CakePHP 3实用程序命名空间中的自定义函数

时间:2017-06-27 16:17:38

标签: php cakephp autoload

我有一个文件,其中包含需要在CakePHP模型中使用的几个函数(特别是Table类,我将其称为“UserTable”)。自动加载器似乎没有采用这些功能。我尝试了the answer to this question,它对于类非常好用,但它似乎不适用于函数。

自定义函数位于src / Utility / CommonFunctions.php中,包含以下内容:

namespace App\Utility\CommonFunctions;

function testFunction($inputVar)
{
    return $inputVar;
}

src / Model / Table / UserTable.php在开头包含:

namespace App\Model\Table;

use Cake\ORM\Query;
use Cake\ORM\RulesChecker;
use Cake\ORM\Table:
use Cake\Validation\Validator;
use Cake\Datasource\ConnectionManager;
use App\Utility\CommonFunctions;

我使用以下方法调用UserTable方法中的特定函数:

$testVar = CommonFunctions\testFunction("testing one two three");

如果我在CommonFunctions.php中有一个名为CommonFunctions的类(并删除名称空间声明中的最后一个“\ CommonFunctions”),它可以正常工作,但它是独立于我需要导入的任何类的函数。

如果我为该文件添加一个包含,它可以正常工作。否则,CakePHP有一个错误:“调用未定义的函数App \ Utility \ CommonFunctions \ testFunction()”

有没有办法自动加载功能而不是使用自动加载器的类?

0 个答案:

没有答案