drupalAan de slag met drupal


Opmerkingen

Drupal is een open-source content management systeem gebouwd in PHP. Drupal is ontworpen om flexibel en krachtig te zijn, waardoor ontwikkelaars een grote verscheidenheid aan sites kunnen bouwen, van blogs en sites in brochurestijl tot complexe e-commerceplatforms. Door zijn community-gestuurde modulaire architectuur kan Drupal tools bieden om de kernfuncties uit te breiden om de ontwikkeling van grote en complexe projecten te versnellen.

Momenteel zijn er twee ondersteunde versies van Drupal: 7 en 8. Drupal 8 is gebouwd op componenten uit het Symfony-framework en vele andere externe bibliotheken om moderne ontwikkelingsstructuren te bieden.

Drupal Concepten

versies

Release Date
 
Versie Publicatiedatum
8.2.4 07 december 2016
7.53 07 december 2016
6.38 (niet ondersteund) 24 februari 2016
5.23 (niet ondersteund) 11 augustus 2010

Entiteitstypen

In eerdere versies van Drupal werd het veldsysteem alleen gebruikt voor inhoudstypen. Dankzij de Entity API kunnen we nu velden toevoegen aan andere dingen, zoals opmerkingen. Fieldable-entiteiten maken Drupal bij uitstek flexibel. Een entiteitstype is een nuttige abstractie om velden te groeperen. Hieronder staan de entiteitstypen in de kern van Drupal:

  • Knooppunten (inhoud)
  • Comments
  • bestanden
  • Taxonomie voorwaarden
  • Taxonomie vocabulaires
  • gebruikers

U kunt ook nieuwe soorten entiteitstypen bouwen waarbij de bovenstaande opties niet aan uw behoeften voldoen.

bundels

Bundels zijn een implementatie van een entiteitstype waaraan velden kunnen worden gekoppeld. U kunt bundels beschouwen als subtypen van een entiteitstype. Met inhoudsknooppunten (een entiteitstype) kunt u bijvoorbeeld bundels (subtypen) genereren, zoals artikelen, blogberichten of producten. Niet alle typen entiteiten hebben echter bundels. Gebruikers hebben bijvoorbeeld geen afzonderlijke bundels (subtypen). Voor de entiteitstypen die bundels toestaan, kunt u zoveel bundels (subtypen) maken als u wilt. Vervolgens kunt u met het veldsysteem verschillende velden aan elke bundel toevoegen. Voorbeelden zijn een veld voor het downloaden van bestanden op basispagina's en een veld voor ondertitels bij artikelen.

Fields

Een veld is een herbruikbaar stuk inhoud. In technische termen is elk veld een primitief gegevenstype, met aangepaste validators en widgets voor bewerking en formatteren voor weergave. U kunt verder lezen voor een ontwikkelaarsgids voor het gebruik van de Drupal 7 Fields API .

Wat belangrijk is om te weten met betrekking tot entiteiten, is dat velden aan elk van de bundels (of entiteitstypen) kunnen worden toegevoegd om hun gegevens te organiseren.

Stel dat u bijvoorbeeld een inhoudstype met een ongestructureerd tekstveld maakt en HTML gebruikt om delen ervan te structureren, zoals een samenvatting of prijzen. Dat zou het moeilijker maken om te bepalen hoe deze werden weergegeven of om verbanden te leggen tussen verschillende soorten gerelateerde inhoud.

Dit is waar het gebruik van velden essentieel is. U kunt een samenvattingsveld van het type Lange tekst en prijsvelden van het type Decimaal maken.

Entiteit

Een entiteit zou een instantie van een bepaald entiteitstype zijn, zoals een opmerking, taxonomieterm of gebruikersprofiel of van een bundel zoals een blogpost, artikel of product.

U kunt entity_load gebruiken om elke entiteit te laden. Merk echter op dat de kern geen functie voor opslaan of verwijderen biedt, maar dankzij de Entity API- module worden de ontbrekende onderdelen toegevoegd (entity_create (), entity_save (), entity_delete (), entity_view () en entity_access ()).

Dit in Object-Oriented Design / Programming-termen plaatsen ...

Als u afkomstig bent van een OOD / P-achtergrond en probeert te begrijpen wat deze sleutelconcepten zijn, kunnen de volgende voorgestelde kaarten helpen (zij het niet strikt waar vanuit het perspectief van een purist): -

  • Een entiteitstype is een basisklasse
  • Een bundel is een uitgebreide klasse
  • Een veld is een klasse-lid , eigenschap , variabele of veldinstantie (afhankelijk van uw naamvoorkeur)
  • Een entiteit is een object of instantie van een basis- of uitgebreide klasse

Al deze vier OOD / P-concepten zijn speciaal omdat ze serialiseerbaar zijn (opgeslagen - bijvoorbeeld in een database of bestand). Serialisatie vindt plaats via de Entity API.

Installatie van Drupal 8 met Drupal Console

Drupal Console

De nieuwe CLI voor Drupal. Een hulpmiddel om boilerplate-code te genereren, Drupal te gebruiken en te debuggen.

Eerst moeten we Drupal Console installeren.

Drupal Console is niet alleen nodig voor deze tijd, maar voor toekomstige installaties.

# Run this in your terminal to get the latest project version:
curl https://drupalconsole.com/installer -L -o drupal.phar

# Or if you don't have curl:
php -r "readfile('https://drupalconsole.com/installer');" > drupal.phar

# Accessing from anywhere on your system:
mv drupal.phar /usr/local/bin/drupal

# Apply executable permissions on the downloaded file:
chmod +x /usr/local/bin/drupal

# Copy configuration files to user home directory:
drupal init --override

# Check and validate system requirements
drupal check
 

U kunt drupal list oproepen om alle beschikbare opdrachten te bekijken.

Bij de volgende stap zullen we de Drupal-broncode downloaden

drupal site:new
 

Console zal u vragen om een map te kiezen om Drupal te downloaden. En bij de volgende stap wordt u gevraagd om de versie van Drupal te kiezen om te downloaden. Ik raad aan om de laatste te selecteren.

Dus wanneer Drupal wordt gedownload, moet u het installeren.

drupal site:install
 

Na enkele eenvoudige stappen is uw Drupal-site klaar.

Met deze methodiek kost een nieuwe Drupal-installatie ons tussen de 5 en 7 minuten vanaf de opdrachtregel.

Drupal installeren met Drush

drush dl drupal --drupal-project-rename=example
cd example
drush site-install standard --db-url='mysql://[db_user]:[db_pass]@localhost/[db_name]' --site-name=Example