【发布时间】:2020-02-10 03:54:14
【问题描述】:
我试图通过包含命名空间的类来调用另一个类的函数。但是当我这样做时,我得到一个错误
Fatal error: Uncaught Error: Class 'inc\Activate' not found
当我使用 require_once 而不是命名空间包含类时,不会发生此错误。
我在 composer 的帮助下生成了 vendor 文件夹,用于定义全局命名空间
这是我的代码
aotoload_psr.php
$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);
return array(
'inc\\' => array($baseDir . '/inc'),
);
Activate.php(要包含的类)
namespace inc;
class Activate
{
public static function activate()
{
flush_rewrite_rules();
}
}
fahad-plugin.php(包含类)
use inc\Activate;
class FahadPlugin
{
function activate()
{
Activate::activate();
}
$fp = new FahadPlugin();
register_activation_hook(__FILE__, array($fp, 'activate'));
}
任何我做错的想法。
【问题讨论】:
-
Activate.php文件的路径到底是什么?它应该在您的vendor目录旁边的inc文件夹内(或者,从您的aotoload_psr.php文件所在的角度来看,“../../../inc/Activate.php”)。 -
Activate.php位于inc文件夹内。我已经用文件结构@Top-Master 更新了问题
标签: php wordpress namespaces