Vad är Drupal?

Drupal är ett populärt källhanteringshanteringssystem skrivet i PHP. Har skapats i början av 2000-talet av en belgisk student, driver den nu några av de mest framstående webbplatser på webben (WhiteHouse.gov, Weather.com, etc.). Det anses ofta som en konkurrent till CMSs som WordPress och Joomla.

En av de viktigaste delarna i Drupal-projektet är dess gemenskap av supportrar (bidragsgivare, utvecklare, evangelister, företagsägare etc.). Framträdande inom denna gemenskap står Drupal Association, som ansvarar för att "främja och stödja Drupal-mjukvaruprojektet, samhället och dess tillväxt".

Ett stort steg från sin föregångare, den 8: e stora utgåvan av Drupal-projektet, har just slagit sig på hyllorna. Det medförde en seriös modernisering av sin kod, praxis och mentalitet. Många anser detta skifte som ett verkligt drag från den traditionella uppfattningen av ett CMS till mer av en Content Management Ramverk (CMF) som ger en bra plattform för att bygga komplexa applikationer.

I den här artikeln ska jag svara på några av de vanligaste frågorna som människor har om Drupal när de startar för första gången eller överväger att göra det:

  • Är det rätt för mig? Vem syftar det till?
  • Hur kan det installeras, och var kan jag vara värd för det?
  • Hur kan jag börja arbeta med det som utvecklare?
  • Vilka alternativ har jag för att utvidga funktionaliteten eller styling den?

Vem är Drupal inriktad på?

Sedan starten av projektet har Drupal utvecklats från att vara främst ett verktyg för att bygga mindre platser till en som nu kan driva plattformar på företagsnivå. Särskilt hos Drupal 8 kan byggare och utvecklare på plats enkelt skala upp från små webbplatser till stora plattformar med många integreringar. Genom att anta Composer kan du till exempel inte bara ta med externa bibliotek i ett Drupal-projekt utan även använda Drupal som en del av ett större projekt av applikationer och bibliotek. Det är säkert att säga att Drupal är tillräckligt flexibel för att möta behoven hos ett brett spektrum av projekt.

När det gäller utveckling har Drupal alltid haft ett relativt stängt samhälle - inte för att människor är ovänliga, tvärtom, men främst på grund av att koden typiskt skrivs på en Drupal-väg (vilket resulterar i det som ibland kallas Drupalisms). Detta har inneburit en inlärningskurva för vilken utvecklare som helst, men också mindre intresse från utvecklare av andra PHP-projekt för att hoppa in och bidra.

Detta är inte längre fallet. Speciellt med frisläppandet av Drupal 8, främjar gemenskapen nu en ny mentalitet av kodåteranvändning och bästa praxis inom olika open source-projekt. Aktivt deltagande i PHP Framework Interoperability Group är en del av denna ansträngning. Att använda ett antal populära Symfony-komponenter i Drupal 8-kärnan är ett testamente för detta åtagande. 

Med detta drag har Drupal-samhället blivit rikare genom att välkomna många utvecklare från andra samhällen och projekt, och det kommer säkert att växa ännu längre. Så om du är en Laravel-utvecklare är det inte längre så att titta på Drupal-koden.

Hur kan jag installera Drupal, och var kan jag vara värd för det?

Traditionellt har Drupal haft en relativt enkel installationsprocess, särskilt för människor som åtminstone visste sig runt en Linux-miljö. Projektet behöver helt enkelt släppas i en mapp som din webbserver kan köra (vilken behöver använda PHP och ha en MySQL- eller MariaDB-databas). Då pekar din webbläsare till /install.php fil och följa stegen tar hand om resten. Den viktigaste skärmen du kommer att se är den där du väljer en specifik databas att använda.

När det gäller krav har LAMP-stacken (Linux, Apache, MySQL och PHP) alltid varit en favorit för Drupal att springa in. Det är dock inte begränsat till det. Lösningar finns för att installera det direkt på Windows eller Mac (t.ex. med Acquia Dev Desktop) men också på ett Linux-system som kör andra webbservrar.

Det enklaste tillvägagångssättet, om du går med din egen inställning, är att använda en LAMP-server för hosting. För lite mer prestanda kan du ersätta Apache med Nginx, men du måste då ta hand om en viss konfiguration som annars hanteras i .htaccess filen Drupal skickas med.

Men om du inte vill ha det krångel med att behålla din egen värdserver, finns det tre huvudleverantörer av specialiserad Drupal-hanterad värd: Acquia, Pantheon och Platform.sh. Dessa ger också ett arbetsflöde för enkla uppdateringar och utvecklingsflöden. Tidigare så tittar du på fullständigt hanterad hosting med ett Drupal utvecklingsföretag.

Hur kan jag komma igång med att utveckla för det?

Utveckling av Drupal-webbplatser har vanligtvis varit den typ av sak du gillade mycket eller alls inte alls. Detta beror på att när du först introducerades för Drupal, uppstod du mycket specifika egenskaper som du inte såg i andra projekt. Så om de kittlade din fantasi, älskade du det för alltid.

