2015-01-21 2 views
3

У меня очень странная проблема. В одном классе «SMSNotifier» у меня естьPHP Неустранимая ошибка: Класс не найден

require_once (__DIR__ . "/../InvitationNotifier.php"); 
[...] 
class SMSNotifier extends InvitationNotifier { 
[...] 
} 

Этот класс включен в другой скрипт, который вызывается из кли. При вызове этого сценария я получаю

PHP Fatal error: Class 'InvitationNotifier' not found in [...]/include/classi/notifiche/notifiers/SMSNotifier.php on line 12 

Самое странное в том, что если я заменить require_once с требуют я получаю вместо

PHP Fatal error: Cannot redeclare class InvitationNotifier in [...]/include/classi/notifiche/InvitationNotifier.php on line 11 

Что может быть проблема здесь?

Заранее благодарю за любую мысль. Я закончил их ...

+2

Есть ли класс 'InvitationNotifier' в' InvitationNotifier.php'? Использует ли это пространство имен? – AbraCadaver

+0

Да, есть и нет, он не использует пространство имен. абстрактный класс InvitationNotifier реализует Notifier { } – eureka

+0

Что происходит, когда вы используете абсолютный путь к классу? –

ответ

3

Я продолжал пытаться понять проблему, и я узнал, что существует круговая зависимость. Я «разрезал» и проблема исчезла. Надеюсь, что это может помочь кому-то

1

Вы должны не быть просто загружая файлы, как это 1990. Использование Composer (PHP) и следовать PSR-4 http://www.php-fig.org/psr/psr-4

composer.json

{ 
    "autoload": { 
    "psr-4": {"InvitationNotifier\\": "lib/"} 
    } 
} 

index.php

require_once('autoload.php'); 
Смежные вопросы