27
Podstawy programowania w Drupalu Drupal idzie na studia II 19 marca 2013 Jaroslaw Sobiecki, Senior software developer

Podstawy programowania w Drupalu - Drupal idzie na studia - Jarosław Sobiecki

Embed Size (px)

DESCRIPTION

Podstawy programowania w Drupalu - Drupal idzie na studia - Jarosław Sobiecki www.drupalidzienastudia.pl

Citation preview

Page 1: Podstawy programowania w Drupalu - Drupal idzie na studia - Jarosław Sobiecki

Podstawy programowania w DrupaluDrupal idzie na studia II

19 marca 2013

Jarosław Sobiecki,Senior software developer

Page 2: Podstawy programowania w Drupalu - Drupal idzie na studia - Jarosław Sobiecki

Agenda

WprowadzeniePlan zajęćProjekt

Niezbędne narzędziaEdytor tekstu / IDEKlient bazy danychModuł Devel

ArchitekturaOgólne spojrzenieHooks

DokumentacjaAPIMateriały wideoKsiążki

Page 3: Podstawy programowania w Drupalu - Drupal idzie na studia - Jarosław Sobiecki

Wprowadzenie

WprowadzeniePlan zajęćProjekt

Niezbędne narzędziaEdytor tekstu / IDEKlient bazy danychModuł Devel

ArchitekturaOgólne spojrzenieHooks

DokumentacjaAPIMateriały wideoKsiążki

Page 4: Podstawy programowania w Drupalu - Drupal idzie na studia - Jarosław Sobiecki

Plan zajęć

Na tych zajęciach nauczyć się mamy:I Tworzenia modułów w Drupalu 7I Pracy z najważniejszymi podsystemami DrupalaI Interakcji z bazą danychI Tworzenia interfejsu użytkownikaI Korzystanie z technologi AJAXI Rozszerzania funkcjonalności innych modułów (np. Rules).

Page 5: Podstawy programowania w Drupalu - Drupal idzie na studia - Jarosław Sobiecki

Mikro projekt

Poznając kolejne funkcje Drupala 7, będziemy powoli dążyć do implementacjiprostej aplikacji webowej - prosty czat, oparty na technologi AJAX. Mikrospecyfikacja:I Czat wyświetla wiadomości dodawane przez użytkownikówI Użytkownicy mogą dodawać swoje wiadomości do czatuI Czat wykrywać będzie słowa obraźliwe, i wysyłać informację do administratoraI Czat będzie zawierał prosty panel administracyjny, pozwalający na usuwanie

wiadomości

Page 6: Podstawy programowania w Drupalu - Drupal idzie na studia - Jarosław Sobiecki

Niezbędne narzędzia

WprowadzeniePlan zajęćProjekt

Niezbędne narzędziaEdytor tekstu / IDEKlient bazy danychModuł Devel

ArchitekturaOgólne spojrzenieHooks

DokumentacjaAPIMateriały wideoKsiążki

Page 7: Podstawy programowania w Drupalu - Drupal idzie na studia - Jarosław Sobiecki

Edytor tekstu / IDE

Drupal opiera się na technologiach PHP oraz JavaScript. Potrzebujemynarzędzia do edycji kodu:I Eclipse z wtyczką PDT. Integracja z Drupalem tutaj.I NETBeans. Integracja z Drupalem tutaj.I Wasz ulubiony edytor tekstu (VIM, Emacs, Sublime, etc. . . )

Page 8: Podstawy programowania w Drupalu - Drupal idzie na studia - Jarosław Sobiecki

Klient bazy danych

Do pracy z bazą danych, będziemy potrzebowali jednego z dostępnych klientówmysql:I Stary dobry PHPMyAdminI MySQL workbenchI Heidi SQLI Klient tekstowyI Wasz ulubiony.

Page 9: Podstawy programowania w Drupalu - Drupal idzie na studia - Jarosław Sobiecki

Moduł devel

Moduł devel to podstawowe narzędzie deweloperskie po stronie drupala, którepozwala z jednej strony dostać się do dodatkowych informacji po stronieinterfejsu, jak i rozszerza API programisty o kilka użytecznych funkcjidebugujących.

Page 10: Podstawy programowania w Drupalu - Drupal idzie na studia - Jarosław Sobiecki

Ćwiczenie 1I Pobierz ze strony http://drupal.org/project/devel moduł devel.I Zainstaluj go.I Na podstronie admin/structure/block włącz bloki Development,ExecutePHP,Switch user.

Page 11: Podstawy programowania w Drupalu - Drupal idzie na studia - Jarosław Sobiecki

Ćwiczenie 2I W boksie Execute PHP Code, uruchom następujący

kod: global $user; dsm($user);I Wypróbuj: global $user; kpr($user);I Wypróbuj: global $user; debug($user);I W ustawieniach devel/settings włącz opcję Display query log. Sprawdź

wyniki.

Page 12: Podstawy programowania w Drupalu - Drupal idzie na studia - Jarosław Sobiecki

Architektura

WprowadzeniePlan zajęćProjekt

Niezbędne narzędziaEdytor tekstu / IDEKlient bazy danychModuł Devel

ArchitekturaOgólne spojrzenieHooks

DokumentacjaAPIMateriały wideoKsiążki

Page 13: Podstawy programowania w Drupalu - Drupal idzie na studia - Jarosław Sobiecki

Komponenty cz. 1Można o Drupalu myśleć tak. . .

Rysunek: http://www.ent.iastate.edu/it/Intro to Drupal 7 Architecture.pdf

