Commencer en 30 minutes

Avant de commencer

I-Radian est un framework destiné aux développeurs. Biensur vous ne ferez pas de site complet en 30 minutes, mais le temps de développement sera bien moins long que si vous faisiez votre site à partir de rien ou à partir de certain framework. I-Radian a une prise en main extrèmement rapide.


Haut de page

Conditions requises

Pour fonctionner, I-Radian nécessite un serveur avec PHP 5.3.* ou plus. La version minimale d'I-Radian n'utilise pas de base de donnée.


Haut de page

Installation

I-Radian se trouve normalement sous forme d'un fichier archive contenant :

Si vous n'avez pas tout ceci, vous pouvez télécharger l'archive sur le site I-Radian.

Une fois le fichier désarchivé dans un répertoire de travail PHP, aller a l'URL correspondante. Pour l'exemple, on va dire que vous utilisez la configuration "classique" d'Apache sur linux et que le contenu de l'archive se trouve dans le dossier /var/www/mon_site/. Vous devez alors aller a l'URL http://localhost/mon_site. L'application vous redirige automatiquement vers http://localhost/mon_site/project_pannel.php?url=install. Vous êtes maintenant face à la page d'installation du projet. Les champs sont pré-remplis et il suffis de survoler les points d'interrogations pour avoir plus de détails sur le champs correspondant. Pour cet démonstration, laissez la configuration par défaut. Une fois que vous avez cliquer sur "Créer", le site s'instal puis, si tout s'est bien déroulé, vous êtes redirigé vers votre site après 3 secondes.


Haut de page

En cas de problèmes

Normalement, l'installation ne pose pas de problèmes (c'est quand même prévu pour). Cependant, si vous en avez, vérifiez que PHP a bien les droit d'écriture dans le dossier ainsi votre version de PHP (5.3 minimum). Ne laissez que le contenu de base de l'application (dossier core et les fichiers .htaccess, index.php, project_pannel.php). Essayez éventuellement de supprimer vos cookies de sessions (en redémarrant votre navigateur par exemple). Si les problèmes persistent, vous pouvez contacter la communauté sur I-Radian.


Haut de page

Création

Comme vous pouvez le constater, l'installation à créé pas mal de dossiers. Voici le détail ce qui a été créé (les noms des dossiers ci-dessous ne sont valides que si vous avez laissé l'installation par défaut) :


Haut de page

Et maintenant, on commence !

I-Radian est basé sur la mise en parrallèle de méthodes et de templates. Pour comprendre, ouvrez les fichiers suivant : /var/www/mon_site/site_front/accueilAction.php et /var/www/mon_site/site_front/html/accueil/index.htm. Le templates qui va avec la méthode AccueilAction::doindex se trouve dans le fichier html/accueil/index.htm. Il est ainsi facile de retrouver les templates correspondant aux méthodes que vous utilisez et vice versa.

Note : dans la configuration par défaut, vous avez défini les sites, action et méthodes par défaut (front, accueil, index). Ainsi, pour accéder à la méthode AccueilAction::doindex, vous pouvez entrer les URL suivantes : http://localhost/mon_site/accueil/index, http://localhost/mon_site/accueil, http://localhost/mon_site/index


Haut de page

Créer une nouvelle méthode

En suivant la logique ci-dessus, il suffis de créer une méthode nommée comme il faut (do*****) dans la classe AccueilAction puis de créer le template correspondant. Ajoutez le code suivant dans la classe AccueilAction :


<?php

    
public function doToto ($aParams) {
    }

puis créez le fichier /var/www/mon_site/site_front/html/accueil/toto.htm :

Hello world !<br />
<a href="<?php echo HTML_ROOT_PATH ?>">Home 1</a><br />

<a href="<?php sLinkTo('accueil') ?>">Home 2</a><br />
<a href="<?php sLinkTo('index') ?>">Home 3</a><br />
<a href="<?php sLinkTo('accueil/index') ?>">Home 4</a><br />

<a href="<?php sLinkTo('toto') ?>">Toto 1</a><br />
<a href="<?php sLinkTo('accueil/toto') ?>">Toto 2</a><br />

