instantsoft / icms2

Self-hosted Site Management System
https://instantcms.ru
GNU General Public License v2.0
294 stars 120 forks source link

Динамические файлы manifest.php #1259

Closed Loadir closed 3 years ago

Loadir commented 3 years ago

Используемая версия InstantCMS: Любые из последних

Идея большинству пользователей InstantCMS будет незаметна. Заметят лишь разработчики дополнений.

Суть идеи в том, чтобы можно было добавлять хуки без изменения файлов manifest.php. Например, есть компонент "Поиск". Он содержит хуки компонентов "Контент" и "Альбомы" для вывода списка найденных в них записей. Чтобы компонент "Поиск" выводил записи из стороннего компонента, например "Форум", надо в папку system\controllers\search\hooks положить файл forum_before_item.php. А чтобы система смогла обработать этот файл, надо прописать его название в файле system\controllers\search\manifest.php. И если два (и более) разработчика будут вносить правки в один файл манифеста, то работать будет тот компонент чей разработчик последним вносил правки.

Можно сделать так, чтобы файл manifest.php получал информацию о всех файлах в папке hooks своего компонента. Например подобным кодом:

<?php

return array(
    'hooks' => cmsCore::getFilesList('system/controllers/search/hooks', '*.*', true)
);
my-instantcms commented 3 years ago

Отличная идея

fuzegit commented 3 years ago

Так себе идея. Тогда уж вообще убрать файлы манифестов.

Например, есть компонент "Поиск". Он содержит хуки компонентов "Контент" и "Альбомы" для вывода списка найденных в них записей. Чтобы компонент "Поиск" выводил записи из стороннего компонента, например "Форум", надо в папку system\controllers\search\hooks положить файл forum_before_item.php.

Идея работы CMS в том, что НЕ нужно так делать. Это нужно делать в своём компоненте.

И если два (и более) разработчика будут вносить правки в один файл манифеста, то работать будет тот компонент чей разработчик последним вносил правки.

Разработчики должны творить каждый в своём компоненте. Когда куча разных разработчиков накидает хуков, понять какой хук чей будет крайне сложно.

my-instantcms commented 3 years ago

Идея работы CMS в том, что НЕ нужно так делать. Это нужно делать в своём компоненте.

Идея отказа от файла манифест мне понравилась, в остальном согласен что каждый должен на своем компоненте работать.