Page 14: Podstawy programowania w Drupalu - Drupal idzie na studia - Jarosław Sobiecki

Komponenty cz. 2

. . . Lub tak

Rysunek: http://www.ent.iastate.edu/it/Intro to Drupal 7 Architecture.pdf

Page 15: Podstawy programowania w Drupalu - Drupal idzie na studia - Jarosław Sobiecki

Obsługa requestów w Drupalu

1. Zimny start Drupala (dostęp do sesji, bazy danych, konfiguracji)2. Zapytanie, obsługuje dalej podsytem menu3. URL, mapowany jest do konkretnej funkcji (page callback)4. Weryfikowany jest dostęp (access callback)5. W razie potrzeby, ładowane są dodatkowe pliki, z definicjami funkcji6. Argumenty z URL, zamieniane są na struktury danych7. Wykonywany jest page callback.8. Generowany jest komplet informacji potrzebnych do wygenerowania strony9. Taka struktura, trafia do szablonu strony (odpowiedzialnego za wygląd)

10. Wyrenderowana strona wraca do użytkownika.

Page 16: Podstawy programowania w Drupalu - Drupal idzie na studia - Jarosław Sobiecki

Hooks cz. 1

Podstawową ideą architektury Drupala są hooki. Można o nich myśleć jakoo mechanizmie obsługi wewnętrznych zdarzeń w Drupalu. Takim zdarzeniemmoże być ładowanie treści, operacje na użytkowniku, generowanie strony, dostępdo bazy danych. Ograniczone to jest tylko przez fantazję autorów modułów.Techniczne, hooki to funkcje, których nazwy spełniają określony wzorzec.Załużmy że gdzieś w kodzie, odwołujemy się do hooka nasz_hook:... // Bardzo wazna logika biznesowamodule_invoke_all(’nasz_hook’, $dane);...

Przykładowa implementacja takiego hooka:/*** Implementacja hook_nasz_hook()*/function modul_nasz_hook($dane) {dsm(’Yahoo!!!’);}

Page 17: Podstawy programowania w Drupalu - Drupal idzie na studia - Jarosław Sobiecki

Hooks cz. 2

I Hooki to potężne narzędzie, ale też nieumiejętnie używane, może byćniebezpieczne.

I Nadużywanie mechanizmu, kończy się spaghetii code.I Inny przykład użycia: obsługa zdarzeń (np. zapisywanie treści). Implementacja

wzorca Observer.I Modyfikacja obiektów przed przetworzeniem (wzorzec Decorator).

Page 18: Podstawy programowania w Drupalu - Drupal idzie na studia - Jarosław Sobiecki

Hooks cz. 3

I Za pomocą hooków, można zmieniać zachowanie innych modułów, bezmodyfikacji ich kodu.

I Hooki, umożliwiają również zmianę zachowania samego Drupala (core).I Często mówi się, że w Drupalu nie tworzy się aplikacji. Drupala kształtuje się,

tak by odpowiadał naszym zastosowaniom

Page 19: Podstawy programowania w Drupalu - Drupal idzie na studia - Jarosław Sobiecki

Cokolwiek by się nie działo. . .

. . . pamiętajcie o kociakach.

Page 20: Podstawy programowania w Drupalu - Drupal idzie na studia - Jarosław Sobiecki

Dokumentacja

WprowadzeniePlan zajęćProjekt

Niezbędne narzędziaEdytor tekstu / IDEKlient bazy danychModuł Devel

ArchitekturaOgólne spojrzenieHooks

DokumentacjaAPIMateriały wideoKsiążki

Page 21: Podstawy programowania w Drupalu - Drupal idzie na studia - Jarosław Sobiecki

Dokumentacja API - część 1

Jedną z zalet Drupala, to bardzo dobra dokumentacja.http://api.drupal.org to absolutnie podstawowe i niezbędne źródłowiedzy każdego programisty DrupalaI Dokumentacja architektury i podsystemów DrupalaI Dokumentacja APII Opis hook-ówI Przykłady

Page 22: Podstawy programowania w Drupalu - Drupal idzie na studia - Jarosław Sobiecki

Ćwiczenie 3I Korzystając z wyszukiarki, znajdź dokumentację funkcji format_dateI Korzystając z wyszukiwarki, znajdź dokumentację hook_formI Korzystając z wyszukiwarki, znajdź przykład użycia hook_form

Page 23: Podstawy programowania w Drupalu - Drupal idzie na studia - Jarosław Sobiecki

Dokumentacja API - część 2

Dodatkowym źrodłem danych jest http://drupalcontrib.orgI Dokumentacja wygenerowana na podstawie kodów najpopularniejszych

modułów contribowychI Gorsza jakość, niż api.drupal.org, ale dalej użyteczne

Page 24: Podstawy programowania w Drupalu - Drupal idzie na studia - Jarosław Sobiecki

Materiały wideo

I Drupalize me (płatne, ale wysokiej jakości)I tutr.tv (bezpłatne)

Page 26: Podstawy programowania w Drupalu - Drupal idzie na studia - Jarosław Sobiecki

Inne

I Drupal answers (Bardzo aktywne, polecam).I Stack overflow (Czasami tutaj też się zdarzy się znaleźć odpowiedź)I DokumentacjaI IRC: #drupal, #drupal-support

Page 27: Podstawy programowania w Drupalu - Drupal idzie na studia - Jarosław Sobiecki

Pytania?jaroslaw[kropka]sobiecki[na]mediaregionalne[kropka]pl