Hva er Drupal?

Drupal er et populært åpen kildekode innholdshåndteringssystem skrevet i PHP. Etter å ha blitt opprettet tidlig på 2000-tallet av en belgisk student, driver den nå noen av de mest fremtredende nettstedene på nettet (WhiteHouse.gov, Weather.com, etc.). Det regnes ofte som en konkurrent av CMSer som WordPress og Joomla.

En av de viktigste komponentene i Drupal-prosjektet er dets samfunn av støttespillere (bidragsytere, utviklere, evangelister, bedriftseiere, etc.). Fremtredende innenfor dette samfunnet står Drupal Association, ansvarlig for "å fremme og støtte Drupal-programvareprosjektet, samfunnet og dets vekst".

Et stort sprang fra forgjengeren, den 8. store utgivelsen av Drupal-prosjektet, har nettopp truffet på hyllene. Det førte til en seriøs modernisering av sin kode, praksis og mentalitet. Mange betrakter dette skiftet som et reelt trekk fra det tradisjonelle begrepet CMS til mer av en Content Management Work (CMF) som gir en flott plattform for å bygge komplekse applikasjoner.

I denne artikkelen skal jeg svare på noen av de hyppigere spørsmålene folk har om Drupal når de starter for første gang eller vurderer å gjøre det:

  • Er det riktig for meg? Hvem er det rettet mot?
  • Hvordan kan den installeres, og hvor kan jeg være vert for den?
  • Hvordan kan jeg begynne å jobbe med den som utvikler?
  • Hvilke alternativer har jeg for å utvide funksjonaliteten eller styling den?

Hvem er Drupal rettet mot?

Siden starten av prosjektet har Drupal utviklet seg fra å være hovedsakelig et verktøy for å bygge mindre steder til en som nå kan drive plattformene på bedriftsnivå. Spesielt med Drupal 8, kan byggherrer og utviklere enkelt oppgradere fra små nettsteder til store plattformer med mange integrasjoner. Vedtaket av Composer lar deg for eksempel ikke bare bringe eksterne biblioteker til et Drupal-prosjekt, men også å bruke Drupal som en del av et større prosjekt av applikasjoner og biblioteker. Det er trygt å si at Drupal er fleksibel nok til å møte behovene til et bredt spekter av prosjekter.

Når det gjelder utvikling, har Drupal alltid hatt et relativt lukket samfunn - ikke fordi folk er uvennlige, tvert imot, men hovedsakelig på grunn av at koden typisk skrives på en Drupal måte (noe som resulterer i det noen ganger refereres til som Drupalisms). Dette har betydd en læringskurve for enhver utvikler som starter opp, men også mindre interesse fra utviklere av andre PHP-prosjekter for å hoppe inn og bidra.

Dette er ikke lenger tilfelle. Spesielt med utgivelsen av Drupal 8 fremmer fellesskapet nå en ny mentalitet av kodegenbruk og beste praksis på tvers av ulike open source-prosjekter. Aktiv deltakelse i PHP Framework Interoperability Group er en del av denne innsatsen, og bruk av en rekke populære Symfony-komponenter i Drupal 8-kjernen er et bevis på dette engasjementet. 

Med dette trekket har Drupal-fellesskapet blitt rikere ved å ønske mange utviklere fra andre samfunn og prosjekter velkommen, og det er sikkert å vokse enda lenger. Så hvis du er en Laravel-utvikler, ser det ikke så skremmende på å se på Drupal-koden.

Hvordan kan jeg installere Drupal, og hvor kan jeg være vert for den?

Tradisjonelt har Drupal hatt en relativt enkel installasjonsprosess, spesielt for folk som i det minste kjente seg rundt et Linux-miljø. Prosjektet trenger ganske enkelt å bli droppet inn i en mappe din webserver kan kjøre (som trenger å bruke PHP og ha en MySQL eller MariaDB database). Deretter peker nettleseren til /install.php fil og følge trinnene tar vare på resten. Den viktigste skjermen du vil se, er den du velger en bestemt database for å bruke.

Med hensyn til krav har LAMP-stabelen (Linux, Apache, MySQL og PHP) alltid vært en favoritt for Drupal å kjøre inn. Det er imidlertid ikke begrenset til det. Løsninger eksisterer for å installere det direkte på Windows eller Mac (for eksempel ved bruk av Acquia Dev Desktop), men også på et Linux-system som kjører andre webservere.

Den enkleste tilnærmingen, hvis du går med ditt eget oppsett, er å bruke en LAMP-server for hosting. For litt mer ytelse kan du erstatte Apache med Nginx, men du må da ta vare på noen spesifikk konfigurasjon som ellers håndteres i .htaccess fil Drupal leveres med.

Men hvis du ikke vil ha problemer med å opprettholde din egen hosting server, er det tre hovedleverandører av spesialisert Drupal Managed Hosting: Acquia, Pantheon og Platform.sh. Disse gir også en arbeidsflyt for enkle oppdateringer og utviklingsflyt. Tidligere ser du på fullt administrert hosting med et Drupal utviklingsselskap.

Hvordan kan jeg komme i gang med å utvikle for det?

Utvikling av Drupal nettsteder har vanligvis vært den typen ting du likte mye eller ikke likte i det hele tatt. Dette skyldes at da du først ble introdusert til Drupal, oppsto du mange spesifikasjoner som du ikke så i andre prosjekter. Så hvis de kvelte din fancy, elsket du det for alltid.

