2014-03-30 21 views
1

我正在嘗試使用文件來設置與可以包含在其他地方的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顯示了這個錯誤:

Fatal error: Class 'R' not found in /file1.php on line 5 

做PHP命名空間中使用的語句不得到include ed?

回答

2

在PHP namespaceuse聲明僅在它們出現的物理文件中有效。這些聲明不跨越require s。它們已經在編譯時處理過了。

如果a.php使用別名,在其命名空間,它是由b.php包括,在a.php定義的別名將不會被b.php看到。

您將不得不將use語句插入每個文件。 Here's the documentation

Importing rules are per file basis

但是,您可以解決此使用class_alias

class_alias('RedBean_Facade', 'R'); 
相關問題