我似乎无法弄清楚如何实现以下结果。 重要提示:这应该适用于php 5.3
好吧,想象一下这种情况:你开发了许多php模块,例如WordPress插件,它们将在单一设置上运行,但不会相互通信或了解。但是代码库的一些(相当大的)部分是相同的并且可以重用。当我的所有模块都有“内部”这个共享库,作用于每个模块并且不会在全局空间中引起冲突时,我怎样才能实现结果? 例如,请参阅以下内容:
main.php(某些主机应用,如WordPress)
<?php
require('plugins/first-module/first.php');
require('plugins/second-module/second.php');
$first = new Project1\App();
$first->go();
$second = new Project2\App();
$second->go();
?>
first.php(第一个模块)
<?php
namespace Project1;
require('shared.php');
use CoreLib\Util\Logger\Log;
class App {
public function go() {
$logger = new Log();
$logger->say();
}
}
second.php(第二个模块)
<?php
namespace Project2;
require('shared.php');
use CoreLib\Util\Logger\Log;
class App {
public function go() {
$logger = new Log();
$logger->say();
}
}
shared.php(shared lib)
<?php
namespace CoreLib\Util\Logger;
class Log {
public function say() {
echo 'It works!';
}
}
现在我有一个错误,显然,因为重新声明了Log类。 有什么想法吗?