Med å få av dette øy i Drupal 8 er dette ikke lenger tilfelle så mye. Du har fortsatt masse Drupalisms venstre som du kan elske eller hate, men nå har du også eksterne komponenter som Symfony eller Guzzle og, viktigst, en mer moderne måte å skrive kode generelt på (OOP, designmønstre, gjenbrukbare komponenter, etc.). Så dine PHP ferdigheter fra å bygge nettsteder med Zend vil komme til nytte.

En god måte å komme inn på Drupal-utviklingen er å følge noen elektroniske videokurser. Det er et par ressurser som er gode for dette formålet, spesielt Drupalize.me. Hvis videoen imidlertid ikke er ditt favorittmedium, er det også mange skriftlige opplæringsveiledninger og guider tilgjengelig for å komme i gang. Ta en titt på følgende koblinger for noen av de første trinnene du kan ta:

  • Offisielle Drupal-utviklingsguider
  • Drupal API-referansen
  • Modulutviklings guider
  • Envato er Drupal Code Tutorials

Siden Drupal 8 er helt ny, vil du finne betydelig mer læringsinnhold for Drupal 7. Likevel har fokuset i samfunnet skiftet nylig mot Drupal 8, slik at du kan forvente at flere og flere av disse ressursene vil kaste seg opp. Og hvis du ikke har noen erfaring med noen versjon av Drupal, er det best å fokusere utelukkende på Drupal 8, da endringene mellom de to er store og kanskje du står overfor unødvendige utfordringer.

Hvordan kan jeg utvide Drupal?

Hovedutvidelsespunktet til en kjernedrippsinstallasjon er dens modul system. 

Moduler brukes til å inkapslere større biter av gjenbrukbar funksjonalitet som kan / burde fungere på forskjellige steder. Bortsett fra kjernemodulene er det et stort antall medvirkende, som er tilgjengelig for installasjon. 

Gitt, de fleste er fortsatt bare for Drupal 6 og 7, men samfunnet er også i gang med den nyeste versjonen. Dette problemet er også redusert ved inkorporering i Drupal 8 av noen få populært bidro moduler, samt å utvide omfanget av hva kjernen kan gjøre ut av boksen (sammenlignet med Drupal 7). 

Til slutt er egendefinerte moduler (de som du skriver deg selv) den primære måten du kan legge til hvilken funksjonalitet du vil ha, og det er ikke tilgjengelig via en medfølgende modul.

Installere moduler kan tillate deg å plugge inn ulike deler av funksjonalitet, men du bør ikke behandle dette som et grønt lys for å legge til for mange. Det er alltid bedre å holde seg til de du faktisk trenger, og vær ikke redd for å være kritisk i dette henseende. Du kan også jobbe med å finne en god balanse mellom den bidragede koden og den egendefinerte du skriver deg selv. 

I tillegg, siden vi snakker om åpen programvare, bør du alltid evaluere modulene du installerer. Følgende indikatorer er gode eksempler for å være oppmerksom på: antall nedlastinger og bruk, commitfrekvens, vedlikeholdsintervju, tilstand av problemkøen.

Og hold også sikkerhet i tankene også. Det anbefales på det sterkeste at du holder både Drupal-kjerne og eventuelle bidrags moduler oppdatert, da dette vil hjelpe deg med å holde nettstedet og serveren din trygg (selv om den ikke sikrer det).

Hva om styling?

Stylinglaget på et Drupal-område håndteres (hovedsakelig) av temaet. Temaer ligner moduler fordi de er et utvidelsessted, men de har forskjellige ansvarsområder. De inneholder stiler, frontend-biblioteker og i de fleste tilfeller malfiler som brukes til å utdata data.

Det har vært gode fremskritt i Drupal 8 sammenlignet med den forrige versjonen: Den populære Twig-motoren har blitt vedtatt for templering, temaene har vært begrenset til Twig-malfiler, feilsøking og overordnede maler har blitt gjort mye lettere, etc. Ligner fremskrittene i back-end-utviklingserfaring (DX), er temalaget laget mer attraktivt for ikke-Drupal-publikum. Front-end-utviklere kan nå enkelt jobbe med Drupal-temaer uten å måtte forstå innsiden og utgangen på bakenden.

Drupal kjernen kommer med en rekke temaer som kan gi deg eksempler, men også som du kan strekke seg fra. Det er også bidratt til temaer som ligner på moduler. Populære front-end rammer som Bootstrap eller Zurb Foundation har modne Drupal tema implementeringer for Drupal 7, som også klargjør for Drupal 8. Disse fungerer veldig bra som grunnleggende temaer, men også for raskt stillas et nettsted og gjør det se anstendig.

Betalte temaer er også tilgjengelige for å prøve ut. Vanligvis er de veldig billige og raske å sette opp. Problemet med dem er at de er verdt akkurat så mye som du betaler for dem og har vanligvis gapende hull i sin fleksibilitet. Som en nybegynner kan disse temaene virke som en fin måte å sette opp et nettsted på, og de kan godt være. Men når du utvikler deg, lærer du å unngå dem og bygger din egen, basert på ekstern design eller til og med vanlige HTML / CSS / JS-maler.

Konklusjon

Drupal er et kraftig verktøy for å bygge nettsteder og plattformer av noe slag. Med hver nye store utgivelse har Drupal vist en forpliktelse til å bedre seg, bli mer robust og fleksibel, og omfavn også utenfor samfunn.