План переходу для гидоти PHP5 на Drupal


8

Фон

Через рік мої клієнти збираються перенести порівняно складний портал внутрішньомережевого порталу (планування, фактичне відстеження та звітування та інше) до Drupal, оскільки головний офіс так говорить. Дуже мало зусиль докладено, щоб визначити, чи це правильний технічний вибір, і це поза контролем мого клієнта чи навіть їх начальства.

Нинішній портал - це гидота, яка переробляється наново, і я вважаю, що найефективнішим планом буде залучення доменного шару моделі через Doctrine 2 та включення 99,9% всієї логіки перевірки бізнесу та вводу в моделі. , витягуючи гидоту, поки вона не стане скелетним видом і логічним шаром аутентифікації.

Питання

Для будь-якого спеціаліста з Drupal, чи здається, це є життєздатним підходом? Чи може Doctrine2 грати добре з Drupal або ж логіка вищого рівня Drupal потребує значно більш жорсткої інтеграції до даних?

Відповіді:


9

Ми зробили кілька сайтів, де ми підключили зовнішні системи до Drupal, де дані повинні були зберігатися у зовнішній системі. Це те, з чим я проводжу більшу частину свого часу.

Коли ми це робимо, ми зазвичай створюємо тип контенту, щоб "заглушити" вміст в іншій системі. Тип вмісту містить лише назву вузла та поле CCK для унікального ідентифікатора в іншій системі. Поряд з цим є безліч функцій kuke_nodeapi . Наприклад, loadгачок викличе віддалену систему і додасть дані у вузол. Вам також потрібно розробити метод для отримання зовнішніх даних в результати пошуку. Для цього є кілька методів, але вони занадто тривалі, щоб потрапити сюди.

Незважаючи на деякі недоліки, ми вважаємо, що це працює добре і дозволяє нормально використовувати Drupal речі, такі як коментарі, теги тощо.


Якщо він повинен бути зовнішнім, це хороший підхід.
Джеремі Френч

4

Єдине розумне, що потрібно зробити, враховуючи часовий рядок, - це створити це в Drupal 7. Однією з найвідоміших особливостей Drupal 7 є сутності, DBNTG та поля.

Швидкий огляд

  • Суб'єкти - це спосіб визначення структури даних. Прикладами сутностей, які вбудовані в Drupal, є, вузли (основний вміст), користувачі, терміни таксономії.
  • Поля - це те, що можна приєднати до сутності, яка також зберігає дані. Використання полів має перевагу лише в одному місці для обробки даних, і вони можуть бути розширені різними способами. Прикладом поля може бути вкладення до файлу або посилання на іншу сутність.
  • DBTNG (База даних нового покоління) - це те, що спільнота Drupal кодовала новий рівень абстракції бази даних. До цього ми раніше робили запити із заповнювачами (що все ще підтримується), але зараз більшість запитів будуються з класом. Причиною цього є також те, що поля отримують свої таблиці (бази) бази даних, створені на основі налаштувань. Це допомагає створити код, який буде працювати, навіть якщо поля (поля) створені з різними налаштуваннями.

Це лише деякі особливості, але це означає, що, якщо ви не хочете створити Друпальську гидоту, вам слід почати думати про те, як Drupal працює, і використовувати це, а не намагатися змусити Drupal працювати так, як не було призначено.

Оскільки Drupal є PHP, ви можете створювати власні модулі та використовувати Doctrine2, щоб робити те, що ви хочете. Але я здогадуюсь, що ви отримаєте веб-сайт, який має дуже мало спільного з більшості Drupal-сайтів.


На жаль, я залишаю свого клієнта приблизно через місяць, тож вони після цього залишаються самостійно. Огида перебуває під значним навантаженням / використанням, коли ми говоримо про нові "функції". Вся ситуація - це безлад, який я частково не зміг направити в кращий бік. На мою власну оборону він жив за тиждень до того, як мене найняли допомагати забирати воду.
Девід

4

Це досить широке запитання, тому я дам відповідь високого рівня, якщо у вас є більш конкретні запитання, будь ласка, задайте їх як окремі запитання.

Я б запропонував вам якомога більше намалювати структуру поточного сайту. Які типи речей це робить, які робочі процеси існують. Який вміст, які користувачі.

Типи вмісту - це зручний спосіб поділу вмісту. Навіть мерзота мала б типи I речі (я б сподівався), які відображають URL-адреси.

Визначивши типи вмісту, ви зможете переглянути міграцію вмісту на ваш новий сайт. Потім ви можете переглянути такі речі, як робочі процеси, графіки роботи, користувачі тощо.

Я б віддав перевагу переміщенню оптом. Те, що вміст управляється більш ніж однією системою, - це величезний технічний біль. І подвоює ваші зусилля з обслуговування.

Я б сказала одне, що, можливо, варто когось найняти для цього. Були дуже успішні міграції Друпалу з величезними наборами даних. Але якщо ви не досвідчені в Drupal, ви можете зробити кілька помилкових кроків і коштувати собі багато часу. (Я особисто можу порекомендувати cyrve , я не маю поточної приналежності до них)


Я передам Cyrve своєму клієнту; Оскільки у відділі мого клієнта чи в сусідньому відділенні, що підштовхує Drupal, ніхто не має досвіду в розробці в Drupal, тож слід цікаво подивитися, як це відбувається за рік.
Девід
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.