tanketorsken.dk/2010/11/

Feeds

Vi tar’ den en gang til

Jeg ved ikke hvor mange gange jeg har brugt disse kommandoer, men jeg bliver alligevel ved med at glemme dem! Grr…
Opret arkiv med

tar cvzf archivename.tar.gz foldernametotar

Udpak arkiv med

tar xvzf archivename.tar.gz

Underbevisthed

Skulle lige sikre mig at python 2.5 returnerede floats ved division, men var lidt distræt og endte med at skrive

from __future__ import decision

det kunne være pænt sejt hvis det virkede…

PHP compact funktionen

Jeg kan stadig finde nye små godbidder blandt phps funktioner. Nogen gange kommer jeg ud for en situation hvor en funktion har en række parametrer som den så skal samle i et array og sende videre:

function menu($items, $id, $show_submenus) {
    return render_partial('menu', array(
        'items' => $items,
        'id' => $id,
        'show_submenus' => $show_submenus
    ));
}

Repetitionen er rimelig tydelig, men jeg vil gerne have funktionen “menu” så jeg i min template kan skrive

<div class="some_wrapper">
    <?=menu($items, 'mainmenu', true)?>
</div>

istedet for

<div class="some_wrapper">
    <?=render_partial('menu', array('items'=>$items, 'id'=>'mainmenu', 'show_submenus'=>true)?>
</div>

Løsningen er en php-funktion jeg har overset indtil i dag. Compact tager et vilkårligt antal strenge. For hver streng undersøger den om der er en variabel med samme navn defineret i samme scope, som compact bliver kaldt. Hvis der er, bliver variablens værdi tilføjet til det array compact i sidste ende returnerer. Arrayet compact returnerer har variablens navn som key og variablens værdi som value. Lige hvad der skal bruges til at gøre min menu-funktion pænere.

function menu($items, $id, $show_submenus) {
    return render_partial('menu', compact('items','id','show_submenus'));
}