Web-applicaties bouwen

workbenchIk ben al een tijdje aan het zoeken naar de beste manier om een website te maken die niet helemaal past in het rijtje : CMS, blog, chat, forum, web-winkel, image-gallery
Voor genoemde zaken heb je zo-uit-de-doos software die je alleen maar hoeft aan te passen aan je eigen wensen.
Het meest bekende CMS voor blogs is natuurlijk WordPress.
Ik heb al wat ervaring met het schrijven van plugins voor WordPress, ik het al eens gekeken naar Drupal, maar geen van beide kunnen ze goed doen wat ik wil : een webapplicatie met veel formulieren en met gebruikers met verschillende rollen.
De ene gebruiker moet formulieren kunnen ontwerpen die de andere invult, en daarbij zijn beide geen automatiseerders en zijn de eisen aan de beveiliging streng. Drupal leek heel geschikt, maar daarbij loop ik tegen een ander probleem aan :
Ik moet het zelf kunnen maken, en het duurt me te lang om Drupal aan te leren in verhouding tot de tijd die ik heb om iets te bouwen en het beschikbare budget.
Wordpress komt in de buurt, ik kan er de statische pagina’s mee maken, er zijn een aantal plugins die bijna doen wat ik nodig heb, maar ik zou zelf toch nog vrij veel moeten programmeren om er een werkend geheel van te maken en dan nog zou het een “niet op dat knopje drukken” applicatie worden. Veel te veel mogelijkheden die niet gebruikt worden en een wat omslagtige manier van werken. Niet erg veilig ook. WordPress zou dan de middleware worden voor een applicatie die er bovenop komt. Maar als ik beheerderrechten weggeef, zodat iemand leuk een ander theme kan installeren en dat theme is vervolgens lek, waardoor een Russische hacker bij klantgegevens kan, zijn de rapen gaar. Het is ook lastig programmeren voor WordPress, omdat je steeds in de Codex moet zoeken wat waar zit. Het staat allemaal wel ergens, maar de WordPress documentatie doet me altijd denken aan een omgevallen boekenkast.

Zelf vanaf scratch iets maken kan ook, erg leerzaam, maar het duurt veel te lang.
Wat als ik nu eens kijk naar een framework ?
Dat PHP framework zou dan goed moeten zijn in beveiliging en toegangscontrole en dan maak ik zelf de dingen die het uiterlijk bepalen.
Ik kan niet 3 weken op cursus in Amerika, er moet iets van documentatie bij zitten.
Eerst maar eens kijken wat Ubuntu in de repository heeft. ( Zend framework, daar had ik al eens van gehoord. Schijnt nogal moeilijk te zijn )
Kohana. Nooit van gehoord, even geprobeerd, maar het klikt niet echt bij mij. De dingen die ik er over las, waren wel positief.
Ik wil niet alle frameworks van de wereld leren kennen. Lezen, lezen, lezen, lezen.
Yii zit niet in de repository, maar inmiddels weet ik dat die automatische installatie ook maar een wassen neus is.
Een zip-file uitpakken kan ik nog wel.
Lichtgewicht, dat is het toverwoord dat ik zoek. User-community. Nieuw. Niet backwards compatible met een heleboel verouderde troep, daar heb je alleen maar last van. Role based security.
Het lijkt me een goed product, ik ga het eens proberen.

PHP is een waardeloze taal, als je C(++) gewend bent. Veel te veel mogelijkheden, uitzonderingen en aparte constructies. Een framework gebouwd op PHP zou lelijk in het kwadraat kunnen zijn, maar de documentatie van Yii ziet er een stuk aangenamer uit dan het PHP-manual.
En er zit een cursus in.
Installeren, klaar. Binnen een half uur staat het eerste voorbeeld.
Een fictieve webapplicatie, zonder functionaliteit, maar met een inlogscherm, een home, en nog 2 statische pagina’s.
Ik ben meteen verliefd.
Yii-code-generator
Volgende hoofdstuk in de cursus :
Welcome to Yii Code Generator!
Kijk, daar heb je wat aan.
Dit sluit mooi aan bij wat ik kan en weet. Ik snap databases en ERD’s.
Als je zoals ik ooit een cursus Oracle developer hebt gevolgd maar er nooit wat mee hebt kunnen doen, omdat Oracle software onbetaalbaar was, is het prettig om te weten dat Rapid Application Development anno 2013 met open-source tools net zo goed gaat.

Voor Yii is de database dus een gegeven, en daar modelleert de generator zijn code omheen. En daarmee krijg je een bouwdoos waar je met een klein beetje code van alles van kan maken. WordPress is als het ware een paard waar je wat strikjes aan vast mag knopen, maar als het gewenste eindresultaat teveel gaat afwijken van een paard, wordt het wel erg veel werk om dat allemaal met de hand te gaan bouwen.

Om het kunstje goed in de vingers te krijgen, ga ik eerst proberen mijn eigen “wordpress” te maken. ( Zie plaatje ). Er zijn wat dingen aan WordPress die me niet bevallen. Het doet me soms denken aan een paard. Paarden zijn leuk als ze rennen, als ze ergens drijven heb je er alleen maar last van. Het maken van een backup van een wordpress blog op shared hosting is een drama. Alle backup-plugins leunen op MySQLdump, en dat loopt vast op zeer grote tabellen. Het resultaat past ook niet in de mail. Ik snap niet goed waarom de posts worden opgeslagen in de database, ook nog in 5 versies… Wat voegt het toe ?
De op één na grootste tabel is de comments tabel. Het zijn meestal dezelfde mensen die reageren. Waarom slaat WordPress dan bij elke reactie naam, e-mail adres, etc op ? Ik wil ook eens een andere editor proberen. WordPress is getrouwd met TinyMCE, een WYSIWYG editor.
Ik werk nooit zo, dus ik heb liever What You See Is What You Mean.
Wordpress en alle plugins hebben veel meer mogelijkheden dan ik ooit gebruik. Daar wordt het alleen maar langzamer van. Ik wil ook niet elke week iets bijwerken. 4 Keer per jaar is meer dan genoeg. De plugins die ik nu gebruik, wil ik in de core.

( er komt nog een vervolg )

Read Offline:
This entry was posted in Wordpress and tagged , , . Bookmark the permalink.

2 Responses to Web-applicaties bouwen

  1. Grutte Pier says:

    Ziet er goed uit!

    Als basis, dat dan weer wel

  2. knutselsmurf says:

    Hoe het er uitziet is afhankelijk van het theme. Er zijn voor Yii niet zoveel themes in vergelijking met wordpress. Het is ook niet zo plug-and-play als wordpress, omdat je alle widgets zelf moet maken. Maar eigenlijk stelt zo’n theme niet zoveel voor. Het is meer goed zijn met kleurpotloden dan dat je er voor moet kunnen programmeren.

Leave a Reply

Your email address will not be published.