Plan przejścia na obrzydliwość PHP5 do Drupala

8

tło

Za rok moi klienci zamierzają przenieść do Drupal stosunkowo złożoną usługę portalu intranetowego (planowanie, faktyczne śledzenie i raportowanie itp.), Ponieważ centrala tak mówi. Poczyniono bardzo niewiele wysiłku, aby ustalić, czy jest to właściwy wybór techniczny i jest poza kontrolą moich klientów, a nawet ich szefów.

Obecny portal jest obrzydliwością, która jest na bieżąco przekształcana i uważam, że najbardziej opłacalnym planem będzie wprowadzenie warstwy modelu domeny za pośrednictwem Doctrine 2 i wprowadzenie do modeli 99,9% całej logiki walidacji biznesowej i wejściowej , wypatrywanie obrzydliwości, aż stanie się szkieletową warstwą logiczną widoku i uwierzytelniania.

Pytanie

Czy dla każdego specjalisty Drupal jest to realne podejście? Czy Doctrine2 może ładnie grać z Drupalem, czy też logika wyższego poziomu Drupala potrzebuje znacznie ściślejszej integracji z danymi?

David
źródło

Odpowiedzi:

9

Zrobiliśmy kilka witryn, w których podłączyliśmy zewnętrzne systemy do Drupala, w których dane musiały być przechowywane w systemie zewnętrznym. Z tym spędzam większość czasu pracując.

Kiedy to robimy, zwykle tworzymy typ zawartości, aby „usunąć” zawartość w innym systemie. Typ zawartości zawiera tylko tytuł węzła i pole CCK dla unikalnego identyfikatora w innym systemie. Wraz z tym jest wiele funkcji hook_nodeapi . Na przykład loadhak wywoła zdalny system i doda dane do węzła. Musisz także opracować metodę wprowadzania zewnętrznych danych do wyników wyszukiwania. Jest na to kilka metod, ale są one zbyt długie, aby się tutaj dostać.

Chociaż istnieją pewne wady, uważamy, że działa to dobrze i pozwala na normalne rzeczy Drupala, takie jak komentarze, tagi itp

mpdonadio
źródło
Jeśli ma być zewnętrzne, jest to dobre podejście.
Jeremy French
4

Jedyną sensowną rzeczą do zrobienia, biorąc pod uwagę linię czasu, jest zbudowanie tego w Drupal 7. Jedną z najważniejszych cech Drupala 7 są byty, DBNTG i pola.

Szybki przegląd

  • Encje to sposób definiowania struktury danych. Przykładami jednostek wbudowanych w Drupal są: węzły (główna zawartość), użytkownicy, warunki taksonomiczne.
  • Pola to coś, co można dołączyć do encji, która również przechowuje dane. Korzystanie z pól ma tę zaletę, że ma tylko jedno miejsce do obsługi danych i mogą być rozszerzane na różne sposoby. Przykładem pola może być załącznik pliku lub odniesienie do innej jednostki.
  • DBTNG (baza danych następnej generacji) jest tym, co społeczność Drupal nazwała nową warstwą abstrakcji bazy danych. Wcześniej robiliśmy zapytania z symbolami zastępczymi (które są nadal obsługiwane), ale teraz większość zapytań jest budowana z wykorzystaniem klasy. Powodem tego jest również to, że pola tworzą tabele bazy danych na podstawie ustawień. Pomaga to w tworzeniu kodu, który będzie działał, nawet jeśli pola są tworzone z różnymi ustawieniami.

To tylko niektóre funkcje, ale oznacza to, że jeśli nie chcesz stworzyć obrzydliwości Drupala, powinieneś zacząć myśleć o tym, jak działa Drupal i używać go zamiast próbować sprawić, aby Drupal działał w sposób, do którego nie został zaprojektowany.

Ponieważ Drupal jest PHP, możesz tworzyć niestandardowe moduły i używać Doctrine2 do robienia tego, co chcesz. Ale zgaduję, że skończysz na stronie, która ma niewiele wspólnego z większością witryn Drupal.

googletorp
źródło
Niestety, zostawiam mojego klienta za około miesiąc, więc potem są sami. Obrzydliwość jest dość obciążona / użytkowana, a nowe „Funkcje” są dodawane w miarę mówienia. Cała sytuacja to bałagan, którego częściowo nie udało mi się obrać w lepszym kierunku. W mojej własnej obronie zadziałało na tydzień przed tym, jak zostałem zatrudniony, aby pomóc za kaucją.
David
4

To dość szerokie pytanie, więc udzielę odpowiedzi na wysokim poziomie, jeśli masz bardziej szczegółowe pytania, zadaj je jako osobne pytania.

Sugerowałbym, abyś w jak największym stopniu odwzorował strukturę bieżącej witryny. Jakie rodzaje rzeczy to robi, jakie są przepływy pracy. Jaką treść mają użytkownicy?

Typy zawartości są wygodnym sposobem podziału treści. Nawet obrzydliwość miałaby typy, które według mnie (miałbym nadzieję), które odwzorowują na adresy URL.

Po określeniu typów zawartości możesz przejść do migracji zawartości do nowej witryny. Następnie możesz spojrzeć na takie rzeczy jak przepływy pracy, harmonogramy, użytkownicy itp.

Wolałbym przeprowadzkę hurtową. Zarządzanie treściami przez więcej niż jeden system to ogromny problem techniczny. I podwaja wysiłek konserwacyjny.

Powiedziałbym, że warto zatrudnić kogoś, kto to zrobi. Nastąpiły bardzo udane migracje Drupala z dużymi zestawami danych. Ale jeśli nie masz doświadczenia w Drupal, możesz zrobić kilka błędnych kroków i kosztować siebie dużo czasu. (Mogę osobiście polecić cyrve , nie mam z nimi obecnie żadnego związku)

Jeremy French
źródło
Przekażę Cyrve mojemu klientowi; ponieważ nikt nie stoi w dziale mojego klienta ani w sąsiednim dziale, który popycha Drupala, nie ma żadnej wiedzy specjalistycznej w zakresie rozwoju w Drupal, więc powinno być zabawne, aby zobaczyć, jak to się potoczy za rok.
David