Introduction

Ce document décrit de manière détaillée l’application Wikir. Il vous donnera un aperçu des possibilités et de la manière d’utiliser le micro-framework Limonade pour créer vos propres applications.

Auteurs

Prérequis

Pour comprendre ce tutorial, il est nécessaire d’avoir lu le fichier LISEZMOI de Limonade.
Téléchargé le paquet sur : Limonade Wiki Example

Explication du code

Require

require_once 'lib/limonade.php'

Nous faisons appel ici à la bibliothèque de Limonade PHP afin de pouvoir bénéficier de tous les outils du Framework.

Configure

$localhost = preg_match('/^localhost(:d+)?/', $_SERVER['HTTP_HOST']);

Nous testons si l’url est local ou un serveur sur le web, ce qui nous permet ensuite de fixer le mode de l’environnement.

$env= $localhost? ENV_DEVELOPMENT : ENV_PRODUCTION;
option('env', $env);

A l’aide de la fonction option(), on défini l’option d’environnement (env) avec la variable $env.

option('pages_dir', file_path(option('root_dir'), 'pages'));

On crée également une option propre à notre application: pages_dir. Cette option va définir le dossier dans lequel seront stockées les pages du wiki. La fonction file_path(), retourne le chemin absolue sur le serveur du nom de dossier passer en deuxième paramètre.

A noter: les options standards de Limonade sont détaillée dans le LISEZMOI

Dispatch

dispatch('/', 'wikir_home');

La fonction dispatch() permet de lier une url à une fonction.
Ici on route l’url / avec la fonction wikir_home()

dispatch('/:page', 'wikir_page_show');

De même on définit une route que lie le masque d’url /:page à la fonction wikir_page_show().
Par exemple, les urls suivantes suivront cette route:

/ma_page
/ma_nouvelle_page/

Le paramètre nommé :page sera exploitable à l’aide de la fonction params('page').

Wikir_page_show

function wikir_page_show()
{
    $page_name = params('page');
    if($page = WikirPage::find($page_name))
    {
        set('page_name', $page->name());
        set('page_content', $page->content());
        return html('show.php');
    }
    # If page doesn't exist, redirect to new page form
    redirect(url_for($page_name, 'new'));
}

Ici cette fonction fait appelle à une class spécialement crée pour cette application, WikirPage, elle contient plusieurs fonction, certaines sont static et peuvent donc être appelée sans créé une instance de la class, par ex : la fonction find().
Cette class se trouve dans le dossier lib.

Rentrons un peu plus dans le détail de la fonction wikir_page_show() :

$page_name = params('page');
Ici on récupère le paramètre page qui est passé par l'url
if($page = WikirPage::find($page_name))
{
    set('page_name', $page->name());
    set('page_content', $page->content());
    return html('show.php');
}

A l’aide de la conditionnelle if on test si la page existe.
Si la page existe la fonction static WikirPage::find() renvoie une instance de la class WikirPage, on peut donc ensuite utiliser les méthodes de la class.
On peut donc passer des variables à la vue, à l’aide de la fonction set().
La fonction html() passe les paramètres, appelle la vue et affiche le résultat html de la page.
Si elle n’existe on ne rentre pas dans la conditionnelle et le code suivant est exécuté :

# If page doesn't exist, redirect to new page form
redirect(url_for($page_name, 'new'));