In questo articolo vedremo come iniziare per progettare un'applicazione PHP avente come base di dati MongoDB, in particolare supponiamo di avere già installato XAMPP come piattaforma software costituita da Apache HTTP Server, e di avere Windows come SO sulla nostra macchina di sviluppo.
Per poter usare il database MongoDB dobbiamo installare l'estensione PHP mongodb, prima però abbiamo bisogno di alcune informazioni reperibili tramite la funzione phpinfo(), pertanto creiamo un file info.php con il seguente codice e apriamolo nel nostro browser all'indirizzo 127.0.0..1/info.php
Codice PHP
<?php
phpinfo();
le informazioni di cui abbiamo bisogno sono la versione di PHP attualmente in uso, 'Architecture' e 'Thread Safety'
a questo punto possiamo scaricare l'estensione mongodb al seguente link
si aprirà una pagina con l'elenco delle versioni disponibili (Available Releases), in questo caso poichè la versione PHP è la 7.1 posso scaricare la versione 1.6.0 per SO Windows, il link è il seguente
pecl.php.net/package/mongodb/1.6.0/windows
scorriamo la pagina fino alla sezione DLL List e scarichiamo la versione
7.1 Thread Safe (TS) x86
poichè abbiamo un Architecture pari a x86 e Thread Safety pari a enabled
ultimato il download, estraiamo i file dalla cartella compressa e copiamo il file
php_mongodb.dll
nella cartella delle estensioni di PHP, che nel nostro caso è
C:\xampp\php\ext
Per completare l'installazione dell'estensione mongodb dobbiamo aggiungere al nostro file php.ini la seguente riga alla lista delle estensioni
extension=php_mongodb.dll
per verificare la corretta installazione riavviamo Apache e apriamo il file info.php creato in precedenza nel nostro browser e verifichiamo che ci sia la sezione mongodb.
Arrivati a questo punto, il passo successivo è scaricare e installare MongoDB Compass Community al seguente link
mongodb.com/download-center/community
visualizzeremo una pagina dove sceglliere la versione relativa al nostro SO e il Package ( MSI oppure ZIP ), nel nostro caso selezioniamo Windows x64 e scelgo un formato MSI.
Se l'installazione è andata a buon fine apriamo MongoDB Compass Community per generare una nuova connessione.
Nella schermata "New Connection" clicchiamo sul bottone "Favorite" per aggiungere ai favoriti la nuova connesisone
e poi scegliamo un nome
e salva, nelle sezione Favorite a sinistra della schermata ci sarà la connessione appena creata
cliccando su di essa visualizzeremo il link della connessione, che è simile a questo
e ci servirà per connetterci al database, in particolare cliccando sul bottone "CONNECT" visualizzeremo la lista dei database disponibili.
Per rendere più agevoli le operazioni di CRUD, ci sono diverse librerie PHP tra cui mongodb/mongo-php-library che è possibile scaricare al seguente link:
github.com/mongodb/mongo-php-library
oppure tramite il comando composer
composer require "mongodb/mongodb=^1.0.0"
Un esempio di utilizzo di questa libreria
Codice PHP
<?php
require 'vendor/autoload.php';
use MongoDB\Client;
$client = new Client('mongodb://localhost:27017/..');
$collection = $client->demo->test;
$result = $collection->insertOne([
'name' => 'Michele De Falco',
'title' => 'Software Engineer',
'website' => 'Il Blog di un Programmatore',
'url' => 'https://ilblogdiunprogrammatore.it',
'twitter' => '_micheledefalco'
]);
printf("Inserted document with ID %s\n", $result->getInsertedId());
alla classe Client viene passato come parametro l'url che abbiamo generato in MongoDB Compass Community, creiamo un database di nome demo e una collection test ($client->demo->test), tramite la funzione insertOne inseriamo dei dati nella collection test utilizzando un array associativo.