Tài liệu MySQL et CSS- P8 - Pdf 87

leur apparence aux pages ou à des parties de page. Il suffit de créer un
dossier de même nom dans l’application particulière en y insérant un
fichier template modifié, avec le même nom de fichier, pour qu’il soit
utilisé en lieu et place de l’original.
Index.php
Le fichier index.php indique la vue par défaut de l’application, le chemin
vers le fichier xataface-public-api.php et l’URL vers le répertoire de
Xataface sur le serveur. Ensuite, il charge une instance de l’objet Xataface
et l’affiche dans l’interface standard ou une autre interface :
$time = microtime(true);
if (!@$_GET[’-sort’] and @$_GET[’-table’] == ’fichestravaux’){
$_GET[’-sort’] = ’moment desc’;
$_REQUEST[’-sort’] = ’moment desc’;
$_GET[’-table’] = ’fichestravaux’;
$_REQUEST[’-table’] = ’fichestravaux’;
}
if (empty($_GET[’-action’])) $_GET[’-action’] = "list";
require_once ’/var/www/html/dataface-0.7.1/dataface-public-api.php’;
// include the initialization file
df_init(__FILE__, ’http://lintranet/dataface-0.7.1’);
// initialize the site
$app =& Xataface_Application::getInstance();
// get an application instance and perform initialization
$app->display();
// display the application;
?>
conf.ini
Le fichier conf.ini est un fichier texte qui contient la configuration
générale comprenant le codage des caractères, la langue, les coordonnées
de connexion à la base de données MySQL, les tables qui s’afficheront, les
coordonnées de l’authentification et les préférences. Chaque partie dans

10
Les frameworks ou cadriciels PHP
352 • Double Poche PHP & MySQL
Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.
Ou alors, il est possible d’y inscrire une requête SQL qui identifie la
relation entre les deux tables.
__sql__ = "SELECT * FROM table1, table2 WHERE table1.id= table2.id_table1"
Plusieurs relations peuvent ainsi être définies sur ce même fichier, chaque
table étrangère étant identifiée par [table1], [table2]...
valuelists.ini
Ce fichier regroupe les valeurs des champs de sélection (select, checkbox,
boutons radio...) et celles des champs autocomplétés.
Autocomplétion
L’autocomplétion est cette fonction qui, quand on commence
à saisir un mot dans le champ d’un formulaire, fait apparaître une
liste de mots commençant par les mêmes lettres et qui ainsi peuvent
être validés comme valeur du champ.
Ces valeurs sont données sous forme de liste ou par une requête SQL sur
une valeur :
[select_OUI]
__sql__ = "SELECT clef, libelle from select_OUI"
[Creneaux]
M = Matin
A = Après-midi
J = Journée
Classe pour la table
La classe de la table peut être créée quand le besoin de fonctions
originales se fait sentir. Ainsi il peut être nécessaire de formater les dates
dans les champs date ou d’afficher une valeur par défaut dans un champ
quelconque.

}
}
Cette fonction, ici, identifie chaque utilisateur et retourne la permission
qu’il détient. Il est possible d’affiner la granularité en définissant les accès
aux tables et même aux champs d’un formulaire qui dès lors que l’usager
n’y aura pas accès, ne sera pas actif.
Conclusion
Xataface permet de monter un site en quelques minutes. Ce qui prend le
plus de temps est de changer l’interface graphique mais si vous créer juste
une application pour quelques personnes, elle sera opérationnelle immé-
10
Les frameworks ou cadriciels PHP
354 • Double Poche PHP & MySQL
Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.
diatement. Une autre utilisation possible consiste à créer toute l’adminis-
tration d’un site qui lui, se sert de la base de données gérée par Xataface.
C’est une plateforme dont on ne peut plus se passer une fois qu’on y a
goûté. La documentation est encore en anglais mais l’application a été
traduite et la prochaine version sera plus aboutie, avec une traduction plus
complète et une documentation en français.
10.4
CakePHP, c’est du gâteau
Le projet CakePHP (www.cakephp.org, www.cakepourtous.org) a dé-
marré en 2005, avec comme ambition de proposer un Ruby on Rails pour
PHP.
Ruby on Rails ou RoR
Ruby on Rails est sorti en juillet 2004 et a été créé à partir du
langage Ruby qui est un langage de script orienté objet. La sortie
de RoR fut un coup de tonnerre dans la communauté des développeurs
car il répondait exactement aux exigences d’interactivité du Web 2.0. Il

