从特定文件夹

时间:2016-10-07 11:22:49

标签: php

我有一些使用相同Library类的扩展。图书馆包含每个扩展名,当然,它并不总是最新的。代码很简单:

class Library {
 function1 (){
  ...
 }

 function2 (){
  ...
 }
}

假设我们有2个扩展名:一个是旧版本的库,一个是更新版本。在较新的库中引入了新函数(function3()和function4())。任务很简单:我需要从特定文件夹加载Library类才能使用新功能。默认情况下,当两个扩展在同一页面上处于活动状态时,它会从扩展中加载Library类,这是第一个。

我似乎无法找到实现这一目标的最佳解决方案。我知道命名空间(但之前从未使用过它们),但它们需要更改库文件。我需要“命名空间ExtensionName;”在library.php。

的开头

有没有办法避免对库文件进行任何特定于扩展名的更改?

从特定文件加载一堆函数,将它们打包到一些动态命名的类中然后初始化它会很好。

更新

只是为了澄清这一切。说,我有两个扩展名:

扩展1 扩展2

它们都有“system”文件夹,包含两个系统类:

class SystemClassHelper
{
 function addStuff()
 {
  ...
 }
}

SystemClassModel
{
 function getStuff()
 {
  ...
 }
}

唯一的区别是Extension 2具有更新版本的系统类以及其他功能:

function addMoreStuff()
{
 ...
}

function getMoreStuff()
{
 ...
}

这两个扩展都广泛使用这些系统类,可以同时执行。这意味着,他们都将使用扩展中的系统类,这是首先执行的。但是如果首先执行扩展1,扩展2将在调用新函数时抛出错误(扩展1中没有新函数,还记得吗?)。

任务很简单:我需要为每个扩展加载系统类,以便能够在需要时使用新功能,并且我希望在不添加命名空间的情况下完成此操作。而且,当然,没有“不能重新宣布上课”的错误。

现在我只是在每个系统类的开头使用它:

namespace Extension1

namespace Extension2

这有效,但要求您不断更改系统类并确保添加名称空间。我想将“system”文件夹复制到另一个扩展名并直接从该文件夹加载类。

0 个答案:

没有答案