Overriding core classes with PHP

20/04/2012 | 09:50 | Code

No idea if it’s possible what I want, but I’m working on an application that requires custom classes to override the core functionality, if these files exist. So as an example, this is my current file structure:

  • app
    • core
      • User.php (class User)
    • custom
      • User.php (class User)
    • index.php (class Bootstrap with autoLoader)

Now I want to check if “custom/User.php” exists and accordingly include and use this. It should extend the core User class.

My scripts looks like this at this moment:

core/User.php

<?php
 
namespace Core;
 
class User
{
	public function getName() 
	{
		return 'Pieter';
	}
}

custom/User.php

<?php
 
namespace Custom;
 
class User extends \Core\User
{
	public function getName() 
	{
		return 'Mr. '.parent::getName();
	}
}

index.php

<?php
 
class Bootstrap 
{
	public function __construct() 
	{
		spl_autoload_register(array('Bootstrap', 'autoLoader'));
 
		$user = new \Custom\User();
		print_r($user->getName());
	}
 
	private function autoLoader($className)
	{
		$fileName = str_replace("\\", "/", strtolower($className)).".php";
		if (file_exists($fileName)) {
			require_once $fileName;
		}
	}
}
 
new Bootstrap();

The example above works fine, but when I delete the Custom\User class it stops working. This is correct behaviour because I’m trying to make an instance of the \Custom\User class which not exists. But what is the best way to change the autoloader to load the correct Core class?

I think there are 2 possibilities:

  1. Working with className variables. First check if the file exists and attach the correct namespace+classpath to the variable and keep working with that variable to load the class.
    //I know the file_exists example won't work because of 
    //the slashes but this is just an example
    $className = '\Custom\User.php';
    if (!file_exists($className)) {
    	$className = '\Core\User.php';
    }
    $user = new $className();
  2. Create a static function like getService(‘User’) that handles all discussed matter above and returns the correct class.
    public static function getService($classObj) {
    	$className = '\Custom\\'.$classObj.'.php';
    	if (!file_exists($className)) {
    		$className = '\Core\\'.$classObj.'.php';
    	}
    	return new $className();
    }
    $user = Register::getService('User');

I think the second option is the best one but is there some easier, more proper way to do this?
Thanks in advance.

Add procedure or function to database with PhpMyAdmin

19/04/2012 | 07:10 | Code

Script before
/* Example script */
DROP PROCEDURE IF EXISTS calculateLength $$
CREATE PROCEDURE calculateLength ()
BEGIN

SELECT value FROM `table` WHERE 1=1

END;
/* End script */

Solution

  1. Go to any SQL tab in phpMyAdmin.
  2. Directly below the SQL text area you’ll see a text input labeled “Delimiter.” In that field, enter “$$”.
  3. I can then paste in this slightly-modifed SQL script. Notice, I’ve removed the DELIMITER statements. phpMyAdmin handles that for me.

/* Example script */
DROP PROCEDURE IF EXISTS calculateLength $$
CREATE PROCEDURE calculateLength ()
BEGIN

SELECT value FROM `table` WHERE 1=1

END $$
/* End script */

Van Hool

6/01/2012 | 06:13 | All

Iedereen heeft waarschijnlijk gisteren de berichten gelezen over Van Hool die ‘ergens’ in het buitenland 300 bussen gaat maken. Niet getreurd, de andere 200 autocars worden bij ons zelf ontwikkeld. De vakbonden zijn tevreden dat er nog 200 bij ons gebouwd gaan worden en dat ze niet alle 500 onmiddellijk in het buitenland gemaakt. Toch respect voor de vakbond van Van Hool dat ze niet gaan dreigen met stakingen want in dit geval kan je er toch niet veel aan veranderen.

De reden dat ze naar het buitenland is omdat de loonkost daar een stuk lager (ferm stuk) is dan bij ons en deze bussen moeten goedkoop geleverd kunnen worden. Waar denkt men dat ze de volgende bussen gaan bouwen als ze merken dat ze daar aan een veel mindere prijs dezelfde kwaliteit kunnen leveren… Inderdaad, ik moet de communicatie verantwoordelijke van Van Hool proficiat wensen. Perfect gekaderd dat dit maar een éénmalige gebeurtenis is en dat dit niet meer zal voorkomen. Geloof je dat nu zelf? Mocht ik CEO zijn van Van Hool zou ik wel weten hoe we dat best aanpakken. De bussen hier laten ontwerpen door de ingenieurs en de bussen laten maken door de lage loonlanden.