En ajoutant la variable $scaffold (échafaudage) dans le contrôleur, Cake
crée les fichiers par défaut. Il suffit ensuite de les modifier pour les rendre
conformes au résultat désiré.
var $scaffold;
m
Figure 10.6 : www.cakephp.org
10
Les frameworks ou cadriciels PHP
356 • Double Poche PHP & MySQL
Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.
Sous le dossier app, il reste deux dossiers importants : webroot qui
contient tous les fichiers qui apparaissent en vitrine (images, css,
javascript...) et le dossier helpers. Ces helpers ou aides sont des fichiers
PHP qui modifient l’affichage d’un élément dans les vues. Il existe des
helpers natifs pour Cake comme les helpers HTML qui permettent au
développeur d’écrire son code très rapidement. Ainsi pour écrire le code
d’une aire de texte :
$html->textarea(’Note/body’, array(’cols’=>’60’, ’rows’=>’10’));
La notion de rappel (callback) qui a déjà été vue pour Xataface intervient.
Ainsi une action déclenche une nouvelle action qui se déroule avant ou
après.
Cake est une application copiée sur Ruby on Rails ; la conception est
dérivée de Ruby contrairement à Xataface qui est plus axée MySQL et
PHP et respecte davantage l’esprit de Ruby on Rail dans un sens de
légèreté.
10.5
JOOMLA, le meilleur gestionnaire
de contenu
Joomla (www.joomla.fr) est le meilleur gestionnaire de contenu car il est
très complet et utilisé largement. Ainsi, il enrôle de nombreux déve-

10
Les frameworks ou cadriciels PHP
358 • Double Poche PHP & MySQL
Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.
Permissions
Joomla propose un diagnostic de votre site à l’installation. Un
certain nombre de répertoires demandent une permission 0777
pour l’installation. Veillez à remettre 0755, une fois l’installation finie.
Les extensions personnalisent Joomla. Elles sont de quatre types :
¶ Les composants sont des mini-applications, agissant aussi bien en
avant-scène (frontend) qu’en coulisses (backend ou administration) et
rattachées souvent à une ou plusieurs tables de la base de données.
¶ Les modules sont des éléments d’interface qui se trouvent générale-
ment dans les colonnes de droite et de gauche dans la page d’accueil.
Ils présentent souvent une information, des liens d’une manière
différente pour les mettre en valeur.
¶ Les mambots sont des fonctions qui sont actionnées par des événe-
ments et permettent de transformer les informations avant leur
affichage.
¶ Les templates (ou patron, comme des patrons de couture) sont la peau
dans laquelle se glisse l’application. Un patron est composé d’un
fichier PHP, d’images et d’un ou plusieurs fichiers CSS pour régler
l’apparence de votre site.
Choisir Joomla 1.0.15 ou 1.5
La version 1.0.15 est la plus ancienne et propose 2 700 ex-
tensions qui fonctionnent. La version 1.5 est internationalisée et
elle est normalisée pour un développement. Si les extensions sont
primordiales, il vaut mieux adopter l’ancienne version. Si c’est pour un
nouveau site où les extensions ne sont pas fondamentales, il vaut
mieux passer au 1.5.1 directement. Le code a été simplifié et normalisé.

Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.
10.6
Conclusion
Les plateformes sont des aides précieuses pour créer de nouveaux sites,
collaborer et maintenir un site web évolutif mais elles ne peuvent servir
pour reprendre un site déjà fait. PHP est un langage de script très souple
et un site web peut être créé de multiples façons dans l’architecture et la
syntaxe ; les cadriciels imposent un certaine "normalité" dans le code et la
méthode, ce qui rend plus facile la maintenance et accélère les temps de
développement, une fois les conventions assimilées.
Certains d’entre vous souhaiteront aller boire à la source et utiliseront
Ruby on Rails (www.rubyonrails.org) et le langage Ruby (www
.ruby-lang.org/fr/), d’autres employant le PHP5 s’orienteront vers
Symfony (www.symfony-project.org) mais le système reste le même et
le langage PHP a tout à gagner dans le développement et le foisonnement
de ces plateformes.
m
Figure 10.10 : Ruby on Rails
Conclusion
Double Poche PHP & MySQL • 361
Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.
Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.
11
Mettre
de l’ordre
Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.
Vous voilà maintenant avec un certain nombre de fichiers et d’applications
codées sur des centaines de lignes. Vous pouvez continuer à créer de
nouvelles applications, si vous aimez concevoir et développer, ou choisir
de vous pencher sur l’architecture de vos applications et leur maintenance,

