Ce tutoriel est en cours de rédaction. Cela signifie qu'il est susceptible d'être incomplet, ou inexact.
La mise en page Markdown
Markdown est un langage de balisage léger utilisé au sein de la documentation Symfony. (Traduction française de la syntaxe)
Il est important de garder à l'esprit que la pré visualisation du document ne sera pas l'exacte image du document définitif. Je m'efforcerais de montrer les deux effets (pré visualisation et publication) lorsqu'ils seront différents. Si ce document vous semble incomplet, n'hésitez pas à le mettre à jour.
Voici quelques éléments importants
La balise principale
Tout document s'appuyant sur Markdow doit posséder la balise suivante
{{{
#!WikiMarkdown
[Texte formaté avec Markdown ici]
}}}
Mise en forme des polices
* *italique* ou _italique_ * **gras** ou __gras__ * ***gras et italique*** * `code`
donnent :
- italique ou italique
- gras ou gras
- gras et italique
-
code
Les titres
Les '#' à droite sont optionnels
Titre principal =============== #Titre principal# Titre de niveau 2 ----------------- ## Titre de niveau 2 ## ### Titre de niveau 3 ### #### Titre de niveau 4 #### ##### Titre de niveau 5 ##### ###### Titre de niveau 6 ######
donnent :
Titre principal
Titre principal
Titre de niveau 2
Titre de niveau 2
Titre de niveau 3
Titre de niveau 4
Titre de niveau 5
Titre de niveau 6
Les liens
* [Symfony](http://symfony-project.com) * [Wikipédia] [1] (Le lien fait maintenant référence automatiquement à chaque "Wikipédia" encadré par [] et son indice : [Wikipédia][1]) [1]: http://fr.wikipedia.org (doit être placé en fin de balisage Markdown)
donnent :
- Symfony
- Wikipédia (Le lien fait maintenant référence automatiquement à chaque "Wikipédia" encadré par [] et son indice : Wikipédia)
Les listes
Un seul type de liste est supporté. Toutes les lignes doivent être alignées
* Item 1 * Item 2 * Item 3 ou - moins 1 - moins 2 - moins 3 ou + plus 1 + plus 2 + plus 3
donnent :
- Item 1
- Item 2
- Item 3
ou
- moins 1
- moins 2
- moins 3
ou
- plus 1
- plus 2
- plus 3
Les scripts
Attention, il y a une différence entre l'aspect des scripts dans la pré visualisation et en version définitive. (Dans certains cas ,que je n'ai pas pu identifier, vous aurez besoin que la première balise soit placé à 4 espaces du bord de la page. Oui, je sais, c'est bizarre ...)
La balise [php]
Elle est utilisée pour toutes mise en page de syntaxe web. Elle doit impérative être aligné avec le premier tag, sinon la mise en page n'est pas prise en compte.
Le Html
[php]
<html>
<head>
<title>Liste de Messages</title>
</head>
<body>
<h1>Liste de Messages</h1>
<table>
<tr><th>Date</th><th>Title</th></tr>
<?php foreach ($posts as $post): ?>
<tr>
<td><?php echo $post['date'] ?></td>
<td><?php echo $post['title'] ?></td>
</tr>
<?php endforeach; ?>
</table>
</body>
</html>
donne :
Le PHP
[php]
<?php
// Connection, sélection de la base de données
$link = mysql_connect('localhost', 'myuser', 'mypassword');
mysql_select_db('blog_db', $link);
// Excécution de la requête sql
$result = mysql_query('SELECT date, title FROM post', $link);
// Filling up the array for the view
$posts = array();
while ($row = mysql_fetch_array($result, MYSQL_ASSOC))
{
$posts[] = $row;
}
// Fermeture de la connection
mysql_close($link);
// Affichage du résultat
require('view.php');
?>
donne :
Remarque : Des liens sont automatiquement crées entre les fonctions standards PHP et leur définitions sur la documentation officielle PHP
Les autres scripts
[php]
class MyClass
{
protected $parameter_holder = null;
public function initialize ($parameters = array())
{
$this->parameter_holder = new sfParameterHolder();
$this->parameter_holder->add($parameters);
}
public function getParameterHolder()
{
return $this->parameter_holder;
}
}
donne :
etc ...
La ligne de commande
> php -v PHP 5.2.0 (cli) (built: Nov 2 2006 11:57:36) Copyright (c) 1997-2006 The PHP Group Zend Engine v2.2.0, Copyright (c) 1998-2006 Zend Technologies
donne :
Les balises #!html et #php sont des balises d'intégration de codes et non de mise en forme. Elle sont nécessaires si vous souhaitez que le code qu'elles encadrent soit interprété et non pas simplement affiché.
Indications
Les indications ne se présentent pas de la même manière en pré visualisation et en version définitive.
>**NOTE** >Quelques petites améliorations devraient encore être apportées aux exemples 2-6 et 2-7 pour qu’ils soient pleinement satisfaisants (indépendance du code SQL, mise en classes de toutes les fonctions etc …). Mais tel n’est pas le but de ce livre et dans le chapitre 8 vous découvrirez que Symfony gère très bien tous les types d’abstraction. >**CAUTION** >Having all the files under the root web directory is fine for your own tests in a local host, but is a bad practice in a production server. It makes all the internals of your application visible to end users. >**TIP** >Si cette organisation est trop étoffée pour un premier projet, il est possible de regrouper toutes les actions dans un seul module. Quand l'application deviendra plus complexe, il sera encore temps d'organiser les actions dans des modules séparés. Comme indiqué dans le chapitre 1, réécrire le code pour améliorer son organisation ou sa lisibilité tout en conservant son comportement est appelé le refactoring, et vous ferez souvent ça lorsque vous appliquerez les principes du RAD. >**SIDEBAR** >URL Rewriting > >Symfony uses URL rewriting to display "smart URLs"--meaningful locations that display well on search engines and hide all the technical data from the user. You will learn more about this feature, called routing, in Chapter 9. > >If your version of Apache is not compiled with the mod_rewrite module, check that you have the mod_rewrite Dynamic Shared Object (DSO) installed and the following lines in your httpd.conf: > > > AddModule mod_rewrite.c > LoadModule rewrite_module modules/mod_rewrite.so > > >For Internet Information Services (IIS), you will need isapi/rewrite installed and running. Check the symfony online documentation for a detailed IIS installation guide.
donnent, pour la prévisualisation :
NOTE Quelques petites améliorations devraient encore être apportées aux exemples 2-6 et 2-7 pour qu’ils soient pleinement satisfaisants (indépendance du code SQL, mise en classes de toutes les fonctions etc …). Mais tel n’est pas le but de ce livre et dans le chapitre 8 vous découvrirez que Symfony gère très bien tous les types d’abstraction.
CAUTION Having all the files under the root web directory is fine for your own tests in a local host, but is a bad practice in a production server. It makes all the internals of your application visible to end users.
TIP Si cette organisation est trop étoffée pour un premier projet, il est possible de regrouper toutes les actions dans un seul module. Quand l'application deviendra plus complexe, il sera encore temps d'organiser les actions dans des modules séparés. Comme indiqué dans le chapitre 1, réécrire le code pour améliorer son organisation ou sa lisibilité tout en conservant son comportement est appelé le refactoring, et vous ferez souvent ça lorsque vous appliquerez les principes du RAD.
SIDEBAR URL Rewriting
Symfony uses URL rewriting to display "smart URLs"--meaningful locations that display well on search engines and hide all the technical data from the user. You will learn more about this feature, called routing, in Chapter 9.
If your version of Apache is not compiled with the mod_rewrite module, check that you have the mod_rewrite Dynamic Shared Object (DSO) installed and the following lines in your httpd.conf:
AddModule mod_rewrite.c LoadModule rewrite_module modules/mod_rewrite.so
For Internet Information Services (IIS), you will need isapi/rewrite installed and running. Check the symfony online documentation for a detailed IIS installation guide.
et pour la publication finale :
Les lignes
* * * * ******
donnent :
Tableaux
Les tableaux aussi n'ont pas la même apparence entre la pré visualisation et la publication
Répertoire | Description -----------|------------ `css/` | Contient les feuilles de styles avec l’extension `.css` `images/` | Contient les images aux formats `.jpg`, `.png` ou `.gif` `js/` | Contient les fichiers JavaScript avec l’extension `.js` `uploads/` | Doit contenir les images uploadées par l’utilisateur. Même si le dossier contient des images, il est bien distinct du dossier des images afin que la synchronisation des serveurs de développement et de production, n’affecte pas les images uploadées.
apparaît en pré visualisation comme suit
Répertoire | Description
-----------|------------
css/ | Contient les feuilles de styles avec l’extension .css
images/ | Contient les images aux formats .jpg, .png ou .gif
js/ | Contient les fichiers JavaScript avec l’extension .js
uploads/ | Doit contenir les images uploadées par l’utilisateur. Même si le dossier contient des images, il est bien distinct du dossier des images afin que la synchronisation des serveurs de développement et de production, n’affecte pas les images uploadées.
et en publication :
Retourner à la page des ressources francophones
Attachments
- Caution01.png (2.7 kB) - added by Geoff on 06/13/07 11:41:46.
- ColorationHtml01.png (6.2 kB) - added by Geoff on 06/13/07 11:45:13.
- ColorationMyClass.png (5.3 kB) - added by Geoff on 06/13/07 11:45:31.
- ColorationPHP01.png (9.2 kB) - added by Geoff on 06/13/07 11:45:41.
- LigneCommande01.png (2.4 kB) - added by Geoff on 06/13/07 11:45:50.
- Note01.png (4.3 kB) - added by Geoff on 06/13/07 11:46:03.
- SideBar01.png (6.8 kB) - added by Geoff on 06/13/07 11:46:14.
- Tableau01.png (4.8 kB) - added by Geoff on 06/13/07 11:46:21.
- Tip01.png (5.1 kB) - added by Geoff on 06/13/07 11:46:30.








