Utilisation d'API en PHP

Fermé
PetiteFlamme31 - Modifié le 22 mai 2018 à 20:16
 PetiteFlamme31 - 23 mai 2018 à 12:19
Bonjour à tous et à toutes,

J'aurais aimé avoir de l'aide et des informations concernant un projet en PHP pour mon stage.

Pour résumer, je dois créer un outil/site dans lequel on insère un nom de domaine afin de le tester. Une fois le nom de domaine inséré, il le site est testé sur des sites de test de performance (tel que GTmetrix ou autre).

Il faudra donc que j'utilise les API de ces sites.

Le but étant de collecter les informations données par ces sites (à titre qualitatif), et d'établir un résultat / une note en fonction des tests à la fin (stockés dans une BDD par exemple).

J'ai crée le formulaire où rentrer l'URL, la base de donnée, mais n'y connaissant pas grand chose en API, je me demandais comment je peux par exemple utiliser l'API de GTmetrix, afin de par exemple introduire les résultats (telle que la note Google Page Speed ou Yslow qui est donnée par ces sites), dans la base de données ? Ou du moins, l'afficher à l'utilisateur ayant effectué le test...

Je dois aller sur https://github.com/philcook/php-gtmetrix télécharger les dossiers puis écrire ce code pour que cela fonctionne par exemple (comme donné dans l'API) ?
use Entrecore\GTMetrixClient\GTMetrixClient;
use Entrecore\GTMetrixClient\GTMetrixTest;

$client = new GTMetrixClient();
$client->setUsername('***@***');
$client->setAPIKey('your-gtmetrix-api-key');

$client->getLocations();
$client->getBrowsers();
$test = $client->startTest('http://www.example.com/');

//Wait for result
while ($test->getState() != GTMetrixTest::STATE_COMPLETED &&
 $test->getState() != GTMetrixTest::STATE_ERROR) {
 $client->getTestStatus($test);
 sleep(5);
}

Si vous avez des liens vers des cours, des avis, des informations ou autre, cela me serait d'une très grande utilité.

Merci d'avance !

PS : J'utilise Netbeans IDE 8.2 pour coder et XAMPP comme serveur.

1 réponse

jordane45 Messages postés 38308 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 4 705
22 mai 2018 à 20:17
Bonjour,

Il n'y a pas de cours particuliers pour ça.
Il n'existe que la documentation propre à chaque API et les exemples qu'ils fournissent.

0
Bonsoir et merci beaucoup pour votre réponse !

J'ai bien vu la documentation mais je dois dire que je mouline pas mal encore.
Je suis sous NetBeans, j'ai vu qu'il y avait pas mal de dossiers et fichiers : assets, data, src, tests, .gitignore, .travis.yml, LICENSE.md, README.md, build.xml, composer.json, phpunit.xml. J'ai lu pas mal de chose, je ne sais pas s'il faut tout prendre, juste decoder le .json avec une fonction ou autre...

Si on en suit la documentation :
Pour l'installation il est écrit :
"This client library can be installed using composer"
Il faut donc que je l'installe depuis Netbeans grâce à composer je suppose.

Puis pour effectuer les tests écrire le code :
use Entrecore\GTMetrixClient\GTMetrixClient;
use Entrecore\GTMetrixClient\GTMetrixTest;

$client = new GTMetrixClient();
$client->setUsername('***@***'); (<bold>ici avec l'email de mon inscription car il y a un quota en crédit pour effectuer les tests</bold>)
$client->setAPIKey('your-gtmetrix-api-key'); (<bold>la clé qui m'a été fournie à l'inscription</bold>)

$client->getLocations();
$client->getBrowsers();
$test = $client->startTest('http://www.example.com/'); (l<bold>e site à tester</bold>)
 
//Wait for result
while ($test->getState() != GTMetrixTest::STATE_COMPLETED &&
    $test->getState() != GTMetrixTest::STATE_ERROR) {
    $client->getTestStatus($test);
    sleep(5);
}

EDIT : Ajout ( encore.....) des balises de code !
0
jordane45 Messages postés 38308 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 4 705
22 mai 2018 à 22:10
Netbeans est un IDE (ou EDI).
ça serait la même chose si tu utilisais la bloc note ou notepad++ ou phpstorm ou eclipse..... ou n'importe quel autre logiciel permettant de faire du traitement de text....

"composer" est la "nouvelle" norme pour installer des librairies.....Cela permet d'installer tout ce qui est nécessaire pour faire fonctionner la librairie.
il te faut donc installer composer sur ton serveur.
https://www.google.com/search?q=installer+composer

.
0
PetiteFlamme31
22 mai 2018 à 22:32
Merci encore pour votre aide, c'est très aimable à vous.

Je vais donc installer composer sur Xampp, j'ai trouvé des tutos, je vais les suivre. Je vous tiens au courant.
0
J'ai installé l'API via composer (et installé composer dans XAMPP), tout c'est bien déroulé.
Maintenant j'ai du mal à executer le script suivant l'arborescence etc...
Mon fichier PHP class pour tester (TestSite) se trouve à la racine du projet (avec l'index), et la classe Entrecore\GTMetrixClient se trouvant dans le fichier php "GTMetrixClient.php" soit disant introuvable se trouve dans :
vendor/philcook/gtmetrix/src/...

J'obtient des :
"Fatal error: Uncaught Error: Class 'Entrecore\GTMetrixClient\GTMetrixClient' not found in E:\xampp\htdocs\projets\ProjetQuadran\resultat.php:41 Stack trace: #0 {main} thrown in E:\xampp\htdocs\projets\ProjetQuadran\resultat.php on line 41"
0