Je ne suis pas un expert PHP; J'essaie d'utiliser ce TextRank Library pour aider avec un projet. Il semble que je rencontre un problème bizarre: même après avoir ajouté la fonction de chargement automatique, l'exécution sur la ligne de commande entraîne toujours une erreur "class not found". Voici donc la mise en page:Erreur de classe non trouvée même avec chargement automatique
codequi appelle les autres classes (le code "principal"):
echo realpath (__DIR__);
function __autoload($class_name) {
if(file_exists(__DIR__ . "/lib/TextRank/" . $class_name . '.php')) {
require_once(__DIR__ . "/lib/TextRank/" . $class_name . '.php');
} else {
throw new Exception("Unable to load $class_name.");
}
}
$config = new Config;
$textrank = new TextRank($config);
$keywords = $textrank->getKeywords("The only asynchronous, one-on-four game in Nintendo’s booth came from the “Wait, they’re still making that?” franchise that is Mario Party, and its buried presence didn’t bode well. Thankfully, Mario Party 10’s demo didn’t waste time with the series’ slowest crawl-around-a-board-game moments, instead jumping straight into four mini-games.");
var_dump($keywords);
Voilà ma structure de répertoire:
- /test.php (le fichier ci-dessus)
- /lib
- /lib/TextRank (contient toutes les classes référencées par le code ci-dessus
- /lib/TextRank/Config .php
Pourtant, je reçois encore:
Fatal error: Class 'Config' not found in /path/to/test.php
Cela signifie que:
- Le chargement automatique fonctionne, comme aucune exception n'a été levée.
- Mais d'une manière ou d'une autre, PHP ne trouve toujours pas les classes requises?
Est-ce que cela a quelque chose à voir avec les conventions d'espace de noms utilisés dans les classes, telles que:
(en /lib/TextRank/Config.php)
namespace crodas\TextRank;
class Config
{
....
J'ai essayé un autochargeur compatible PSR-0, mais cela ne semble toujours pas fonctionner ... –
Vous devez supprimer les crodas du nom ou déplacer les classes vers un autre sous-dossier/lib/crodas/TextRank. Sinon, le PSR-0 ne peut pas faire son travail – colburton