Pour accéder à ce nouveau contenu, allez à l'URL http://localhost/mon_site/toto. Si vous cliquez sur un lien «Home», vous vous retrouvez sur la page d'accueil. Si vous cliquez sur un lien «Toto», vous vous retrouvez sur la même page. Peu importe le template dans lequel vous êtes, ces liens sont fixes (sauf si vous créez l'action ou le site Toto).


Haut de page

Créer une nouvelle action

I-Radian est segmenté en 3 niveaux : les sites, les actions et les méthodes. Chacun de ces segments correspondant à une partie de l'URL. Nous venons de voir comment ajouter une méthode, nous allons maintenant créer une nouvelle action. Créez le fichier /var/www/mon_site/site_front/userAction.php :


<?php

class UserAction extends Action
{
    public function 
__construct ()
    {
        
self::helpers(array('error''liquefy''partial''url'));
    }
    
    public function 
doindex ($aParams=array())
    {
    }
}

ainsi que le template : /var/www/mon_site/site_front/html/user/index.htm :

Nouvelle action (visiblement dédié à la gestion des utilisateurs)

Vous aurez sans doute compris que pour voir le résultat, vous devez aller à l'URL http://localhost/mon_site/user et qu'en rajoutant une méthode "doToto" dans la classe UserAction, vous y aurez accès via l'URL http://localhost/mon_site/user/toto.


Haut de page

Créer un nouveau site

Ajouter un site à votre application est un peu plus compliqué que la création d'une méthode ou d'une action. Vous avez le choix : soit en passant par l'administration du projet (project_pannel.php), soit en copiant/collant le dossier site_front et en le nettoyant, soit en le créant à partir de rien. Afin que vous compreniez le fonctionnement, nous allons le créer a partir de rien.

Commencez par créer le dossier «site_test» à la racine du projet. Puis allez a l'URL http://localhost/mon_site/test. Vous voyez alors une erreur apparaître :

L'erreur suivante s'est produite :
Erreur : fichier de configuration manquant : 
D:\www\htdocs\mon_site\site_test\config\locals_definer.js

Il n'y a plus qu'a créer mon_site/config/dev_globals_definer.js:

{
	"title"	: "Site de test"
}

Actualisez la page, l'erreur a changé :

L'erreur suivante s'est produite :
Le fichier /var/www/mon_site/site_test/accueilAction.php est introuvable. Impossible d'interprèter l'URL.

Et bien... c'est parti :



<?php

class accueilAction extends Action
{
    public function 
__construct ()
    {
        
self::helpers(array('error''liquefy''partial''url'));
    }
    
    public function 
doindex ($aParams=array())
    {
    }
}

Actualisez la page, l'erreur a encore changé :

L'erreur suivante s'est produite :
Template introuvable : D:\www\htdocs\mon_site\site_test\html\accueil\index.htm

Normal :

Hello world!

Actualisez la page, l'erreur a encore (encore) changé :

L'erreur suivante s'est produite :
Template introuvable : D:\www\htdocs\mon_site\site_test\html\layout.htm

Vous aurez compris... :

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>

<?php echo $this->aVars['TITLE'] ?>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<?php echo $this->aVars['META'] ?>
<?php echo $this->aVars['BASE'] ?>
<?php echo $this->aVars['CSS'] ?>
<?php echo $this->aVars['SCRIPT'] ?>

</head>
<body>
	<?php echo $this->aVars['CONTENT'] ?>
</body>
</html>

Note : il se peux que vous rencontriez des problèmes de session lors de la création du site. Redémarrez votre navigateur ou supprimez simplement le cookie de session.

Et voila, vous avez ajouter un site à votre application. Notez que lorsque le site n'est pas celui par défaut, vous devez faire les liens de la façon suivante :

<?php echo sLinkTo('site/action/method') ?>

Haut de page

Un peu plus loin

Il peut arriver que vous ayez besoin d'exécuter un morceau de code avant ou après l'affichage de chaque pages. Naturellement, il serait compliqué pour la maintenance d'appeler une fonction au début de chaque méthodes des classes actions, ou même dans le constructeur et/ou le destructeur. Afin de répondre à ce problème, I-Radian offre plusieurs solutions.

Tout d'abord, il est possible d'inclure automatiquement un fichier. Créez le fichier /var/www/mon_site/includes/verif_connexion.php


<?php

class userVerif {
    public function 
test ($aParams)
    {
        echo 
__METHOD__;
        echo
'<pre>';print_r$aParams );echo'</pre>';
    }
}

function 
testUser ()
{
    echo 
__FUNCTION__;
}
echo 
__FILE__ .' ('__LINE__ .')<br />';

Puis dans le fichier /var/www/mon_site/config/dev_globals_definer.js, modifiez :

{
	[...]
	"include"		:	["verif_connexion.php"],
	[...]
}

Puis actualisez n'importe quelle page du site. Vous l'aurez deviné, le fichier (qui se trouve forcément dans le dossier includes du projet) a été inclus. On aurait pu appeler directement la fonction testUser et la méthode userVerif::test directement dans le fichier, mais ca n'aurai pas été très propre. Pour cela, il faut utiliser les exec_before et exec_after :

