fondamentalement pour ce qui est du PHP, tu n'as besoin que de 2 répertoires : src et vendor.
Tiens voici l'arborescence d'un de mes dernier projet :
www
|--css
|--img
|--js
|--src
| |--concept
| |--database
| |--view
| |--theme1
| |--theme2
|--vendor
|--lib_ext_01
|--lib_ext_02
A vrai dire, tu t'organises un peu comme tu veux mais fais bien attention à ne pas enfoncer la logique.
Dans mon cas, les fichiers vue font partie des fichiers sources.
Mais tu peux très bien remonter le dossier view à la racine de www. Du moment où tu n'éparpilles pas tout partout, ça passe.
Pour revenir à PhpEcho, le fonctionnement est hyper simple, tu codes ta vue avec les informations dynamiques que tu veux afficher (par exemple : nom, prenom, titre, cp, ville...). Tu mets bien tout en forme dans le fichier vue. Ensuite, quand tu veux récupérer le code généré par ce bloc vue, tu encapsules le fichier dans une instance de PhpEcho à laquelle tu fournies un tableau [cle => valeur] et les clés fournies doivent correspondre aux clés des informations dynamiques que tu veux afficher.
Après ces données peuvent provenir d'une base de données, d'un fichier texte, de ce que tu veux du moment où elles sont correctement mises en forme pour que PhpEcho puisse les avoir à disposition au moment du rendu. T'es libre de suivre la voie qui te convient. PhpEcho n'attend qu'un tableau dans lequel il va puiser les informations à afficher.
en reprenant mon exemple d'avant :
1 2 3 4 5
| <h3><?= $this('titre') ?> le <em><?= $this('date_creation') ?></em></h3>
<p>
<?= nl2br($this('contenu')) ?><br>
<em><a href="commentaires.php?billet=<?= rawurlencode($this['titre']) ?>">Commentaires</a></em>
</p> |
Pour que le rendu puisse aboutir, tu devras fournir les infos suivantes :
1 2 3 4
| $pe = new PhpEcho('billet.php');
$pe['titre'] = 'abc';
$pe['date_creation'] = '08/12/2019';
$pe['contenu'] = 'contenu lambda'; |
ou directement dans le constructeur :
$pe = new PhpEcho('billet.php', ['titre' => 'abc', 'date_creation' => '08/12/2019', 'contenu' => 'contenu lambda']);
Tu remarqueras au passage, le traitement de 'titre' qui diffère en fonction du contexte de rendu : le premier, il est échappé : <?= $this('titre') ?>, le deuxième il est renvoyé brut mais passé à la fonction d'échappement des url :
<?= rawurlencode($this['titre']) ?> car tu renvoies une url (donc pas le même échappement).
C'est très souple
Partager