Pour ce chapitre, nous allons créer un projet similaire à X (Twitter) en utilisant PHP et MongoDB, en configurant notre environnement de développement avec WAMP (Windows, Apache, MySQL, PHP). Ce projet permettra aux utilisateurs de publier des messages courts, de les visualiser, et de les organiser de manière efficace.

Configuration de PHP avec Mongo

Pour ajouter l'extension MongoDB à PHP sous Windows avec WAMP, suivez ces étapes :

  1. Téléchargez la DLL appropriée pour votre version de PHP depuis le site officiel PECL : https://pecl.php.net/package/mongodb/1.19.3/windows

  2. Assurez-vous de choisir la version thread-safe (TS) correspondant à votre version de PHP dans WAMP.

  3. Copiez le fichier php_mongodb.dll téléchargé dans le répertoire des extensions PHP de WAMP :(Remplacez X.X.X par votre version de PHP)

    C:\\wamp6\\bin\\php\\phpX.X.X\\ext

  4. Ouvrez le fichier php.ini de votre version de PHP dans WAMP. Vous pouvez y accéder via :

    WampManager -> PHP -> php.ini

  5. Ajoutez la ligne suivante dans la section des extensions :

    extension=php_mongodb.dll

  6. Sauvegardez le fichier php.ini et fermez-le.

  7. Redémarrez tous les services WAMP (Apache et MySQL) ou redémarrez complètement WAMP.

  8. Vérifiez que l'extension est bien chargée en créant un fichier PHP avec phpinfo() et en recherchant "mongodb" dans la sortie.

<?php phpinfo(); ?>

Préparation des données

Connectez-vous à MongoDB avec le client mongo et créez une base de données et une collection pour les tweets :

use mini_x
db.createCollection("tweets")

Insérez des données :

db.tweets.insertMany([
    { "user": "john_doe", "message": "Hello, Twitter!", "timestamp": new Date() },
    { "user": "jane_smith", "message": "Just setting up my Twitter.", "timestamp": new Date() },
    { "user": "alice_johnson", "message": "It's a beautiful day!", "timestamp": new Date() },
    { "user": "bob_brown", "message": "Learning MongoDB with PHP!", "timestamp": new Date() },
    { "user": "carol_white", "message": "Excited for the weekend!", "timestamp": new Date() }
])

Interaction entre PHP et MongoDB

<aside> 💡 Composer en php est l’équivalent de NPM en node.js. La commande composer require est équivalente à npm install, cela sert à ajouter une bibliothèque au projet.

</aside>