{
	[...]
	"exec_before"	:	{
		"func"	:	[{
			"name"	: "testUser"
		}],
		"meth"	:	[{
			"class"		: "userVerif",
			"method"	: "test",
			"params"	: ["parametre"]
		}]
	},
	[...]
	"exec_after"	:	{
		"func"	:	[{
			"name"	: "testUser"
		}],
		"meth"	:	[{
			"class"		: "userVerif",
			"method"	: "test",
			"params"	: ["parametre"]
		}]
	}
	[...]
}

Notez que vous pouvez tout a fait faire les includes, les exec_before et les exec_after dans le fichier /var/www/mon_site/config/dev_globals_definer.js ou dans le fichier /var/www/mon_site/[nom_du_site]/config/locals_definer.js. La seule différence sera que les appels se feront pour un seul site du projet.


Haut de page

Faire des liens

Les liens sont le nerfs de la guerre pour un développeur. Dans I-Radian, l'URL de la racine du site est défini dans la constante HTML_ROOT_PATH et vous pourrez toujours accéder a une méthode de la manière suivante :



<?php

echo HTML_ROOT_PATH .'/'. [site] .'/'. [action] .'/'. [methode];

Mais il est préférable d'utiliser la méthode Action::makeDirectLink qui retourne une URL relative et permet aussi d'utiliser les liens pré-définis dans le fichier /var/www/mon_site/config/links.js. Et puisque c'est un peu long d'appeler constament Action::makeDirectLink(HTML_ROOT_PATH . 'mon_site/mon_action/ma_methode');, I-Radian est livré avec un «helper» qui appel directement cette méthode :



<?php

sLinkTo
([site] .'/'. [action] .'/'. [methode]);

Note : sLinkTo fait directement un echo, si vous voulez juste le retour, appelez linkTo.


Haut de page

Et le reste de l'URL ?

Vous pouvez tout à fait appeler une URL du type /mon_site/mon_action/ma_methode/parametre_1/parametre_2. Les deux paramètres sont passé directement en paramètre à votre méthode :


<?php

class AccueilAction extends Action
{
    
// [...]
    
public function doIndex ($aParams)
    {
        echo
'<pre>';print_r$aParams );echo'</pre>';
    }
}

Ainsi, vous pouvez créer des URL complètes en passant en paramètre des identifiants ou des chaines de caractère.

Rappel : rien ne vous oblige a mettre les URL complètes puisque vous avez défini un site, action, méthode par défaut.


Haut de page

Les helpers

Les helpers permettent d'inclure des fichiers localement. Pour les inclure, vous pouvez utiliser les méthodes static Action::helper(String) ou Action::helpers(Array). Quelques helpers sont déjà défini dans I-Radian : celui de gestion des erreurs (qu'il est impératif de laisser pour avoir un debug complet en cas d'erreur), un permettant d'inclure des templates partiels ( «partials» ), un définissant les fonctions d'accès a Action::makeDirectLink et un autre permettant de faire des URL propres à partir de string. Vous pouvez en créer autant que vous voulez, mais puisqu'il est possible de les inclure partout, vérifiez si vos classes et vos fonctions n'existent pas déjà.

Les helpers sont nommés ainsi : «[nom]_helper.php»; pour les inclures, il suffit d'appeler Action::helper('[nom]'). En général, les helpers sont inclus directement dans le constructeur d'une action. Voici quelques conseils pour définir proprement les helpers :




Fichier pays_list_helper.php :
<?php
return array(
    
'France',
    
'Etats-unis',
    
'Angleterre',
)
?>


Fichier verif_user_connect_helper.php :
<?php
if ( ! function_exists('verifUserConnect') ) {
    function 
verifUserConnect ()
    {
        return 
User::IsConnect();
    }
}

Haut de page

Les sessions

I-Radian met à disposition une classe destinée à la gestion des sessions : SessionUser. Les sessions sont sécurisées sur l'IP du visiteur afin d'empècher le vol de cookies. Vous trouverez la documentation complète ici.


Haut de page

C'est fini !

Ce premier survol d'I-Radian est fini. Vous maîtrisez désormais succintement le framework, il ne reste qu'à vous d'approfondir vos connaissances. Il est vivement conseillé de lire la partie dédiée aux modules, point qui n'a même pas été effleuré dans cette première approche...

Prenez du plaisir à dévelloper avec I-Radian et n'hésitez pas à demander de l'aide sur le forum du site.