Als je hieronder je gegevens achterlaat, komen we zo snel mogelijk bij je terug. Kan je vraag niet wachten? Dan mag je ons altijd bellen op 0297 38 52 52. Is het weekend of na 17:00? Een mailtje sturen is dan handiger: mail ons op [email protected].
Een veelvoorkomend begrip in de wereld van softwareontwikkeling is een framework: een ‘basispakket’ aan softwarecomponenten en code voor het ontwikkelen van software, zoals websites of applicaties. Bij Loyals zijn we twintig jaar geleden gestart met het bouwen van een eigen framework voor onze websites. Met de nodige doorontwikkelingen van dien!
In deze blog lees je wat een framework inhoudt, waarom we bij Loyals een eigen framework hanteren en welke voordelen (en nadelen) dit meebrengt voor onze opdrachtgevers.
Een framework kun je letterlijk vertalen als “raamwerk”. Het biedt een bepaalde basis om websites of applicaties verder te ontwikkelen, en komt in het geval van softwareontwikkeling ook met een breed pakket aan functionaliteiten die je niet zelf hoeft te ontwikkelen. Heel fijn dus, want dit scheelt developers veel (herhalende) werkzaamheden. En klanten dus ook geld. Win-win!
Een framework kun je vergelijken met het geraamte van een huis.
Loyals gaat ondertussen, op het moment van schrijven, alweer twintig jaar mee. Dat betekent dat we in 2001 zijn begonnen met het maken van websites en gave producten voor onze opdrachtgevers.
Een framework kun je zelf bouwen, maar je kunt natuurlijk ook bestaande PHP frameworks van bekende ontwikkelaars gebruiken. In de tijd dat we bij Loyals begonnen, waren er nog niet echt frameworks. Iedereen deed het op zijn eigen manier. Een paar jaar later kwamen er PHP framework op de markt die flink verschillen van hoe we anno 2021 met frameworks om gaan. Een aantal bekende namen:
Laravel (2011)
Symfony (2005)
CakePHP (2005)
ZendFramework (2005)
CodeIgniter (2006)
In die tijd is er bij Loyals een eigen framework ontstaan, wat al die jaren doorontwikkeld is. Bij veel programmeurs is dit een controversieel onderwerp. Veel developers zijn namelijk van mening dat een bestaand open source framework the way to go is. Dit wordt vaak onderbouwd met de mate van doorontwikkeling, goed uitgewerkte documentatie, en het bekende wiel niet opnieuw uitvinden. En om eerlijk te zijn: die mening heb ik een lange tijd gedeeld.
Gelukkig ben ik ook maar een mens… en daarom licht ik graag toe waarom ik het nu zo fijn vind een framework in eigen beheer te hebben! ;-)
Laten we eerst beginnen met de voordelen van een bestaand – dus niet zelf ontwikkeld – framework gebruiken.
Bij bestaande frameworks is er super actieve doorontwikkeling vanuit een hele community. Er worden bijna altijd wel mooie nieuwe features aan toegevoegd.
Diezelfde community is ook (flink) actief op fora, dus wanneer een developer ergens tegenaan loopt kan hij of zij online vaak wel op de kennis van mede-developers rekenen. Neem bijvoorbeeld maar eens een kijkje op het forum van Laravel, dit Reddit board of de website van Laracasts (een zelfbenoemd netflix voor developers).
Daarnaast is de documentatie vaak uitgebreid, waardoor je snel antwoorden op vragen kunt vinden. Zo zijn hier vaak de oplossingen op veel voorkomende uitdagingen beschreven, hoe het framework omgaat met zaken als security en schaalbaarheid zijn hier vaak tot in de puntjes uitgewerkt.
Een voorbeeld van de uitgebreide Laravel documentatie
Tot slot: je hoeft het wiel vaak niet opnieuw uit te vinden. Zoek je een bepaalde package (bundel van code)? Dan is de kans groot dat iemand anders dit al voor je heeft gedaan. En die kun jij dus eenvoudig hergebruiken.
Door al deze voordelen op te noemen, ga je haast denken dat we ons eigen framework te kort doen. Gelukkig valt dat wel mee. Maar eerlijk is eerlijk: de keuze voor Loyals om een eigen PHP framework te ontwikkelen is niet per se uit luxe geboren.
Van origine hebben we relatief grote klanten in ons portfolio. Deze opdrachtgevers legden bij ons de eis neer dat onze code geen open source framework toepast.
Natuurlijk, PHP zelf is ook open source. Maar in onze gevallen ging het puur om de implementatie. Oftewel: een stukje compliancy.
Voor ons is het redelijk simpel: wij zijn volledig vertrouwd met onze techniek. Én daarbij snappen onze klanten de producten die wij ontwikkelen. Er zijn tientallen grote CMS-pakketten met super complexe interfaces waar onze klanten eerst mee gewerkt hebben, om daarna in ons CMS te werken waar alles veel duidelijker op hun gericht is.
We snappen dat je op een framework altijd een CMS kunt bouwen, maar in ons geval komt een stuk custom design altijd om de hoek kijken.
Een “maatwerk framework” klink misschien tegenstrijdig, maar hiermee bedoel ik dat ons framework altijd bevat wat de klant nodig heeft. Tientallen overbodige, niet gebruikte packages worden dus ook niet meegeleverd in ons framework. Zo houden we elk framework bijzonder lightweight!
Dit maakt ons framework uitermate geschikt voor diverse maatwerk projecten. Van een website voor een simpele inschrijving (waar het framework uit de core onderdelen bestaat zoals routing en database toegang, en een package om formulieren te beheren) tot gehele ERP-systemen waar er koppelingen met bestaande softwarepakketten worden gebouwd.
Wat de packages betreft, dat mes snijdt aan twee kanten. Want ook wij hebben in die twintig jaar ervaring een grote verzameling aan packages opgebouwd. Allemaal binnen ons eigen framework. En daar hebben wij de volledige controle over.
De tijd die erin zou gaan zitten om ons hele team in te wijden tot bijvoorbeeld een Laravel zou voor ons geen winst opleveren, want:
we maken er geen betere producten door;
onze klanten zullen het niet merken en;
we werken er ook niet sneller door.
Voor ons én onze opdrachtgevers is het dus geen betere oplossing.
De afweging tussen een eigen framework en een bestaand framework blijft lastig. Er zijn natuurlijk veel mooie features in bijvoorbeeld een Laravel, welke je productiviteit een boost geven. Toch weerhoudt niets ons ervan om dat zelf in ons eigen framework ook te doen!
Ik werk de laatste maanden veel met Laravel, ik heb een aantal jaar in CodeIgniter gewerkt en heb ook ervaring met diverse frameworks in andere programmeertalen, dus het is niet een kwestie van ‘niet beter weten’, maar wij halen een enorme kracht uit het hebben van ons eigen framework.
Uiteindelijk blijven we ons framework altijd evalueren. We vragen ons keer op keer af of dit nog steeds de beste oplossing voor ons, maar vooral voor onze klanten is. Zolang dat het geval is, blijven we ons eigen framework doorontwikkelen. Want zeg nu zelf, iets zelf maken is veel leuker toch?
Wat we in onze zoektocht naar PHP-developers vaak merken, is dat er zich een flinke hoeveelheid developers op de markt begeeft die niet zozeer hebben leren programmeren, maar vooral een framework hebben geleerd.
Het gevaar daaraan is dat de basis PHP-functionaliteiten vaak grotendeels onbekend zijn, en ze kijken of ze water zien branden op het moment dat de voor hun bekende tools niet meer beschikbaar zijn.
Een technisch PHP-voorbeeld: Laravel heeft een functie “dd()” (dump and die), dit houdt eigenlijk in: “Schrijf deze data naar het scherm en stop het script.”
Dit is super nuttig bij het onderzoeken en debuggen van code, maar ook zonder deze functie zou een PHP-programmeur moeten weten hoe je iets naar het scherm schrijft, en het script stopt.
Mijn advies voor elk (beginnend en gevorderd) developer die ervaring heeft met slechts 1 framework is: Zorg dat je minstens nog een framework eigen maakt. En vraag jezelf ook altijd af of je ook weet hoe de programmeertaal werkt zonder de bekende tools die het framework biedt!
Ben je na het lezen van deze blog benieuwd naar het uitgebreide PHP framework van Loyals? Ik geef je graag een kijkje in onze PHP-keuken! Neem even contact op met ons team, dan spreken we elkaar snel.
Als je hieronder je gegevens achterlaat, komen we zo snel mogelijk bij je terug. Kan je vraag niet wachten? Dan mag je ons altijd bellen op 0297 38 52 52. Is het weekend of na 17:00? Een mailtje sturen is dan handiger: mail ons op [email protected].