Scriptorama.nl

Header image showing a keyboard, mouse, laptop and books on design patterns

PHP 5.3: Closures en Lambda functies

Het voorstel voor Closures en Lambda functies waar ik vorige maand over schreef is inmiddels zover doorontwikkeld dat de feature is opgenomen in PHP 5.3. Sinds het voorstel zijn er de nodige wijzigingen geweest in hoe lambda's en closures gebruikt worden, dus werd het tijd voor een compleet overzicht.

(more...)

Flickr RSS feed inlezen met SimpleXML

Net zoals zovelen heb ook ik een account bij Flickr voor foto's die ik zo af en toe maak. Aangezien Flickr zo ongeveer het poster-child voor alles web2.0 is, is het alleen uploaden van foto's naar Flickr eigenlijk not-done.

Dus in dit artikeltje kijken we naar hoe we de RSS feeds van Flickr kunnen gebruiken om onze eigen Flickr overzicht te maken voor op bijv. je persoonlijke blog. Hiervoor zullen we PHP5's SimpleXML gebruiken.

(more...)

Een blik op MySQLi IV: Transacties en SSL

In de vorige 3 MySQLi artikelen hebben we het gehad over het basis gebruik van MySQLi, prepared queries en unbuffered queries. In dit artikel zullen we zien hoe je met transacties kunt werken en hoe je een beveiligde verbinding kunt opzetten met MySQL.

(more...)

Timeouts en PHP streams

In "POST request maken zonder CURL" beschreef ik hoe je vanuit een PHP script een formulier kon posten zonder dat je daarvoor de CURL extensie voor nodig had. Daarbij had ik een ding nog niet besproken en dat is het feit dat zo'n website ook down of slecht bereikbaar kan zijn.

Je hebt het vast wel eens aan de hand gehad: je communiceert met een andere server voor SMS of betalingen en op een dag, om wat voor reden dan ook, blijft jouw site ineens hangen. Uiteindelijk kom je er achter dat de andere server niet te bereiken was, maar je script bleef het toch proberen. In dit artikel leer je hoe je met timeouts kunt werken wanneer je met andere servers communiceert.

(more...)

Namespaces in PHP-6 en PHP-5.3

Goed nieuws voor degene die bij onze vorige posting nog hoopte dat PHP6 uberhaupt namespace ondersteuning zou krijgen. Die kogel is inmiddels door de kerk. Interessanter is dat inmiddels ook is besloten om de volgende versie in de PHP5 serie: PHP 5.3 ook ondersteuning voor Namespaces te geven.

Nadat duidelijk geworden wat ongeveer de verdere plannen zijn voor PHP 5.3, is vorige week een nieuwe ontwikkel branche aangemaakt voor PHP 5.3 en daarop is afgelopen vrijdag ondersteuning voor namespaces aan toegevoegd. In dit artikeltje kijken we wat namespaces zijn en hoe we ze kunnen gebruiken.

Update 1: De implementatie gebruikt nu 'use' in plaats van 'import'. Aangepast.
Update 2: '::' is niet langer de namespace separator, dat is nu '\'. Aangepast.

(more...)

Hoe maak ik een File Upload progress bar met PHP ?

We hebben al eerder gelinkt naar artikelen die vertelden hoe je een file upload progressbar kon maken, maar deze vertelden dit op een enigzins hoog niveau zonder er bij te vertellen hoe alles nu precies in elkaar stak. Dus vandaag implementeren we op Scriptorama from-(bijna)-scratch een file upload progress bar met PHP, jQuery en een PHP extensie.

Update: Heb je niet de mogelijkheid om een nieuwe PHP module te installeren? Probeer het dan eens een file upload progress bar te maken met Google Gears!

(more...)

Hoe implementeer ik een simpel tagging systeem?

Tagging is simpelweg het toekennen van labels aan een item. Eigenlijk is dit een verkapte vorm van aan een item categorieën toekennen. Het grote verschil tussen categorieën en tags is dat tags veel vrijer zijn. Categorieën worden meestal vooraf gedefinieerd en later wordt hier een artikel aan gehangen. Bij tagging is het precies andersom. Je creëert een artikel, en hangt daar tags aan.

Bekende voorbeelden van tagging zijn te zien op Del.icio.us en Flickr. Het mooie hieraan is dat iedereen zijn/haar bookmarks / foto's een x aantal tags meegeeft, waardoor anderen deze foto's en bookmarks op basis van die tag kan vinden.

Naar mijn mening wordt tagging tegenwoordig te pas en te onpas gebruikt. Op websites als flickr en del.icio.us zijn er meerdere gebruikers die allen meerdere items taggen. Hierdoor krijg je al snel een community gevoel. Voor een één gebruiker website (portfolio, weblog, whatever) kan een tagcloud overbodig zijn, zeker als je toch maar over een x aantal onderwerpen schrijft. In dat geval is het gebruik van categorieën aan te raden. Waarom zou je als één gebruiker website toch kiezen voor een tagging systeem? Dit zou je kunnen doen doordat je visueel kan laten zien waar je interesse/kennis ligt, door middel van de text grootte.

Hoe maak je zo'n tag systeem? Onder de lees meer link een tutorial hoe je een dergelijk systeem bouwt.

(more...)

PHP 5.2: de Date extensie uitbreidingen

Een van de nieuwe dingen in PHP 5.2 is de uitgebreidde Date extensie. Dat is een beetje een understatement want naar verluidt is de extensie grotendeels herschreven. Het was de bedoeling dat de uitbreiding in de Date extensie al eerder beschikbaar werd maar doordat de PEAR Date klasse ook de klassenaam Date gebruikte en de nodige druk van een nieuwe release is toen besloten om deze klassen later toe te voegen.

Zodoende is een deel van de nieuwe functionaliteit al in PHP 5.1 te vinden terwijl de rest pas echt vanaf 5.2 beschikbaar is. Dit artikel introduceert de belangrijkste wijzigingen.

Update: Een comment op Evert's blog beschrijft hoe je een DateTime klasse kunt configureren met een unix timestamp. Ik heb dat ook toegevoegd aan het overzicht.

Update II: In PHP 5.3 is deze functionaliteit nog verder uitgebreidt met o.a. een DateInterval en DatePeriod klasse. Lees verder in PHP 5.3: Date extensie revisited.

(more...)

Zend Framework tutorial

Rob Allen heeft een tutorial uitgebracht en legt uit hoe je een simpele web applicatie ontwikkelt met het Zend Framework. Hij geeft een simpele introductie tot MVC en hoe je een verschillende ZF componenten samen moet gebruiken. Uiteindelijk kun je albums beheren die werken met een database. In het kort, een uitstekende artikel voor een beginnende ZF gebruiker.

JavaScript Object Notation: The Definite Guide

In de wereld van web services is XML de status quo. Sommigen vinden XML niet gepast voor kleine web applicaties, gezien de omvang van XML data weleens groot kan zijn. Er worden teveel bytes verstuurd voor de data waar het omdraait. Douglas Crockford heeft daarom een nieuw data exchange formaat bedacht. In dit artikel zullen we het uitgebreid hebben over JavaScript Object Notation (JSON).

(more...)