11
Mettre de l’ordre
364 • Double Poche PHP & MySQL
Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.
À certains endroits de votre application, vous aurez des idées de
développement, de fonctionnalités supplémentaires pour l’utilisateur mais
il se peut que vous soyez pressé par le temps. Si vous ne pouvez réaliser
votre idée, prenez soin tout de même de l’exposer clairement dans vos
commentaires ou une documentation à part.
Créez un document qui répertorie les fonctions que vous avez conçues
avec leur description. Imprimez-le et placez-le à votre portée.
L’élaboration d’une application se fait en trois étapes : la conception et
l’architecture, la réalisation, les tests. Ces trois étapes sont réalisées par
une personne, ou trois ou quatre personnes disposant d’une plus grande
spécialisation. Les termes varient selon les entreprises et l’aspect privilé-
gié pour chaque tâche.
11.1
Avant
Essayez de prendre quelques jours de réflexion avant d’entrer dans votre
application. Imaginez les différents moments de votre application, esquis-
sez quelques lignes de code sans les développer. Explorer les directions
m
Figure 11.1 : Importance du travail préparatoire
Avant
Double Poche PHP & MySQL • 365
Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.
possibles à chaque aiguillage de votre arborescence. Si vous travaillez
pour quelqu’un, essayez de lui faire préciser ses objectifs et les contraintes
incontournables. Par exemple pour le magazine, il est intéressant de savoir
combien de pages peut faire un article ou une rubrique, combien d’images,

constitue souvent une erreur d’accolade, de parenthèse ou de guillemets.
11
Mettre de l’ordre
366 • Double Poche PHP & MySQL
Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.
Une astuce pour les corriger consiste à faire une recherche multiple avec
votre éditeur de code sur chaque élément de la paire pour les accolades et
les parenthèses. Si le nombre de parenthèses ouvrantes et celui des
parenthèses fermantes ne sont pas identiques, le problème se situe à cet
endroit. Pour les guillemets, en général, la ligne faussement accusée est un
peu plus bas que la fautive. Remontez et vous trouverez un guillemet
manquant, un guillemet double qui répond à un guillemet simple, un
guillemet interne sans signe d’échappement ou un point-virgule man-
quant. Parfois ce ne sera pas si facile.
Vos fonctions ne doivent pas contenir l’opérateur @ qui empêche l’affi-
chage de l’erreur. Vous l’ajouterez une fois les tests effectués, en prenant
soin de mettre un dispositif qui vous prévienne de l’erreur avec une
identification claire du fichier et de l’erreur.
Le débogage est d’abord une analyse. Elle consiste à séparer les éléments
qui composent l’application afin de déceler la cause de l’erreur : séparer
les éléments dans le temps et dans l’espace du code.
Si vous avez déjà testé le code et qu’il fonctionnait jusqu’à tel moment,
remontez la chronologie. La confusion vient souvent du fait que nous
avons accompli plusieurs actions en même temps et que nous pouvons
partir dans une mauvaise direction et compliquer la recherche. L’erreur
s’est-elle produite quand vous avez changé de machine ou de serveur, ou
simplement changé la configuration, ou la version de PHP ?
Vérifiez l’ordre des paramètres dans les fonctions appliquées sur les
chaînes de caractères ou sur les expressions rationnelles.
Tab. 11.1 : Ordre des paramètres

Une fois que tout fonctionne comme vous le désirez, réactivez votre code
secondaire par étapes. L’erreur peut provenir d’une partie du code qui
neutralise l’autre partie. Si vous êtes dans les fonctions de systèmes de
fichiers, vous voulez par exemple obtenir le filemtime en pensant obtenir
le TIMESTAMP de la dernière modification du fichier. En fait, juste avant,
vous devez utiliser le chmod() pour changer les propriétés du fichier.
Cette commande va aussi modifier le filemtime(). Votre logique serait
contradictoire.
Vérifiez vos blocs conditionnels. Avez-vous un signe = ou == ?
Les signes > ou < peuvent être à l’envers.
Soyez méticuleux sur les noms de variables et les chemins de fichier. Une
lettre manquante ou supplémentaire, et votre variable ne renverra aucune
valeur, votre programme ne trouvera pas le fichier ciblé. Assurez-vous que
le fichier ou le répertoire possède les permissions requises (chmod).
11
Mettre de l’ordre
368 • Double Poche PHP & MySQL
Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.
Si vous n’avez rien sur l’écran, affichez le code source dans le navigateur.
Soit vous avez un code HTML tellement corrompu, notamment avec des
tables, que le navigateur n’affiche rien, soit votre requête SQL contient
une erreur et ne retourne aucun résultat. Souvent, le moteur PHP écrit une
phrase d’erreur dans le code source qui n’apparaît pas dans la fenêtre du
navigateur. L’erreur peut générer également un temps d’exécution trop
important.
Si vous avez une erreur d’affichage HTML, vous pouvez récupérer le code
HTML obtenu et l’imprimer pour en voir les erreurs ou le mettre dans un
éditeur HTML wysiwyg, comme Dreamweaver (sigle de What You See
Is What You Get : ce que vous voyez est ce que vous obtenez).
Pour une erreur de requête SQL, lancez la requête dans PhpMyAdmin


Nhờ tải bản gốc
Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status