We moeten echt dringend het volledige systeem van onze arbeidsmarkt herbekijken, optimaliseren want minder en minder grote bedrijven zullen hier nog gevestigd worden. De knowhow zal van hier komen maar de arbeidsmarkt zal in het buitenland liggen. Begin eerst maar al eens met de index te herbekijken, is een goed systeem voor de werkende mens maar voor bedrijven is dat de doodsteek… en nog zoveel meer.

Er zal keihard gewerkt moeten worden in 2012 door onze regering, een regering van verliezers die alle bovenstaande problemen de vorige jaren in de hand hebben gewerkt en altijd een oogje hebben dichtgeknepen. Ik heb mijn twijfels, de toekomst zal het uitwijzen.

Siri!

27/12/2011 | 07:47 | Me

Siri is de max maat!

Success… What it Really Looks Like…

28/10/2011 | 07:28 | All, Me

So true.

Een bekerwedstrijd vol emoties (AA Gent – Club Brugge)

27/10/2011 | 07:10 | All

Gisterenavond gekeken naar AA Gent – Club Brugge voor de achtste finales van de Beker van België. Het was een match vol van de emoties, hieronder een kort overzicht van hoe ik de match heb beleefd en hoe ik van de ene emotie in de andere emotie ben terecht gekomen.

Na enkele minuten kopt Coulibaly de bal tegen de netten, automatisch in hoofd had ik het gevoel van damn! Komt niet goed, normaal scoort Club altijd een vroege goal, nu was het omgekeerd. Daarna komt er na 19minuten een kegel van Zimling, een prachtig shot in de winkelhaak en komt de stand op 1-1. Oef! We kunnen opnieuw beginnen.

Het spel van Club Brugge werd beter & beter en net voor de rust scoren Dirar en Donk en wordt het 1-3. Match gespeeld zou je denken, euforie alom. Ondertussen ook al het bericht gekregen dat Vargas opnieuw geblesseerd is en klein beetje leedvermaak er ook aan toegevoegd. (in het heetst van de strijd worden er dingen gezegd die achteraf beter niet gezegd worden, it’s all part of the game). Na de rust was Club nergens, een te vroege goal van ‘again’ Coulibaly zorgde voor een 2-3 stand. Club was nergens, wat dus ook al snel resulteerde in de 3-3. Klets, opnieuw een klap in het gezicht. De vraag; hoe kan je nu een 1-3 stand uit handen geven. We hebben dat al 7x meegemaakt dit seizoen en toch gebeurd het opnieuw! Slecht kom je dan, echt slecht. Waarom gooi je niet alles dicht van achteren, ik mis je Hoefkens.

Als kers op taart mag Thijs in de 81ste minuut een vrije trap geven en krult hij hem nog binnen, 4-3. Weg beker, kapot droom. Ontgoocheling, dieptepunt van de avond. Boosheid, schuld van de trainer, arbiter, te zwaar wedstrijdschema. Alles heb ik boven gehaald om het goed te spreken, maar het maakte niks meer uit. Naarmate de minuten verder en verder tikten werd het duidelijk, de wedstrijd is verloren.

Tot in de 93ste minuut, uit de doden herrezen Vleminckx een kopbal van Meunier binnen kopt en de 4-4 op het scorebord zet. Verlengingen, yes! Het gevoel dat dan door mijn lichaam ging als Club supporter was onbeschrijfelijk. We waren onoverwinnelijk, dit moest de ommekeer worden van enkele slechte matchen (Birmingham, Kortrijk). Na zo’n afsluiten van de wedstrijd, konden verlengingen geen probleem meer vormen. Erop en erover!

Met het drukke wedstrijdschema dat ze al achter de rug hadden was het fut compleet uit de ploeg in de verlengingen, Vadis kon geen meter meer vooruit en de fut was uit de ploeg verdwenen. Gent speelt geen Europees en heeft dus meer slagkracht dan Brugge, resultaat: 4 prachtige kansen voor AA Gent om het af te komen. Club kwam niet meer over en ging het wel oplossen in de penalty’s. De stress in deze fase van de wedstrijd was te snijden. Als AA Gent kansen mist voor open doel zeg je: ‘fuck, daar komen we goed weg’.

Helaas, de penalty’s kwamen eraan. Ik zat op het puntje van mijn zetel, op van de stress. Nagels had ik al lang niet meer. Je ziet de trainersstaf druk in gesprek met elkaar, wie gaat er trappen? Vleminckx, Zimling, Refaelov, Vasquez,… En dan het moment van de waarheid!

