Как я могу добавить некоторые функции, написанные на Ruby, на сайт WordPress?

#php #ruby #wordpress #interop

#php #ruby #wordpress #взаимодействие

Вопрос:

Вот в чем дело. Я люблю Ruby и использую его последние пару лет. Мне нравится все, что касается языка и сообщества.

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

Примеры того, что мне нужно сделать:

  • добавьте некоторую дополнительную информацию в профили, например, систему кармы / очков / репутации
  • предложите пользователям создать свою собственную страницу после того, как им разрешат это сделать
  • извлечение данных из какого-либо внешнего API и отображение их в профиле пользователя

Я действительно привык ко всему гибкому рабочему процессу BDD, где я перехожу от функций Cucumber к RSpec для реализации материала, и вся архитектура WordPress выглядит для меня как хорошо, я просто должен молиться, чтобы это сработало.

Я не уверен, разумно ли вообще пытаться написать какую-то часть приложения на Ruby и попытаться заставить его работать вместе с WordPress, или мне следует просто использовать WordPress как единственное, что у меня есть, и максимально использовать его сильные и слабые стороны.

Основная проблема для меня заключается в том, что все, что я собираюсь написать на PHP, займет примерно в 5 раз больше времени, чем если бы я делал это на Ruby, и это, вероятно, также будет более безопасным и надежным, поскольку у меня не так много опыта работы со сложными PHP-материалами. Я имею в виду, что в прошлом я много работал с PHP, но мне всегда казалось, что все это развалится в один момент.

Я знаю, что, вероятно, нет определенного ответа о том, как подойти к этому, но любые предложения приветствуются.

Ответ №1:

Мы интегрировали приложение Rails в установку TYPO3. Это сработало довольно хорошо. Ключевым моментом является использование поддержки Rails для адаптации моделей к таблицам устаревшего приложения. Важным моментом является обработка аутентификации, которую мы обрабатываем, передавая ключ сеанса TYPO3 в приложение Rails скрытым способом (используя PHP в качестве веб-клиента и передавая соответствующие заголовки) и просматривая его в таблице сеансов (с учетом таймаутов сеанса).). Само приложение Rails отображается в подкаталог с помощью passenger. Производительность очень хорошая, она даже удивительна по сравнению с нашей предыдущей реализацией, пытающейся использовать Extbase.

Итак, в заключение: если вы все сделаете правильно, и интерфейсы между двумя приложениями хорошо спланированы, такой подход может предложить большие преимущества и лучшее из двух миров. Если все сделано неправильно или вы не понимаете некоторых последствий WordPress (например, безопасности), вы создадите большой беспорядок, подверженный нарушениям безопасности.

Кстати: мы достигли равенства функций с решением Extbase (MVC framework в TYPO3) после 4 дней использования Rails. Решение Extbase заняло 6 недель и вызвало много головной боли и проблем. Таким образом, ваш временной коэффициент может быть даже лучше, чем 5: 1.

Ответ №2:

Почему бы не научиться разработке на основе поведения на PHP для WordPress? На самом деле, это одна из замечательных возможностей для разработчиков в 2017 году. Теперь мы используем полномасштабные фреймворки BDD в WP-Codeception, так что вы можете даже автоматизировать файлы функций Gherkin, как в Cucumber. Проверьте WordPress-BDD.com для получения некоторой полезной информации.