Managed hosting door True

Technologie

De magie van CakePHP

Review

Webdevelopment met standaard frameworks

 

Als je een webapplicatie wilt maken, ontwerp je een doe-het-zelf php-framework of kies je voor een standaard. CakePHP is één van de stabiele en bedrijfszekere standaard php-frameworks waarmee je alle webfunctionaliteit kunt maken. De leercurve van php-frameworks kan aanzienlijk zijn, maar is met CakePHP kort. Webapplicaties gemaakt met CakePHP voldoen aan de kwaliteitseisen van softwareproducten. Maar er is meer. CakePHP is magisch, als je je aan de conventies houdt.

Ruim 80 procent van de servergerichte webapplicaties gebruikt php als programmeertaal. Er zijn enkele tientallen php-frameworks. Meestal gebaseerd op het Model View Controller (MVC)-patroon. Het MVC-ontwerppatroon werkt pragmatisch en is goed onderhoudbaar. In het model benoem je de tabel met zijn relaties, de controller omvat de acties en redirects die tot uiting komen in de view of in requests. De view toont een resultaat op een platform of maakt een resultaat.

Strakke conventies vormen de basis voor de magie van CakePHP. Dit standaard php-frame gaat uit van de Engelse grammatica, met strikte meervoud en enkelvoud vormen. Stel, je wilt een users-tabel in een webapplicatie toepassen. Het model noem je enkelvoudig ‘UserModel’, de controller meervoud ‘UsersController’ en de view directory meervoud ‘Users’, met daarin de acties als ‘index’, ‘add’ en ‘edit’. CakePHP gaat uit van een onderkast tabelnaam in meervoud (‘users’) in de database, met ‘id’ als primaire sleutel. Een verwijssleutel in een andere tabel wordt ‘user_id’.

De Inflector class is de kern van de magie van CakePHP. Inflector::camelize zet de meervoud tabelnaam om in een CakePHP Controller-voorvoegsel. De tabel ‘user_posts’ wordt ‘UserPosts’. Met Inflector::singularize vorm je de UserPost-modelnaam. Een overzicht van tabelrijen wordt ‘$userposts’ met voor elke rij een ‘$userpost’. De strikte magie maakt een webapplicatiecode leesbaar en daarmee onderhoudbaar. De Inflector is te testen via http://inflector.cakephp.org.

CakePHP maakt Object Relational Mapping mogelijk en eenvoudig toepasbaar. Je kunt de een-op-veel-relaties in het model in een duidelijke associatieve tabel vastleggen. Noteer een verwijssleutel in tabellen en CakePHP vindt automatisch de bij de tabel horende gegevens. Met ‘user_id’ vind CakePHP automatisch de ‘user_name’.

De kwaliteitseisen voor softwareproducten volgens ISO 9126 zijn effectiviteit (functionaliteit), betrouwbaarheid (bedrijfszeker), bruikbaarheid (gebruiksvriendelijk), onderhoudbaarheid (beheersbaarheid), flexibiliteit (portabiliteit) en efficiëntie (doelmatigheid).

Met CakePHP kun je wereldwijde webapplicaties bouwen. Vertalingen, verschillende databaseconnecties, batch processing en caching zijn standaard onderdelen. CakePHP is bedrijfszeker met code voor authenticatie en bescherming tegen internetbedreigingen. De flexibele onderhoudbaarheid van webapplicaties is vaak een probleem. De eenduidige MVC-mapstructuur maakt upgrading naar een volgende versie eenvoudig mogelijk.

CakePHP is een standaard php-framework dat het bouwen van webapplicaties snel en overzichtelijk mogelijk maakt. Met de magie van CakePHP kun je webapplicaties zo snel als nodig is maken en de time-to-market versnellen. Lees meer op http://cakephp.org.

Wim Boogaart, senior php-developer

Deze review is van een externe deskundige. De inhoud vertegenwoordigt dus niet het redactionele gedachtegoed van Computable.

Dit artikel is afkomstig van Computable.nl (https://www.computable.nl/artikel/5219532). © Jaarbeurs IT Media.

?


Lees meer over


 

Reacties

ik mis een paar alternatieven, die vindt je hier
http://www.sitepoint.com/best-php-frameworks-2014/

Magie (het idee van "het werkt, maar geen idee hoe") is over het algemeen slecht bij programmeren. Om een betere programmeur te worden kun je beter investeren in het begrijpen van de werking van een framework. Dat zal je later helpen bij het oplossen van bugs.

Vacatures

Stuur door

Stuur dit artikel door

Je naam ontbreekt
Je e-mailadres ontbreekt
De naam van de ontvanger ontbreekt
Het e-mailadres van de ontvanger ontbreekt

×
×