Na 4 penalty’s was de stand 2-2. Al 2x keihard gestorven van de stress. Tot de bal op stip komt van AA Gent voor de 3-2 en ze missen. Yes! Tis binnen, riep ik. Hoera, hoera. Euforie sloeg al snel weer over in ontgoocheling want Refaelov mistte de volgende penalty. Klets, het moment van de waarheid voor Club, weer de kop ingedrukt. Nadien scoorde Brüls (matchwinnaar) en kwam de bal van Vleminckx op de stip. Die was te gefrustreerd (en een beetje te arrogant) om die penalty vlekkeloos binnen te trappen. Het resultaat is gekend. Vleminckx mist en AA Gent gaat door in de beker. Weg droom.

Die avond, 26/10/2011, ben ik 2 jaar ouder geworden in de zetel. Langs deze weg wil ik ook Veerle bedanken voor de steun tijdens deze match.

Tot volgend jaar!

 

Washington – Lancaster – New York!

30/09/2011 | 22:22 | Me

Zoals je waarschijnlijk wel al weet gaan Veerle en ik volgend jaar trouwen. Na een huwelijk volgt meestal dan ook een huwelijksreis en daar zijn we tot een besluit gekomen dat we de eerste x naar de USA gaan! We willen dat eigenlijk al allebei enkele jaren doen maar het is er nooit echt budgettair van gekomen door de bouw en de vele bijkomende werken (tuin, oprit, omheining).

Beetje zitten zoeken op internet hoe we het best gingen aanpakken en dan maar een roadmap uitgezocht. We vertrekken eerst naar Washington (White House!) voor enkele dagen rijden dan door naar Lancaster (Amish People) en dan rijden we naar New York City, the city that never sleeps! We zijn zo’n 10 dagen weg :-)

Wanneer we in New York aankomen hebben we afgesproken met Wouter & Ruth dat we nog enkele dagen samen de stad kunnen bezoeken, Wouter & Ruth vertrekken enkele dagen vroeger of ons en zo kunnen we ook eens hun Amerikaanse vrienden ontmoeten!

We hebben een hele drukke planning gedurende die 10 dagen, rust zal er niet echt inzitten maar daar hadden we eigenlijk geen nood aan. Een echte citytrip zagen we meer zitten dan weer zo 10 dagen op uw leeg gat in de zon gaan zitten, niets doen. Het zijn keuzes natuurlijk.

Het is nog enkele maanden voor we vertrekken maar we kijken er toch al serieus naar uit! Nu oppassen dat we niet meer uitkijken naar de reis dan naar den trouw maar in maart 2012 staan ons schone dingen te wachten! ;-)

Voor reistips en advies, laat gerust iets weten!

Rellen en ook een beetje Moureaux

10/08/2011 | 21:50 | Me

Zoals iedereen wel al weet zijn het de laatste dagen zware momenten voor Londen. Een bende idioten slaan de boel kort klein, steken alles in brand en dat omdat de politie één iemand heeft neergeschoten. Veel informatie over die schietpartij is er niet bekend maar het was voldoende om de lont aan te steken van het zinloos geweld. Puur zinloos geweld. Dit kan toch niemand goed praten, hier moeten zware straffen opgeplaatst worden.

Vandaag kwam dan plots Moureaux met het bericht dat hij ook komende rellen in Brussel niet wil uitsluiten. Van een U-turn gesproken, enkele weken geleden zat hij nog bijna wenend te roepen dat er niets aan de hand is en dat we niet altijd moeten vitten op hem en nu gaat hij het een beetje rondbazuinen… Je moet juist zo’n dingen in de pers beginnen vertellen, geef hen anders de pap in de mond.

Enkele dagen/weken geleden stond er een bakkerij in Molenbeek in brand en begonnen jongeren onmiddellijk de politie en brandweer met stenen te gooien. Gezellig is anders zou ik zeggen. Hoeveel zo’n feiten zouden er dan nog niet gebeuren waar we helemaal geen weet van hebben. Ooit zal hetzelfde gebeuren met Brussel. Ooit zal er één agent iemand neerschieten en zal exact hetzelfde gebeuren als in Londen. Het is gewoon nog wachten op dat ene moment, en ja het komt er aan… zeg niet dat ik het niet gezegd heb.

Tour de Crash

11/07/2011 | 07:21 | Me

