有没有最佳实践方法来近似 WordPress 插件中的 PHP 命名空间?

发布于 2024-11-08 12:48:23 字数 665 浏览 0 评论 0原文

由于 PHP < 5.3 不提供命名空间,我想知道解决这种情况的最佳方法是关于 Wordpress:

我编写了一个插件,使用我的另一个非 WP 应用程序中的一些帮助程序类。这些类非常通用,例如,其中一个类名为“工具”。另一种称为Pic,用于封装图像的所有功能和数据。另外,我有一个基类,所有与数据库相关的类都是从该基类派生的。我总共有 5 个类,作为一个插件,它效果很好。

然后我意识到我将编写更多使用这些相同帮助器类的插件。我看到的选项是:

  1. 拥有插件 #2 需要安装插件 #1,并使用相同的帮助程序类(从我的角度来看这是可以的,但我想让这些插件可供所有不需要的人使用)任何此类限制)

  2. 复制助手将函数添加到插件 #2 中并给它们不同的名称(即 Plugin2_Tools、Plugin2_Pic,并类似地将插件 #1 中的名称重命名为 Plugin1_Tools 等...)我认为这是最好的方法,尽管我可以看到有数十个插件所有这些都使用相同的基类和辅助类,并且复制它们会很痛苦!

2a.我还认为无论如何我都应该重命名类和函数,以便它们更加独特(EG MyPlugin_Tools....),这样在非命名空间 PHP 世界中名称重复的机会就更少了。

只是好奇是否有既定的惯例或最佳实践?我猜#1 适合私人使用,#2 适合开源......任何建议表示赞赏。

Since PHP < 5.3 doesn't offer namespacing, I'm wondering what the best way to approach this situation is w/regards to Wordpress:

I wrote a plugin, using some helper classes from another, non-WP application of mine. The classes are pretty generic, for example one is named Tools. Another is named Pic, which is used to encapsulate all the functionality and data of an image. Additionally I have a base class from which all DB-related classes are derived. Altogether I have 5 classes, and as a plugin, it works great.

I then realized that I will write more plugins that would use these same helper classes. My options as I see them are:

  1. have plugin #2 require plugin #1 to be installed, and use the same helper classes (that's OK from my perspective but I'd like to make these plugins available to all w/o any such restrictions)

  2. duplicate the helper functions into plugin #2 and give them different names (ie Plugin2_Tools, Plugin2_Pic, and similarly rename those in plugin #1 to Plugin1_Tools, etc...) I'm thinking this is the best way, though I could see having dozens of plugins all using the same base classes and helper classes and duplicating them would be a pain!

2a. I'm also thinking I should rename the classes and functions in any case so that they are more unique (EG MyPlugin_Tools....) so there is less chance of name duplication in the non-namespace PHP world.

Just curious if there is an established convention or best practice for this? I'm guessing #1 is good for private use and #2 is good for open source... Any suggestions appreciated.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

挽清梦 2024-11-15 12:48:23

对于您将在多个函数中使用的函数/类,您可能需要考虑将您的姓名或缩写或公司缩写添加到前面。然后,对于插件特定功能,请使用前面的+插件名称的组合。

示例:

jrod_base_class;

jrod_laser_plugin_class;

For functions/classes you will be using across multiple functions you may want to consider appending your name or initials or company initials to the front. Then for plugin specific functions use a combination of the previous + the plugin name.

Example:

jrod_base_class;

jrod_laser_plugin_class;

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文