ARTICLES
Affichage des articles dont le libellé est Code Source. Afficher tous les articles
Affichage des articles dont le libellé est Code Source. Afficher tous les articles

7 août 2014

10 IDEs moderne pour les développeurs web

Codage des sites Web est un long processus fastidieux et il y a toujours plus à apprendre.
Pourquoi ne pas faire le travail un peu plus simple par l'écriture de code avec un environnement de développement intégré?
Ces programmes (IDE) ont la coloration syntaxique et de nombreuses autres fonctionnalités qui accélèrent le processus de codage.

IDE moderne pour les développeurs web
IDE moderne pour les développeurs web

L'article vous propose 10 programmes de développement web les plus utilisés:
7.8.14 - 0

24 juin 2013

PHP MVC

Vous n'avez jamais utilisé un Framework PHP, vous n'êtes pas familier avec la philosophie MVC, ou simplement vous vous demandez pourquoi il y a tant d'agitation autour des Framework PHP (Symfony, Zend, …), dans cet article vous aller écrire un simple test utilisant MVC (Modèle-Vue-Controller).

php-mvc

On va commencer par écrire une page simple qui affiche la liste des articles qui ont sauvegardé dans la base de données (écrit en pur PHP) :

<?php
    $cnx = mysql_connect('localhost', 'NomUtisateur', 'MotDePasse');
    mysql_select_db('MaBase', $cnx);
    $result = mysql_query('SELECT * FROM article', $cnx);
?>
<!doctype html>
<html>
<head>
    <title>PHP MVC</title>
</head>
<body>

    <h2>Liste des articles</h2>
    <ul>
    <?php while($row = mysql_fetch_assoc($result)){ ?>
        <li>
            <a href="/show.php?id=<?php echo $row['id']; ?>">
                <?php echo $row['titre']; ?>
            </a>
        </li>
    <?php } ?>
    </ul>

</body>
</html>
<?php mysql_close($cnx); ?>

Contrôleur

La philosophie MVC est de séparer les couches logiques d'une application, pour mieux structuré le code. Pour appliquer un test MVC à notre exemple précédent.
Premièrement, on va séparer le code HTML:

<?php
// index.php

    $cnx = mysql_connect('localhost', 'NomUtilisateur', 'MotDePasse');
    mysql_select_db('MaBase', $cnx);
    $result = mysql_query('SELECT * FROM article', $cnx);
  
    $articles = array();
    while($row = mysql_fetch_assoc($result)){
        $articles[] = $row;
    }
    mysql_close($cnx);
  
    require 'view/list.php';
?>

Le code HTML est maintenant dans un fichier séparé (view/list.php), qui est essentiellement un fichier HTML qui utilise une syntaxe PHP de template :

<!doctype html>
<html>
<head>
    <title>PHP MVC</title>
</head>
<body>

    <h2>Liste des articles</h2>
    <ul>
    <?php foreach($articles as $article){ ?>
        <li>
            <a href="/show.php?id=<?php echo $article['id']; ?>">
                <?php echo $article['titre']; ?>
            </a>
        </li>
    <?php } ?>
    </ul>

</body>
</html>

Le fichier qui contient la logique applicative "index.php" est appelé «contrôleur». Le terme contrôleur est un mot que vous allez entendre souvent, quel que soit le framework utilisé. Il fait simplement référence à votre code qui traite les entrées de l'utilisateur et prépare une réponse.
Le contrôleur dans notre cas prépare les données récupérer de la base de données et inclut ensuite un template pour présenter ces données.

Modèle

Pour l'instant, l'application ne contient qu'une seule page. Mais que faire si une deuxième page a besoin d'utiliser la même connexion, ou le même tableau de la base de données?
Les fonctions d'accès aux données de l'application soient isolés dans un nouveau fichier appelé model.php:

<?php
// model/model.php

    function ouvrir_database()
    {
        $cnx = mysql_connect('localhost', 'NomUtilisateur', 'MotDePasse');
        mysql_select_db('MaBase', $cnx);
        return $cnx;
    }
  
    function fermer_database($cnx)
    {
        mysql_close($cnx);
    }
  
    function all_articles()
    {
        $cnx = ouvrir_database();
        $result = mysql_query('SELECT * from article', $cnx);
        $articles = array();
        while($row = mysql_fetch_assoc($result)){
            $articles[] = $row;
        }
        fermer_database($cnx);
        return $articles;
    }
  
?>

Le contrôleur "index.php" est maintenant très simple :

<?php
// index.php

    require_once 'model/model.php';
    $articles = all_articles();
    require 'view/list.php';
?>

Maintenant, la responsabilité du contrôleur "index.php" est de récupérer les données de la couche modèle de l'application et d'appeler le template à afficher ces données.

Vue

Pour ne pas dupliquer le code de template, on va créer un nouveau fichier "layout.php":

<!-- view/layout.php -->
<!doctype html>
<html>
<head>
    <title><?php echo $titre; ?></title>
</head>
<body>

    <?php echo $content; ?>

</body>
</html>

Le template "view/list.php" peut maintenant simplement hériter du "layout.php" :

<!-- view/list.php -->

<?php $titre = 'PHP MVC'; ?>

<?php ob_start() ?>
    <h2>Liste des articles</h2>
    <ul>
    <?php foreach($articles as $article){ ?>
        <li>
            <a href="/show.php?id=<?php echo $article['id']; ?>">
                <?php echo $article['titre']; ?>
            </a>
        </li>
    <?php } ?>
    </ul>
<?php $content = ob_get_clean(); ?>
<?php include 'layout.php'; ?>

Maintenant, on peut réutiliser du layout.

Page de détail

Pour ajouter une page de détail d'article ("show.php"), qui affiche un article identifié par un "id".
Il suffit de créer une fonction dans le fichier "model.php" qui récupère un seul article en fonction d'un "id" passé en paramètre:

// model.php

function detail_article($id)
{
    $cnx = ouvrir_database();
    $query = 'SELECT * FROM article WHERE id='.$id;
    $result = mysql_query($query);
    $row = mysql_fetch_assoc($result);
    fermer_database($cnx);
  
    return $row;
}

Puis créez un nouveau fichier appelé "show.php", le contrôleur pour cette nouvelle page est:

<?php
// show.php

    require_once 'model/model.php';
  
    $article = detail_article($_GET['id']);
    require 'view/show.php';
?>

Finalement, créez un nouveau fichier de template view/show.php afin d'afficher les détails d’un article:

<!-- view/show.php -->

<?php $titre = 'Détail'; ?>

<?php ob_start(); ?>
    <h2><?php echo $article['titre']; ?></h2>
    <div>
        <?php echo $article['contenu']; ?>
    </div>
    <div><?php echo $article['date_creation']; ?></div>

<?php $content = ob_get_clean(); ?>
<?php include 'layout.php'; ?>

Nous venons de voir un petit test du motif MVC. C’est vraiment facile et aucun code n'est dupliqué.
Télécharger le code source de ce petit exemple.
24.6.13 - 1

© 2014 Déveur. WP Theme-junkie converted by Bloggertheme9
Powered by Blogger.
back to top