December24
Gårdagens genomgång av exceptions kan kompletteras på många sätt och vis. Nedan beskrivs ett sätt.
Exceptions till Twitter
En tysk galning (Johannes Schlüter) har skrivit en extension för php som sammanbinder exceptions med microblogging-applikationen Twitter. Jag har inte tittat på koden men inläggen på personen i frågas twitter-konto skvallrar om att varje fångad exception tillägnas ett inlägg. Grymt!
Ett varnande finger
Som alltid när något offentliggörs bör man vara extra försiktig så att inte någon sitter och tolkar felen till sin fördel. I sådana fall bör man överväga att logga felen till en databas och därefter hämta dem via RSS istället.
December23
Ikväll (och på jobbet) har temat varit — exceptions!
Se några exempel:
November19
När man sitter och använder klasser man själv inte skrivit kan det vara svårt att veta precis vilka anrop (och i vilka format) som behövs. Om man ska mata in ett flertal värden till en array, t.ex. $db->getById($ids), ska man ange ett flertal via $db->getById(1,2) eller $db->getById(array(1, 2)), eller kanske en blandning: $db->getById(1, 2, array(3, 4))? Designen nedan sväljer allt.
function getById() {
$args = func_get_args();
$one_dim_array = array();
foreach(new RecursiveIteratorIterator(new RecursiveArrayIterator($args)) as $value) {
$one_dim_array[] = $value;
}
return $one_dim_array;
}
Nackdelar:
- Användare tillåts vara lata och undvika konventioner som kan vara effektivare.
- Om man inte särbehandlar de inmatade arrayernas nycklar mister man dem, skriven som funktionen ovan fungerar den bäst om bara en typ av argument ska matas in.
Mitten hämtades från phppro.org.
November4
Detta är riktigt effektivt:
/*
// $var blir bortkommenterad
$var = 'hej hopp';
//*/
$lala = 'poe';
Och för att kommentera bort den första delen:
//*
// $var är inte längre bortkommenterad
$var = 'hej hopp';
//*/
$lala = 'poe';
För att debugga behövs alltså endast ett extra snedstreck innan starttecknet för flerradskommentaren.