gpt4 book ai didi

php - 有哪些实用的 PHP 命名空间解决方案?

转载 作者:行者123 更新时间:2023-12-04 16:58:18 25 4
gpt4 key购买 nike

这是场景(它有点具体,但仍然足以适用于任何 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/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com