Timeline

Do wypuszczenia stabilnej wersji Drupala 8 zostało jeszcze „trochę” czasu (patrz obrazek poniżej), jednakże już rodzi w środowisku wiele emocji dzięki zmianie podejścia w kilku kluczowych elementach. Inicjatywa przepisania tego systemu zarządzania treścią ma swoje ogromne plusy, nie obyło się jednakże bez kilku minusów.

Aktualnie projekt znajduje się w fazie wybierania funkcjonalności, która potrwa do grudnia 2012 roku, czyli na dzień dodawania wpisu około 50 dni. Po tej fazie nastąpi jedynie implementacja wybranych wcześniej rozwiązań (co tak naprawdę trwa i teraz). Następnie Drupal 8 wejdzie w fazę poprawek wszelkiego typu – wydajności, bezpieczeństwa i tzw. błędów krytycznych.

Formalnie system nie ma prawa ruszyć, póki nie zostaną poprawione wszystkie błędy krytyczne (najróżniejszej maści), co pierwotnie planowane jest na sierpień 2013 roku. Patrząc więc optymistycznie, wszak projekty informatyczne często mają tendencję do przekraczania deadline'ów, pozostało około 11 miesięcy do premiery nowego systemu. Pomijając oczywiście kwestię braku gotowości modułów (czyli kolejny rok oczekiwania zanim narzędzie będzie się nadawało do użycia).

Inicjatywy

Zarysowując Drupal skupia się na kilku istotnych elementach, stawiając w większości na nowoczesne, choć mocno już rozpowszechnione technologie. Dostaniemy więc w pakiecie nie tylko HTML5 w domyślnych skórach, ale również tzw. Responsive Design (dostosowujący się automatycznie do rozdzielczości użytkownika – aby zobaczyć jak to wygląda wystarczy u mnie na blogu zmniejszyć okno przeglądarki) czy nowy system bloków i zarządzania szablonami.



Przedstawienie inicjatyw w corze Drupala - Configuration Management w fazie Develop; HTML 5 w fazie Develop; Layouts w fazie Discovery, Design, Develop; Mobile w fazie Design i Develop; Multilingual w fazie Develop; Views in core w fazie Develop; Web Services w fazie Develop.

Ponadto istnieją prace nad poprawą użyteczności czy intuicyjności systemu. Szczerze mówiąc w przypadku Drupala jest to niezwykle przydatne.

A co w corze?

Jak zwykle i jak w każdej wersji część popularnych modułów godnych uwagi zostanie przeniesiona do samego systemu. Niektóre z modułów natomiast zostaną wyrzucone. Drupal 8 jeden z takich modułów uczynił swoją inicjatywą, natomiast warto pamiętać, że trwają prace i nad innymi elementami contribowej braci.

