这是场景(它有点具体,但仍然足以适用于任何 php 库):
WordPress 3.2.1 或更早版本(PHP 代码库,PHP5 w/和 w/o 名称间距可用)......我已经创建了一个带有几个类名的小型 PHP 库(WPAlchemy_MetaBox、WPAlchemy_MediaAccess)......开发人员已经开始使用WordPress可以安装多个插件/主题中的类(在同一环境中),因此可能有两个或多个插件使用该库(显然类名可能会发生冲突)
我目前认为每个版本都可以有一个唯一的类名(带有版本号或其他东西)......我可以用某种简单的加载器(为简单起见)对此进行一些抽象。
我想获得一些最佳实践来解决上述问题。
如果还有其他 SO 帖子可以解决此问题,请让我知道,另外请随时用其他要点目标重新表述问题。
最佳答案
为防止冲突,请使用自动加载器(请参阅 spl_autoload_register
)。因此,如果您共享库并且每个共享者都使用自动加载器,则不会再发生类名冲突(重新声明类 fatal error )。
这并不能解决版本问题(例如,具有来自同一系列但具有不同版本的不同类)。
一个简单的解决方案(与自动加载程序结合)是将库作为插件提供。每次库更新时,更新插件。该插件仅提供自动加载器和类。
其他想要使用该库的插件,必须使您的库插件成为依赖项,例如检查它并告诉用户安装它,如果它不可用或只是自动安装它。
如果您提供一个示例插件来为演示 (SDK) 执行此操作,我认为许多用户都会采用的库。
关于php - 有哪些实用的 PHP 命名空间解决方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8056224/