Решено: Конфликт плагинов. Переопределение через $aInherits
Есть 2 плагина. Из каталога, и мой, разрабатываемый. Оба плагина используют переопределение с помощью
$aInherits. Переопределяются одни и теже классы.
Соответственно, если активировать оба плагина — возникает конфликт:
По-одиночке — плагины работают корректно. Как быть в такой ситуации?
Подскажите, пожалуйста.
Содержание массива aInherits главного класса обеих модулей:
Определение классов:
Классы из моего плагина
Главный класс плагина:
Экшены:
Модули:
Хуки:
Классы из плагина из каталога:
Главный класс плагина:
Экшены
Модули:
Хуки
Решено: сам натупил
$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 комментариев
Суть в том, что классы из моего плагина полностью дублируют исходные классы из LS, за исключением небольших изменений в каждом методе, но методы присутствуют полностью все из исходных одноименных классов. Может дело в этом?
Спасибо!
1. Мой плагин инициализирован, работает нормально, при инициализации вашего плагина — происходит фатальная ошибка (ложится весь сайт, в т.ч., админка).
2. Ваш плагин инициализирован работает успешно, при инициализации моего плагина — ошибок не возникает. После инициализации моего плагина — ваш плагин — не работает (ошибок не выдает, но как бы «не присутствует»). Мой плагин работает без ошибок.
Не хотел вас беспокоить, предполагал, что я где-то ошибся. Но получается, что у вас где-то неточность, наверное…
Спасибо!