Laravel: custom cookie expiration time

The Laravel framework makes a PHP programmers task easier by implementing a lot of features which are pretty much used in every web application. One of those features is authentication, which works like a charm. A part of this feature is remembering a successful authenticated user by setting a cookie.

Continue reading Laravel: custom cookie expiration time

Laravel: processing checkbox

Laravel is a great web application framework with expressive, elegant syntax. Learning a framework can be challenging but the Laravel framework makes a programmers life easier. One thing that got easier is creating and processing submitted forms. One of the more “difficult” form components is a checkbox. Therefor a quick tip how to process them.

Let’s say we want a user to check a checkbox by which he agrees to have read a text:

{{ Form::open() }}
    ...
    {{ Form::checkbox('read_text', 'yes') }}
    {{ Form::submit('Save') }}
{{ Form::close() }}

The checkbox is submitted when the checkbox is checked, otherwise it won’t be submitted. The only thing we have to do to ensure the checkbox is checked, is to see if the key is submitted:

$checked = Input::has('read_text');

If the checkbox is checked this will be true otherwise it will be false. Enjoy the absolute beauty of the Laravel framework!Laravel is een zeer goed PHP framework. De leercurve van een framework kan soms steil zijn, maar het Laravel framework maakt het werk van een programmeur gemakkelijker. Een onderdeel dat gemakkelijker is geworden met dit framework is het maken en verwerken van verstuurde formulieren. Sommige onderdelen van een formulier vereisen echter iets meer werk, waaronder de checkbox. In Laravel is ook dat ondervangen. Daarom een snelle tip hoe om te gaan met checkboxen.

Laten we zeggen dat een gebruiker moet aangeven dat die een tekst heeft gelezen. Dat levert de volgende code op:

{{ Form::open() }}
    ...
    {{ Form::checkbox('read_text', 'yes') }}
    {{ Form::submit('Save') }}
{{ Form::close() }}

De checkbox wordt alleen verstuurd wanneer die aangevinkt is. Wanneer dat niet het geval is, zal deze niet in de verstuurde data terug te vinden zijn. Het enige wat we dus hoeven doen, is te checken of de checkbox verstuurd is:

$checked = Input::has('read_text');

Indien de checkbox aangevinkt is, zal deze variabele true teruggeven, anders is die false.

PHP Namespaces Explained

Organizing your PHP classes can be difficult so I was glad that namespaces were introduced in PHP 5.3.0. The time I learned about namespaces I was programming in Java which utilizes namespaces a lot. After that I didn’t use it for a while so I needed to refresh my knowledge. I found a really good explanation by Dayle Rees and it was that good, I decided to share it on this blog.

PHP Namespaces Explained by Dayle Rees

PHP: alle bestanden uit een directory (inclusief onderliggende directories)

Met PHP is het eenvoudig om alle bestanden uit een directory te halen. Echter is het niet zo eenvoudig om ook de onderliggende bestanden ook gelijk op te halen. Gelukkig bied de volgende functie een oplossing:

/**
 * returns an array which contains all the files from a directory and it's
 * child dirs which has the given extension or returns false if the directory 
 * doesn't exists
 * 
 * @param string $dir path in which the files should be searched
 * @param mixed $ext extension which the files should have 
 * @return mixed
 */
function getFilesRecursive($dir, $ext = false) {
    $files = array();

    // dir must exists, this prevents errors
    if (!is_dir($dir)) {
        return false;
    }

    $handle = opendir($dir);
    while (false !== ($resource = readdir($handle))) {
        if (is_dir($dir . '/' . $resource) && ($resource != '.' && $resource != '..')) {
            $files = array_merge($files, getFilesRecursive($dir . '/' . $resource, $ext));
        }
        else if (!is_dir($dir . '/' . $resource)) {
            if (getFileExtension($dir . '/' . $resource) != $ext)
                continue;

            $files[] = $dir . '/' . $resource;
        }
    }
    closedir($handle);
    return $files;
}

Gebruik je deze functie of kan het misschien wel op een makkelijkere manier? Ik hoor het graag!

Relative urls naar absolute urls

Een website die gebruikt maakt van zaken als mod_rewrite maakt veelal gebruikt van relatieve urls.

Een absolute url bevat het protocol, het domeinnaam (eventueel met subdomein) en het aanvullende pad en/of bestandsnaam. Een relatieve url bevat enkel het pad en/of bestandsnaam.

Als je deze pagina wilt verwerken (denk aan het inlezen van alle items van een pagina), is het nodig om deze relatieve urls om te zetten naar absolute urls. Om dat in PHP voor elkaar te krijgen heb ik de volgende functie gemaakt.

Continue reading Relative urls naar absolute urls