logo

Dodatni tipovi blokova (EBT) - Novo iskustvo rada sa Layout Builder-om❗

Dodatni tipovi blokova (EBT) – stilizovani, prilagodljivi tipovi blokova: slajdšouvi, kartice sa tabovima, kartice, akordeoni i mnogi drugi. Ugrađena podešavanja za pozadinu, DOM Box, javascript dodatke. Iskusite budućnost kreiranja rasporeda već danas.

Demo EBT moduli Preuzmite EBT module

❗Dodatni tipovi pasusa (EPT) – Novo iskustvo rada sa pasusima

Dodatni tipovi pasusa (EPT) – analogni skup modula zasnovan na pasusima.

Demo EPT moduli Preuzmite EPT module

Scroll

Početak rada – referentne informacije (Drupal 8)

20/06/2025, by Ivan

Drupal 8 koristi niz naprednih PHP funkcija i složenih third-party biblioteka kako bi pružio eksternim programerima najsavremeniji API od svih dostupnih CMS-ova. Iako iskusni Drupal 7 programeri mogu primetiti značajne promene, većina osnovne strukture će im biti poznata.

Ako vam je neki od materijala predstavljenih u korak-po-korak vodiču za razvoj Drupal 8 modula nov, sledeći materijal može pomoći. Međutim, za prelazak na opis Drupal 8 modula nije potrebno imati duboko znanje.

Objektno-orijentisano programiranje (OOP)

OOP, iako u početku zastrašujuće, sada je prihvaćen kao najbolji pristup.
Za opšti pregled najboljih PHP praksi, pročitajte phptherightway.com. Drupal ne koristi sve tehnike dokumentovane tamo, ali je odličan uvod u PHP i mnoge funkcije jezika.

Osvežite znanje o OOP čitajući zvaničnu PHP dokumentaciju o klasama i objektima, kao i neke od sledećih kvalitetnih tutorijala:

Drupal 8 takođe koristi neke uobičajene dizajn paterne, pa je dobro da ih barem okvirno poznajete:

Factory pattern i late static bindings
Dizajn paterni softverskog inženjeringa (na Vikipediji)
Osnove programiranja: dizajn paterni (na lynda.com)
@todo: dodati dodatne linkove na dokumentaciju o paternu koje koristimo ...

PHP namespaces

Ako niste upoznati sa konceptom prostora imena u PHP-u, pogledajte neke od ovih članaka:

U većini slučajeva, Drupal kod koristi namespace baziran na modulu kojem kod pripada.

Primer: namespace za block.module

namespace Drupal\block;

@todo: objasniti zašto je ponekad Drupal\, a ponekad Drupal\\[Controller|Form|Plugin| itd.] i kako da znam koji koristiti...

Saznajte više o Drupal standardima za namespaces. Više o korišćenju PSR-4 u Drupalu. Ispravno podešen softver za kodiranje treba da prepoznaje PHP namespaces i da pruža pomoć i automatsko dopunjavanje.

Dependency Injection (DI)

Iako je Dependency Injection ustvari još jedan OOP dizajn pattern, ovde ga posebno ističemo jer Drupal 8 intenzivno koristi ovu koncepciju i važno je imati osnovno razumevanje da biste pristupili i koristili mnoge osnovne API-je.

Pročitajte o Dependency Injection u PHP-u i drugim povezanim člancima na toj stranici. Posebno ovaj članak, jer Drupal intenzivno koristi Symfony servisni kontejner, na koji se poziva.

Pogledajte i:

 

Symfony

Symfony je PHP framework koji je Drupal pozajmio da bi smanjio dupliranje koda u različitim PHP projektima. Veći deo koda koji Drupal 8 koristi za upravljanje rutiranjem, sesijama i servisnim kontejnerom, između ostalog, pozajmljen je iz Symfony 2 (a tokom razvoja Drupal 8 prebačen u Symfony 3). Ako želite da saznate više o razlogu ove odluke, pogledajte ovu prezentaciju glavnog commiter-a alexpott.

Pregledajte Symfony 2 dokumentaciju i osvežite svoje znanje o Symfony-ju. Iako nije sve potrebno za razumevanje Drupala, poznavanje Symfony-ja učiniće vas boljim Drupal i PHP programerom. Možda vas zanima i Symfony rečnik.

Pogledajte core/composer.lock da vidite Symfony biblioteke. Od Drupala 8.6.15 to su Symfony PHP i povezane biblioteke:

...
"symfony/class-loader": "~3.4.0",
"symfony/console": "~3.4.0",
"symfony/dependency-injection": "~3.4.26",
"symfony/event-dispatcher": "~3.4.0",
"symfony/http-foundation": "~3.4.26",
"symfony/http-kernel": "~3.4.14",
"symfony/routing": "~3.4.0",
"symfony/serializer": "~3.4.0",
"symfony/translation": "~3.4.0",
"symfony/validator": "~3.4.0",
"symfony/process": "~3.4.0",
"symfony/polyfill-iconv": "^1.0",
"symfony/yaml": "~3.4.5",
"twig/twig": "^1.38.2",
"doctrine/common": "^2.5",
"doctrine/annotations": "^1.2",
...

Annotacije

Drupal 8 koristi PHP annotacije — @docblock komentare dodate u vaš kod pomoću posebnog sintaksisa — za otkrivanje plugina i pružanje dodatnog konteksta/metapodataka za izvršni kod. Annotacije se čitaju korišćenjem Doctrine Annotation Parser-a (v.1.6.), a zatim se prevode u informacije koje Drupal koristi da bi bolje razumeo šta vaš kod radi.

Saznajte više o korišćenju annotacija za otkrivanje plugina.

Pogledajte listu svih različitih tipova annotacija u Drupalu 8.

Pogledajte i: PHPDoc (na Vikipediji)

Pluginovi

Pluginovi obezbeđuju male funkcionalnosti koje se lako mogu zameniti drugim pluginom. Pluginovi koji imaju sličnu funkcionalnost spadaju u isti tip. Na primer, „Field Widget“ je tip plugina, i svaki pojedinačni widget polja (kao što su tekst polje, broj, datum itd.) implementiran je kao plugin.

Saznajte više o Drupal 8 Plugin API-ju.

Servisi

U Drupalu 8, servis je bilo koji objekat koji upravlja servisni kontejner. Koncept servisa uveden je da bi se razdvojile višekratno korišćene funkcije i učinilo ih povezivim i zamenjivim, registrujući ih u servisnom kontejneru za Dependency Injection, sa kojim su usko povezani.

Pogledajte i: Servisni kontejner za Drupal programere

Ostali izvori

Donji spisak sadrži dodatne resurse koji vam mogu pomoći da se bolje upoznate sa Drupal 8.

Drupal’s online documentation is © 2000-2020 by the individual contributors and can be used in accordance with the Creative Commons License, Attribution-ShareAlike 2.0. PHP code is distributed under the GNU General Public License.