Есть ли лучший способ приблизить пространство имен PHP в плагинах WordPress? - PullRequest
0 голосов
/ 20 мая 2011

Поскольку PHP <5.3 не предлагает пространства имен, мне интересно, как лучше всего подойти к этой ситуации с учетом Wordpress: </p>

Я написал плагин, используя несколько вспомогательных классов из другого моего приложения, не относящегося к WP. Классы довольно общие, например, один из них называется Инструменты. Другой называется Pic, который используется для инкапсуляции всех функций и данных изображения. Кроме того, у меня есть базовый класс, из которого получены все классы, связанные с БД. Всего у меня есть 5 классов, и, как плагин, он прекрасно работает.

Затем я понял, что напишу больше плагинов, которые будут использовать те же вспомогательные классы. Мои варианты, как я их вижу:

  1. иметь плагин № 2, требующий установки плагина № 1, и использовать те же вспомогательные классы (это нормально с моей точки зрения, но я хотел бы сделать эти плагины доступными для всех без каких-либо таких ограничений)

  2. продублируйте вспомогательные функции в плагине # 2 и дайте им разные имена (например, Plugin2_Tools, Plugin2_Pic, и аналогичным образом переименуйте их в плагине # 1 в Plugin1_Tools и т. Д.). Я думаю, что это лучший способ хотя я мог видеть, что десятки плагинов, использующих одни и те же базовые классы и вспомогательные классы, дублируют их, было бы больно!

2a. Я также думаю, что в любом случае мне следует переименовать классы и функции, чтобы они были более уникальными (например, MyPlugin_Tools ....), чтобы меньше шансов на дублирование имен в мире PHP без пространства имен.

Просто любопытно, существует ли установленная конвенция или лучшая практика для этого? Я предполагаю, что № 1 хорош для частного использования, а № 2 хорош для открытого исходного кода ... Любые предложения приветствуются.

1 Ответ

1 голос
/ 20 мая 2011

Для функций / классов, которые вы будете использовать в нескольких функциях, возможно, вы захотите добавить свое имя, инициалы или инициалы компании на первый план.Затем для специальных функций плагина используйте комбинацию предыдущего + имя плагина.

Пример:

jrod_base_class;

jrod_laser_plugin_class;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...