Med att få av det här ö i Drupal 8 är det inte längre så mycket. Du har fortfarande gott om Drupalisms kvar att du kan älska eller hata, men nu har du också externa komponenter som Symfony eller Guzzle och, viktigast av allt, ett mer modernt sätt att skriva kod i allmänhet (OOP, designmönster, återanvändbara komponenter etc.). Så din PHP-kompetens från att bygga webbplatser med Zend kommer att vara till nytta.

Ett bra sätt att komma in i Drupal-utvecklingen är att följa vissa online-videokurser. Det finns ett par resurser som är utmärkta för detta ändamål, framför allt Drupalize.me. Om videon inte är ditt favoritmedium finns det också många skrivna handledningar och guider tillgängliga för att komma igång. Kolla in följande länkar för några av de första stegen du kan ta:

  • Officiella Drupal utvecklingsguider
  • Drupal API-referensen
  • Modulutvecklingsguider
  • Envats Drupal Code Tutorials

Eftersom Drupal 8 är helt ny kan du hitta betydligt mer inlärningsinnehåll för Drupal 7. Ändå har fokuset i samhället skiftat nyligen mot Drupal 8, så du kan förvänta dig att fler och fler av dessa resurser kommer att växa upp. Och om du inte har någon erfarenhet av någon version av Drupal är det bäst att fokusera exklusivt på Drupal 8, eftersom förändringarna mellan de två är stora och kanske du skulle möta onödiga utmaningar.

Hur kan jag förlänga Drupal?

Huvudförlängningspunkten för en kärna Drupal-installation är dess modul systemet. 

Moduler används för att inkapsla större bitar av återanvändbar funktionalitet som kan / bör fungera på olika platser. Bortsett från kärnmodulerna finns det ett stort antal bidragsberättigade som är tillgängliga för installation. 

Beviljas, de flesta är fortfarande bara för Drupal 6 och 7, men samhället hamnar också för den senaste versionen. Detta problem mildras också av införlivandet i Drupal 8 av några populära bidrags moduler samt att utvidga omfattningen av vilken kärna som kan ut ur lådan (jämfört med Drupal 7). 

Slutligen är anpassade moduler (de som du skriver själv) det primära sättet att lägga till vilken funktionalitet du vill ha och det är inte tillgängligt via en bidrags modul.

Installera moduler kan låta dig ansluta olika funktioner, men du bör inte behandla detta som ett grönt ljus för att lägga till för många. Det är alltid bättre att hålla fast vid dem du verkligen behöver, och var inte rädd för att vara kritisk i detta avseende. Du kan också arbeta för att hitta en bra balans mellan bidragskoden och den anpassade du skriver själv. 

Dessutom, eftersom vi pratar om öppen källkod, bör du alltid utvärdera modulerna du installerar. Följande indikatorer är bra exempel att uppmärksamma på: antal nedladdningar och användningar, commitfrekvens, underhållsintervju, tillstånd av köpet.

Och håll också säkerhet i åtanke också. Vi rekommenderar starkt att du behåller både Drupal-kärnan och eventuella bidrags moduler, eftersom det här väsentligt hjälper dig att hålla din webbplats och server säker (även om den inte garanterar det).

Vad om Styling?

Stylingskiktet på en Drupal-plats hanteras (till stor del) av dess tema. Teman liknar moduler eftersom de är en förlängningspunkt, men de har olika ansvarsområden. De innehåller stilar, front-end-bibliotek och i de flesta fall mallfiler som används för att mata ut data.

Det har gjorts stora framsteg i Drupal 8 jämfört med den tidigare versionen: den populära Twig-motorn har antagits för templering, teman har blivit begränsad till Twig-templatfiler, felsökning och överordnade mallar har gjorts mycket lättare, etc. Liksom framstegen i back-end-utvecklingserfarenhet (DX), har tematskiktet gjorts mer tilltalande för icke-Drupal-publiken. Front-end-utvecklare kan nu enkelt arbeta med Drupal-teman utan att behöva förstå insidan och uttagen på baksidan.

Drupal-kärnan kommer med ett antal teman som kan ge dig exempel men också som du kan sträcka ifrån. Det finns också bidrag till teman som liknar hur det finns moduler. Populära frontramar som Bootstrap eller Zurb Foundation har mogna Drupal-temanimplementeringar för Drupal 7, som också klarar av Drupal 8. Dessa fungerar väldigt bra som grundteman men också för att snabbt bygga upp en webbplats och göra det ser anständigt ut.

Betalda teman är också tillgängliga för att prova. Vanligtvis är de mycket billiga och snabba att sätta upp. Problemet med dem är att de är värda exakt så mycket som du betalar för dem och brukar ha gapande hål i sin flexibilitet. Som en nybörjare kan dessa teman vara ett bra sätt att skapa en webbplats, och de kan mycket väl vara. Men när du utvecklas lär du dig att undvika dem och bygga dina egna, baserat på externa mönster eller till och med vanliga HTML / CSS / JS-mallar.

Slutsats

Drupal är ett kraftfullt verktyg för att bygga webbplatser och plattformar av något slag. Med varje ny stor release har Drupal visat sig ett åtagande att förbättra sig, bli robustare och flexibla och omfamna utomstående samhällen också.