在要求包含use语句的文件后找不到类

时间:2014-03-30 00:56:26

标签: php redbean

我正在尝试使用文件来设置与RedBeanPHP的数据库连接,该连接可以包含在其他任何地方。例如:

file1.php

<?php
require_once '../vendor/autoload.php';
use RedBean_Facade as R;
R::setup();
?>

file2.php

<?php
require_once 'file1.php';
R::debug(true);
?>

但是导航到file2.php会显示以下错误:

  

致命错误:第5行的/file1.php中找不到类'R'

PHP中的命名空间使用语句不能得到include d?

1 个答案:

答案 0 :(得分:2)

在PHP中namespaceuse声明仅在它们出现的物理文件中有效。这些声明不跨越require。它们已在编译时处理。

如果a.php在其名称空间中使用别名,并且b.php包含别名,则a.php将无法看到b.php中定义的别名。

您必须在每个文件中插入use语句。 Here's the documentation

  

导入规则基于每个文件

但是,您可以使用class_alias

解决此问题
class_alias('RedBean_Facade', 'R');