1 (2018-10-14 21:57:11 отредактировано Денис)

Тема: Использование хранилища движка

Делал расширение, хотел попробовать использовать хранилище движка и пришел к выводу, что для простых модулей оно не очень подходит.
Еще заметил, что после удаления расширения, хранилище, которое использовал модуль не удаляется. 

В таких случаях думаю удобнее создавать свой файл конфигурации внутри директории модуля, особенно если нужно записать всего несколько параметров.

2

Re: Использование хранилища движка

несколько параметров можно сериализировать в одну строчку и записать в хранилище ( http://php.net/manual/ru/function.serialize.php )

Современный способ сериализировать данные - это JSON , я именно им и пользуюсь. http://php.net/manual/ru/function.json-encode.php

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

3 (2018-10-15 08:47:06 отредактировано Денис)

Re: Использование хранилища движка

Спасибо, про сериализацию прочитаю.

Про обновление я не подумал, так действительно удобнее.

Единственное: пользователь устанавливает модуль, получается хранилище еще не создано. А нужно, что бы, например какой-нибудь чекбокс был включен, или в выпадающем списке что-то было выбрано по умолчанию. Но это можно или в коде прописать или в свой файлик конфигурации.

4

Re: Использование хранилища движка

нужно, что бы, например какой-нибудь чекбокс был включен, или в выпадающем списке что-то было выбрано по умолчанию

Можно присваивать значения поумолчанию если конфиги еще не сохранены. Вот кусок как это сделано в движке

if(!isset($Config->header)) $Config->header = 'Заголовок';
if(!isset($Config->template)) $Config->template = 'deftpl';
if(!isset($Config->slogan)) $Config->slogan = 'Добро пожаловать на наш сайт';

5

Re: Использование хранилища движка

Ivan пишет:

Например сейчас когда я подготавливаю обновления, я просто запаковываю все кроме хранилища , я знаю что у пользователя оно будет своё

А зачем запаковывать те файлы, которые не менялись, и потом их перезаписывать при обновлении? Нужно обновлять только те файлы, которые были изменены. Это более логично.