La classe qui définit le widget va utiliser plusieurs fichiers. Par convention, on organisera les fichiers utilisés par le widget de cette façon, en sachant que Exemple est le nom du widget.
Exemple.php : Fichier contenant le code
PHP du widget, on y définira une classe ayant pour nom Exemple
Exemple/ : Ce répertoire contiendra toutes les ressources de notre widget
Exemple/defaut/ : Ce répertoire contiendra les ressources et les templates utilisés par défaut
Exemple/i18n/ : Ce répertoire contiendra les fichiers de traduction pour tous les labels utilisés dans le widget
Exemple/i18n/fr_FR.php : Fichier contenant la traduction française
Exemple/i18n/en_
GB.php : Fichier contenant la traduction anglaise
Dans le cas où le widget possède plusieurs thèmes, on trouvera, dans le répertoire des ressources, des répertoires correspondant au nom de ces thèmes.
Structure idéale pour la création d'application “Pxxo” :
index.php : point d'entrée unique d'exécution. Ce script définit la configuration de l'application et il lance l'objet représentant l'application.
classes/ : le répertoire contenant les fichiers de classes
PHP.
data/ : le répertoire des données utilisées par les classes
PHP.
pear/ : le répertoire contenant les classes PEAR. Ce répertoire sera uniquement présent pour les applications autonomes.
rsc/ : un répertoire public (visible par le navigateur) qui sera utilisé par pxxo pour mettre à disposition du navigateur les ressources du composant
tmp/ : un répertoire privé que l'on utilisera pour stocker les fichiers de cache et les fichiers de sessions. Ce répertoire pourra évidement être déplacé en dehors de l'arborescence publique.
templates/ : le répertoire contenant les répertoires de ressources de l'ensemble des classes
PHP.
.htaccess : fichier de réglages pour le serveur Apache, notamment pour mod_rewrite.
Concevoir un widget avec Pxxo consiste à dériver (ou surcharger) la classe Pxxo_Widget.
La classe Pxxo_Widget admet 2 paramètres :
le premier est un tableau de clé et de valeurs
le second est le nom complet du fichier dans lequel on déclare la classe qui surcharge la classe Pxxo_Widget.
Par convention, les widgets prennent comme paramètres de construction un tableau de paramètres.
Exemple :
// En PHP 5
class Exemple extend Pxxo_Widget
{
function __construct($params) {
parent::__construct($params, __FILE__);
}
}
// En PHP 4
class Exemple extend Pxxo_Widget
{
function Exemple($params) {
$this->Pxxo_Widget($params, __FILE__);
}
}