Неустранимая ошибка: класс ‘Pheanstalk \ Pheanstalk` не найден

Я использую библиотеку, которую я скачал с композитором под названием Pheanstalk. Я запускаю следующий скрипт:

<?php

//... some unrelated code

require_once('vendor/autoload.php');        //loading the autoload file from composer
use Pheanstalk\Pheanstalk;                  //using the namespace
$pheanstalk = new Pheanstalk('127.0.0.1');  //initiating an object

//... some unrelated code

?>

Появляется следующая ошибка:

Fatal Error: Class 'Pheanstalk\Pheanstalk' not found in /opt/lampp/htdocs/project_zero/index.php on line 16

со строкой 16: $pheanstalk = new Pheanstalk('127.0.0.1');

Вопрос: Почему я могу получить эту ошибку? Сценарий, приведенный выше, был в основном скопирован с Пример использования на странице Gheub Pheanstalk: https://github.com/pda/pheanstalk.

Содержание моего composer.json файл:

{
"require": {
"pda/pheanstalk": "2.1.1"}
}

Редакция:

Новые ошибки при использовании:

use \Pheanstalk_Pheanstalk

Ошибки:

Warning: The use statement with non-compound name 'Pheanstalk_Pheanstalk' has no effect in /opt/lampp/htdocs/project_zero/index.php on line 14

Fatal error: Class 'Pheanstalk' not found in /opt/lampp/htdocs/project_zero/index.php on line 17

0

Решение

В соответствии с вашими composer.jsonвы используете версию 2.1.1: https://github.com/pda/pheanstalk/blob/2.1/classes/Pheanstalk/Pheanstalk.php

Имя класса Pheanstalk_Pheanstalk не Pheanstalk\Pheanstalk: это не было PSR-4-совместимым в данный момент.

Так что вы должны просто использовать:

<?php
use \Pheanstalk_Pheanstalk;

когда вы находитесь в файле пространства имен. Если вы не используете пространство имен в файле, вам не нужно «импортировать» класс.

Обратная косая черта важна, если вы используете пространства имен, потому что класс в версии 2.x не был пространством имен.

ОБНОВИТЬ

Итак, ваш код должен быть таким:

<?php

//... some unrelated code

require_once('vendor/autoload.php');        //loading the autoload file from composer
$pheanstalk = new Pheanstalk_Pheanstalk('127.0.0.1');  //initiating an object

//... some unrelated code

?>

Это все.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]