У меня очень странная проблема. В одном классе «SMSNotifier» у меня есть
require_once (__DIR__ . "/../InvitationNotifier.php");
[...]
class SMSNotifier extends InvitationNotifier {
[...]
}
этот класс включен в другой скрипт, который вызывается из cli. При вызове этого скрипта я получаю
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
В чем может быть проблема здесь?
Заранее спасибо за любую мысль. Я выбежал из них …
Я продолжал пытаться понять проблему, и я обнаружил, что была круговая зависимость. Я «вырубил» и проблема исчезла. Надеюсь, что это может помочь кому-то
Вам следует не просто загружайте файлы, как в 1990 году. Используйте Композитор (PHP) и следуйте PSR-4 http://www.php-fig.org/psr/psr-4
composer.json
{
"autoload": {
"psr-4": {"InvitationNotifier\\": "lib/"}
}
}
index.php
require_once('autoload.php');