Je suis nouveau dans le développement PHP 7 et j'ai commencé à travailler avec Composer et PHP. J'ai besoin d'utiliser la structure de données PHP 7 comme Vector et Stack, etc. Pour cela, j'ai créé un composer.json dans mon répertoire racine pour exiger php DS. Après l'installation de composer, il a créé un dossier appelé Vendor et le dossier PHP ds s'y trouve.

J'utilise le code ci-dessous dans un fichier robots.php dans le répertoire racine.

<?php
use Ds\Stack;
use Ds\Vector;

$Vector = new Vector();

$stack = new  Stack(); 

J'obtiens une erreur fatale disant que la classe est introuvable. Je ne suis pas au courant de la façon dont le chargement automatique fonctionne complètement. Pourrai-je appeler ces classes à partir de mon fichier php dans le dossier racine ?

0
bodi87 27 sept. 2019 à 22:23

2 réponses

Meilleure réponse

Chargement automatique

Pour les bibliothèques qui spécifient des informations de chargement automatique, Composer génère un fichier vendor/autoload.php. Vous pouvez simplement inclure ce fichier et commencer à utiliser les classes fournies par ces bibliothèques sans aucun travail supplémentaire :

require __DIR__ . '/vendor/autoload.php';

use Ds\Stack;
use Ds\Vector;

$Vector = new Vector();

$stack = new  Stack(); 

Je vous suggère de jeter un œil à https://getcomposer.org/doc/01-basic -usage.md

2
Azael 27 sept. 2019 à 19:50

C'est parce que Php DS est une extension PHP, vous devez d'abord l'installer.

$ apt-get install php7.4-ds

Cela pourrait vous aider:

Il existe également un package polyfill, cela signifie que les classes Php Ds seront disponibles même si l'extension n'est pas installée, bien que je suppose que cela a des coûts de performances.

0
jawira 6 nov. 2020 à 08:42