PHP中的命名空间声明(5.3.5)

时间:2012-11-09 11:04:37

标签: php namespaces include

好的,我是命名空间的新手,这是场景......我有2个文件

libs / class.mysql.inc.php

class MySQL{

}

类/ class.mysql.inc.php

require_once('libs/class.mysql.inc.php'); 
interface MySQLTemplate{
}
class MySQLWrapper extends MySQL implements MySQLTemplate{
}
好的,所以这是我的问题。我怎样才能将MySQLWrapper重命名为MySQL?显然'类MySQL扩展MySQL'不可能发生。在要求文件之前,我似乎无法声明命名空间。 (我可以,但它不接受命名空间)。我不想触摸libs / class.mysql.inc.php文件(如果可能的话)。

任何提示?提示?可能性在这里?

2 个答案:

答案 0 :(得分:1)

只要您需要引用MySQLWrapper,就要求使用use关键字进行此类:

use MySQLWrapper as MySQL;

//do your stuff with MySQL as an alias

答案 1 :(得分:0)

好的,看起来你只能在文件中定义命名空间,忽略任何包含。我通过在文件顶部声明一个随机命名空间来绕过它(PHP喜欢这个先于其他任何东西)。然后因为包含文件,inlcude类的名称空间是全局的。所以我得到了它的工作:

库/ class.mysql.inc.php

class MySQL{

}

类/ class.mysql.inc.php

namespace Libs;
require_once('libs/class.mysql.inc.php'); 
namespace App;
interface MySQLTemplate{
}
class MySQL extends \MySQL implements MySQLTemplate{
}

希望这有助于其他人......我有点不知所措,因为我不了解它的行为。