Développement web avancé

Structure - PHP

2526 · Dekens Antoine

Templating

__DIR__

Une des constantes magiques représentant le chemin absolu du répertoire dans lequel se trouve le fichier PHP courant. Le chemin ne contiendra pas de slash final, sauf si c'est le répertoire racine.

Utilisation recommandée dans les chemins de fichiers.

getcwd()

La méthode getcwd( ) renvoit le dossier depuis lequel le script a été invoqué.

include

Une fois que notre projet à plusieurs pages, nous nous retrouvons à écrire plusieurs fois les mêmes parties en HTML qui sont similaires entre elles comme la navigation ou le bas de page. Le mot clé include permet de d'insérer le code d'un fichier dans un autre :

Comme cela ne retourne pas d'erreur fatale, cette méthode est à prévilégier pour inclure du code non critique au projet.

Syntaxe

<?php
  // Inclus le code du fichier "header.php" situé
  // dans un dossier "partials" depuis le dossier courant via __DIR__
  include __DIR__ . "/partials/header.php";
?>

require

Le mot clé require fonctionne comme inclue sauf qu'il renvoit une erreur fatale si le fichier visé est manquant.

À prévilégier pour des fichiers nécessaire au bon fonctionnement du projet.

Syntaxe

<?php
  // Inclus le code du fichier "database.php" situé
  // dans un dossier "config" depuis le dossier courant via __DIR__
  require __DIR__ . "/config/database.php";
?>

include_once & require_once

Ces 2 mots clés fonctionnenent comme leur version non _once, excepté que si le fichier à déjà été inclus, il ne le sera pas une seconde fois.

Ceci est une bonne pratique pour éviter les inclusions multiples.

Syntaxe

<?php
  // Si non inclues, ajoute le code du fichier "database.php"
  // situé  un dossier "config" depuis le dossier courant via __DIR__
  require_once __DIR__ . "/config/database.php";
?>

Insérer des conditions

Voici une technique pour insérer un bloc de code HTML sous condition sans passer par un long echo :

<div class="wrapper">
    <!-- Débute une condition -->
    <?php if( isset($data['article'] ) ) { ?>

      <!-- Notre bloc ajouté conditionnellement -->
      <article>
        <h2>Titre de l'article</h2>
        <p>…</p>
        <a href="#">…</a>
      </article>

    <!-- Termine la condition -->
    <?php } ?>
</div>

Insérer des boucles

Avec la même technique, nous pouvons facilement dupliquer des élement via une boucle insérée :

<ul class="article__list">

  <!-- Débute une boucle foreach -->
  <?php foreach( $articles as $article ){ ?>
  
    <!-- Nous ajoutera autant de fois <li> que d'éléments dans $articles -->
    <li class="article__item">
      <article>
        <h2><?php $article[ 'title' ] ?></h2>
        <p><?php $article[ 'description' ] ?></p>
        <a href="<?php $article[ 'link' ] ?>"><?php $article[ 'linkText' ] ?></a>
      </article>
    </li>

  <!-- Termine la boucle foreach -->
  <?php } ?>
</ul>

Structure de dossier

env.php

Avoir un fichier centralisant nos constantes (nom de base de données, utilisateur, mot de passe, etc.) nous évitera les répétitions et les erreurs potentiels liés aux fautes de frappes.

database.php

La première chose que doit contenir ce fichier est une fonction de connexion via PDO que nous pourrons utiliser une fois inclus dans les différentes vues où nous voulons interagir avec notre base de données.

1/3

1/1