Решено: Конфликт плагинов. Переопределение через $aInherits

Есть 2 плагина. Из каталога, и мой, разрабатываемый. Оба плагина используют переопределение с помощью
$aInherits. Переопределяются одни и теже классы.

Соответственно, если активировать оба плагина — возникает конфликт:

Warning: Class 'PluginChronos_ModuleTopic_MapperTopic' not found in /Users/xxxxx/Sites/xxxxx.local/xxxxx.loc/engine/classes/Engine.class.php on line 1105

Fatal error: Class 'PluginChronos_Inherit_ModuleTopic_MapperTopic' not found in /Users/xxxxx/Sites/xxxxx.local/xxxxx.loc/plugins/chronos/classes/modules/topic/mapper/Topic.mapper.class.php on line 24


По-одиночке — плагины работают корректно. Как быть в такой ситуации?
Подскажите, пожалуйста.

Содержание массива aInherits главного класса обеих модулей:

protected $aInherits=array(
        //Переопределяем экшены
        'action' => array(
            'ActionIndex',
            'ActionBlog',
            'ActionTopic',
            'ActionPhotoset',
            'ActionLink',
            'ActionTag'
        ),
        //Переопределяем методы модуля Topic
        'module' => array('ModuleTopic'),
        //Переопределяем методы сущности Topic
        'entity' => array('ModuleTopic_EntityTopic'),
        //Переопределяем мотоды маппера Topic
        'mapper'  =>array('ModuleTopic_MapperTopic'),
    );


Определение классов:

Классы из моего плагина
Главный класс плагина:
class PluginChronos extends Plugin


Экшены:
class PluginChronos_ActionBlog extends PluginChronos_Inherit_ActionBlog
class PluginChronos_ActionIndex extends PluginChronos_Inherit_ActionIndex
class PluginChronos_ActionLink extends PluginChronos_Inherit_ActionLink
class PluginChronos_ActionPhotoset extends PluginChronos_Inherit_ActionPhotoset 
class PluginChronos_ActionTag extends PluginChronos_Inherit_ActionTag 
class PluginChronos_ActionTopic extends PluginChronos_Inherit_ActionTopic


Модули:
class PluginChronos_ModuleTopic extends PluginChronos_Inherit_ModuleTopic
class PluginChronos_ModuleTopic_EntityTopic extends PluginChronos_Inherit_ModuleTopic_EntityTopic
class PluginChronos_ModuleTopic_MapperTopic extends PluginChronos_Inherit_ModuleTopic_MapperTopic


Хуки:
<code>class PluginChronos_HookChronos extends Hook


Классы из плагина из каталога:
Главный класс плагина:
class PluginTagextender extends Plugin

Экшены

class PluginTagextender_ActionAdmin extends PluginTagextender_Inherit_ActionAdmin
class PluginTagextender_ActionBlog extends PluginTagextender_Inherit_ActionBlog
class PluginTagextender_ActionLink extends PluginTagextender_Inherit_ActionLink
class PluginTagextender_ActionPhotoset extends PluginTagextender_Inherit_ActionPhotoset
class PluginTagextender_ActionQuestion extends PluginTagextender_Inherit_ActionQuestion
class PluginTagextender_ActionTag extends PluginTagextender_Inherit_ActionTag
class PluginTagextender_ActionTopic extends PluginTagextender_Inherit_ActionTopic

Модули:

class PluginTagextender_ModuleTopic extends PluginTagextender_Inherit_ModuleTopic
class PluginTagextender_ModuleTopic_MapperTopic extends PluginTagextender_Inherit_ModuleTopic_MapperTopic
class PluginTagextender_ModuleTopic_EntityTopic extends PluginTagextender_Inherit_ModuleTopic_EntityTopic
class PluginTagextender_ModuleTopic_EntityTopicTag extends PluginTagextender_Inherit_ModuleTopic_EntityTopicTag 

Хуки
class PluginTagextender_HookTagextender extends Hook


Решено: сам натупил

7 комментариев

avatar
Приведите так же код определения класса, содержание не нужно, только название и от какого класса наследуете. Желательно у обоих плагинов
avatar
beauty_free, привел список определения классов обеих плагинов в теле топика — там более читаемо.
Суть в том, что классы из моего плагина полностью дублируют исходные классы из LS, за исключением небольших изменений в каждом методе, но методы присутствуют полностью все из исходных одноименных классов. Может дело в этом?
Спасибо!
avatar
ошибка везде или на конкретной странице?
avatar
Два варианта:
1. Мой плагин инициализирован, работает нормально, при инициализации вашего плагина — происходит фатальная ошибка (ложится весь сайт, в т.ч., админка).
2. Ваш плагин инициализирован работает успешно, при инициализации моего плагина — ошибок не возникает. После инициализации моего плагина — ваш плагин — не работает (ошибок не выдает, но как бы «не присутствует»). Мой плагин работает без ошибок.

Не хотел вас беспокоить, предполагал, что я где-то ошибся. Но получается, что у вас где-то неточность, наверное…
avatar
можете скинуть ссылку на ваш плагин?
avatar
5 мин. Залью с локалки.
avatar
Отправил вам в ЛС. Посмотрите, пожалуйста. я только начинаю работать с ЛС, так что вполне возможно, косяк с моей стороны.

Спасибо!
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.