Co nowego?

  • Views
  • Pathauto
  • edytor WYSIWYG
  • Breakpoints
  • Email
  • Link
  • File entity
  • Search API
  • Spark (stworzony z myślą o Drupalu 8

Propozycje usunięcia

Jednocześnie użytkownicy Drupala wyszli z propozycją usunięcia co niektórych modułów z core'a Drupala. Są to między innymi:

  • Blog
  • Profile
  • Aggregator
  • Dashboard
  • Forum
  • PHP
  • Poll
  • Statistics
  • Tracker
  • Trigger

Posiłkowałam się oceną negatywną poszczególnych osób zaangażowanych w ustalanie zawartości core'a Drupala: https://docs.google.com/spreadsheet/ccc?key=0AjtNrWLTvACJdEJicFIwVXVoT1F...

Symfony

Niewątpliwie jednak najwięcej szumu jest wśród przepisania (aktualnie przynajmniej częściowego) na framework Symfony.

Faktem jest, że Drupal był dość chaotyczny. Część kodu napisana była strukturalnie, część typowo obiektowo, co jednak bardziej było widać w modułach tworzonych przez społeczność. Teraz Drupal ma w znacznie większej mierze korzystać z błogosławieństw typowego frameworka, a dokładniej z kilku jego kluczowych elementów, takich jak m.in. HttpFoundation, Routing czy ClassLoader.

Symfony2 w świecie PHPowców jest dalece bardziej znane niż Drupal. Trudno również określić jaki wygląd przyjmie CMS pod koniec developingu, ogólnie jednak mam wrażenie, że nie uwolnimy się od pewnych specyficznych rozwiązań niebieskiej kropelki.

Co natomiast w praktyce oznacza przejście na Symfony?

Z jednej strony jest to z pewnością dużo większa unifikacja i możliwość przejmowania projektów przez osoby z mniejszą niż do tej pory znajomością Drupala (nieco z tego przerzucimy na samo Symfony).

Z drugiej jednak moim zdaniem ciężej będzie nie tylko przenosić istniejące już modułu z wersji 7.x na 8.x. W dodatku otrzymujemy framework niepodobny do tego, czym zajmowaliśmy się wcześniej (taki nieco miks), zastanawia mnie również samo przejście pomiędzy wersją 7, a 8.

Istnieje jednak wiele rozwiązań, które wykorzystują w swoim kodzie Symfony i nie narzekają. Przykładami mogą być MidgardCMS, Doctrine, PHP Unit czy phpBB. W łatwiejszy sposób mogą się one łączyć z innymi aplikacjami Symfony, co niewątpliwie również przyświecało twórcom Drupala.

A na dzień dzisiejszy...

W samym kodzie Drupala jeszcze nie za bardzo da się uświadczyć nowego frameworka – aktualnie API w przypadku nowych modułów wygląda bardzo podobnie (aby nie powiedzieć praktycznie tak samo) jak dla poprzedniej wersji systemu.

Spark, który ma wprowadzić rewolucję w edycji treści (Spark to inline-editor) na razie jej nie wprowadza (przynajmniej w swojej wersji 7.x), a jak na wersję developerską przystało zdarza się, że cały D8 sypie błędami a to przy instalacji, a to przy używaniu. Cóż, ma do tego jeszcze przez najbliższy rok prawo.

Lista chcę-to

Parę razy pewne elementy były poruszane na stronach drupal.org, natomiast z mojego punktu widzenia najbardziej brakuje mi:

  • Pół-automatycznej, bo on-demand, aktualizacji core'a Drupala; cudownie, że mogę w ten sposób zaktualizować (czy też w teorii zainstalować) moduły, chciałabym jednak w taki sam sposób móc aktualizować sam rdzeń; przy jednej jak i drugiej aktualizacji i tak muszę wykonać kopie zapasowe, ograniczyłabym sobie jednak wgrywanie nowych wersji na serwer.
  • Lepszych metod podłączenia innych źródeł danych (lub wielu różnych źródeł danych) niż MySQL; i dzisiaj w teorii jest to możliwe, praktyka natomiast pokazuje, że prościej przebić głową mur niż połączyć kilka systemów do przechowywania i przetwarzania danych i postawić na nich jednego Drupala.
  • Prostsze zarządzanie niektórymi sekcjami administracyjnymi; przykładem są bloki, które aktualnie niemalże wymagają paneli lub kontekstów do ich sensownego umieszczenia lub menu, gdzie trzeba się mocno naklikać, aby osiągnąć efekt.
  • Bardziej granularna kontrola dostępów do zawartości; bez dodatkowych modułów muszę udostępnić administrację węzłami, aby użytkownik mógł edytować na przykład opcje publikacji treści.
  • Uproszenie opcji w edycji zawartości; status opublikowania jest OK, ale z viewsami w corze i możliwością dodawania własnych pól opcje takie jak przyklejony czy promowany są moim zdaniem zupełnie zbędne.

Kiedy developować moduły?

Patrząc raz jeszcze na timeline Drupala 8 i bazując na prywatnych upodobaniach wydaje mi się, że najlepiej zabrać się za to po kroku milowym „Code Freeze”. Wtedy cały zarys oprogramowania nie powinien ulegać już zmianie i nie będziemy musieli co tydzień zmieniać modułu ze względu na zmiany w API. Na dzień dzisiejszy jest to więc 1 lutego 2013 roku.

Podsumowanie

Drupal 8 to zdecydowanie rewelacyjna inicjatywa mająca dużo większe możliwości, otworzenie platformy dla nowych developerów czy kolokwialnie mówiąc uporządkowanie bebechów. Wraz ze wzrostem użyteczności i biorąc pod uwagę skok pomiędzy wersją 6 i 7 możemy się spodziewać solidnego kawału dobrej roboty.

Istnieją jednakże z mojego punktu widzenia dwie główne wady: konieczność zapoznania się z nowym API oraz mało ciekawy proces migracji z Drupala 7 na 8. Przy odpowiedniej dokumentacji, nad którą również trwają prace, procesy te mogą być znacznie uproszczone, dzięki czemu za jakiś rok, dwa lata dostaniemy nową, bardziej zoptymalizowane i użyteczne narzędzie.

Dodaj komentarz