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

Pravljenje objekta konekcije sa bazom podataka

19/06/2025, by Ivan

Interakcija sa bazom podataka treba da se obavlja preko objekta konekcije sa bazom podataka. Postoji nekoliko scenarija koji zahtevaju posebnu pažnju:

1. U proceduralnom kodu, tj. *.module, *.inc ili skript fajlovima:
Najbolji način za kreiranje instance objekta konekcije sa bazom podataka je putem Service Container-a.

Primer:

$database = \Drupal::database();
// Ili
$database = \Drupal::service('database');

Ovo će vratiti objekat konekcije sa bazom podataka, koji je podešen za konekciju na podrazumevanu glavnu bazu podataka, kako je definisano u konfiguraciji baze podataka u fajlu settings.php.

2. Iz istorijskih i tehničkih razloga, tip koji vraća \Drupal::database() je \Drupal\Core\Database\Connection, i zato se ponekad naziva $connection.
 
3. U OOP kodu:

  • U nekim slučajevima, objekat konekcije sa bazom podataka može već biti dostupan kao član trenutne klase; na primer, mnogi plugini i servisi imaju $this->database (ili $this->connection) - objekat konekcije sa bazom podataka kao član.
  • Ako je moguće, koristite DI (Dependency Injection) za korišćenje servisa @database ili $container->get('database'); za unošenje konekcije sa bazom podataka.
  • Ako to nije moguće (kao u statičkoj metodi klase), koristite \Drupal::database().
  • Ako servisi još nisu dostupni, \Drupal\Core\Database\Database::getConnection() može da vrati konekciju sa bazom podataka.
  • U modulskim testovima nemamo učitano jezgro niti ugrađeni kontejner. Modularni testovi obično ne bi trebalo da pristupaju bazi podataka. Modularni test koji zahteva servis baze podataka treba da se konvertuje u kernel test.
  • U klasama jezgra i funkcionalnim testovima imamo $this->container->get('database'). Neki autori testova mogu primetiti da kontejner na koji referencira klasa testa nije sinhronizovan sa trenutnim kontejnerom tokom zahteva u funkcionalnom testu. U tom slučaju autor testa može pozvati $this->rebuildContainer() i ponovo pristupiti $this->container->get('database').

Korišćenje druge konekcije sa bazom podataka

Ako vaš sajt koristi više baza podataka, za izvršavanje upita ka bazi koja nije podrazumevana koristite Database::getConnection(). Na primer:

$connection = \Drupal\Core\Database\Database::getConnection('default', 'other_database');

Ovo će obezbediti konekciju sa bazom podataka definisanom u settings.php kao:

$databases['other_database']['default']

 

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.