Gisteren zat ik met verbazing te kijken naar Vive le Vélo. Door omstandigheden had ik de wedstrijd in de namiddag niet kunnen bekijken en heb ik maar pas ‘s avonds laat kunnen inschakelen. Ik viel van de ene shock in de andere! What the hell, Jurgen Van den Broeck uit de tour? Mijn favoriet, neen… dat kan niet waar zijn: hoe, wat, waarom? Wielrenners omver gereden door een wagen, Vinokoerov uitgeschakeld wegens een val, Frederik Willems zijn sleutelbeen gebroken, Zabriskie uitgeschakeld, wow. Het werd stil, wat was er allemaal gebeurd? Mijn volledige MegaBike ploeg was in de vernieling gereden. :-/

Gelukkig hebben we nog Karl Vannieuwkerke en Michel Wuyts om alles haarfijn te gaan uitleggen in een top programma, Vive le Vélo. Ja, dat zijn programma’s waar we U mogen tegen gaan zeggen. Eindeloos respect voor het werk die mensen daar verzetten. Geen respect voor die amateurs van France2 die nog liever wielrenners omver rijden dan hun eigen fucking spiegels eraf rijden. Een echte schande en zoals Michel het zei, een proces waardig. Dit is een aanslag en kan niet gerelativeerd worden. Die jongens Hoogerland en Fletcha werden gekatapulteerd in de berm door die terrorist, gelukkig zonder zware kwetsuren. Langs de andere kant mag Hoogerland ook geen sterke uitspraken/proces gaan doen over de Tour organisatie want dan zou Vacansoleil volgend jaar wel eens de Tour kunnen missen en dat zou een ramp zijn voor de ploeg. Sta daar maar eens bij stil, omvergereden worden en toch zeggen dat het niet zo erg was om toch volgend jaar opnieuw te mogen deel te nemen. kut, kutwereld.

En dan, onze vriend, Jurgen Van den Broeck. Mijn held, mijn topfavoriet. Weg, de dijk binnen na een val. Maanden keihard labeur, in weer & wind gaan trainen, hoogtestages, geen druppel alcohol, om dan na één seconde van onoplettendheid te vallen. Alles weg, niets meer. Afgelopen, huiswaarts… vaarwel podium en droom. Ik hoop dat hij hier de kracht zal uithalen om er nog een jaar tegenaan te gaan en nog beter te worden dan het jaar ervoor. Uit de recente ontwikkelingen binnen Omega-Pharma zal de ploeg volgend jaar ook beter gebouwd kunnen worden rond hun kopman. Mannen zoals Sebastian Lang, Jelle Vanendert, Jürgen Roelandts en zoveel anderen moeten geëerd worden voor hun harde werk voor hun kopmannen, zij verdienen dan ook een groots respect.

En zoals ik gisteren las op Twitter:

Gisteren was een zwarte dag voor de Tour. Maar we kijken vooruit, alles op Gilbert. Voor groen. Komaan Gilbert!

Het Belgische kampioenschap – betalen voor de koers?

27/06/2011 | 07:16 | Me

Gisteren was het goed weer en wisten we niet onmiddellijk wat gedaan. Dus kwamen we op het lumineus idee om eens naar het Belgisch kampioenschap wielrennen af te zakken om een spannende koers te zien. Het was namelijk vlak bij de deur in Hooglede-Gits. Kleine 10 minuten rijden en we waren er.

We gingen kijken op de markt in Hooglede en dus daar in de buurt ook onze wagen geparkeerd en naar het parcour afgezakt. Eénmaal in de buurt van het parcour aangekomen waren er plots allemaal dranghekken en mocht je betalen om binnen te komen. We stonden perplex, betalen voor koers? Ja meneer, 15eur persoon. Ik herhaal 15eur per persoon, het was ondertussen al tegen 16uur aangelopen en hoogstens nog 1uurtje koers. Met 2 personen is dat 30eur voor de koers, wat dus onnoemlijk veel geld is… Maar als je van Hooglede bent mag je gratis binnen, meneer. Dat is fijn, blij om te weten…

Gierig zoals we zijn zijn we terug naar onze wagen gewandeld en een andere plaats gaan opzoeken. Misschien kon je wel ergens aan het parcour via de binnenbanen waar je niet moest betalen, je kan maar proberen. Jammer maar helaas, nergens maar dan ook nergens kon je gratis kijken naar de koers. Dan maar terug naar huis gereden en in onze zetel op een zonnige zondagnamiddag naar de koers gekeken…

Betalen voor koers… als we zo gaan beginnen zal het snel gaan veranderen. Dan kan je even goed de Gentse Feesten ook betalend maken voor niet-Gentenaars of Izegem Zomert…