damienroche
  • 0
Новичок

Плагин WordPress как «библиотека» из абстрактного приложения?

  • 0

Вот моя мысль, и я мог бы вырыть себе огромную яму. Вот почему я здесь 😉

Я хочу разработать сложное приложение, но я хочу, чтобы это приложение работало как в виде отдельного скрипта, так и в качестве плагина для WordPress. Позже я могу превратиться в плагин для Joomla и так далее.

Моя мысль заключается в том, что я разрабатываю абстрактный пользовательский фреймворк, а затем реализую пользовательский функционал, расширяя этот фреймворк. Имеет ли это смысл?

Итак, скажем, WP_Plugin extends My_Engine, и тогда этот класс плагина будет действовать как фабрика для управления настраиваемой функциональностью в /lib/wordpress/ каталоге WordPress.

Я действительно не хочу повторяться, и я определенно буду выпускать несколько версий приложения.

Есть предположения?

Share
  1. Я бы сделал это так: создайте отдельное приложение, но встройте в него пуленепробиваемый API, который позволит другим и вам самим использовать возможности вашего приложения.

    Как бы вы ни смотрели на это, каждый раз, когда вы посещаете другую CMS, вам придется выполнять довольно много кода, поскольку все они имеют разные способы работы с вещами. Если ваше приложение имеет хорошие элементы управления API, другие могут создавать свои собственные модули для других CMS, о существовании которых вы даже не подозревали, таким образом, не ограничивая вас такими, как WordPress и Joomla.

    • 0
  2. Расширение через подклассы возможно, но это может ограничить ваши возможности. Возможно, вы хотите разрешить стороннему разработчику расширять My_Engine как My_Super_Engine, но тогда WP_Plugin все равно будете использовать только My_Engine .

    Вместо этого вы можете make WP_Plugin содержать ссылку на конкретный My_Engine объект. Иногда это называется « has_a вместо или is_a отношения» ( WP_Plugin больше не имеет типа My_Engine, но вместо этого имеет ссылку на My_Engine ) или «внедрение зависимостей» (когда вы создаете экземпляр WP_Plugin и внедряете зависимость My_Engine вместо того, чтобы жестко кодировать ее внутри).

    Чтобы дать более подробный ответ, может быть полезно получить дополнительную информацию о том, что должно делать ваше приложение. Насколько вы можете отделить пользовательский интерфейс от логики приложения? Это, вероятно, будет самым большим препятствием для переносимости основного приложения в другие среды.

    • 0

Оставить ответ

You must login to add an answer.