Перейти к содержимому


Фото
* * * * * 1 голосов

Когда выйдет обновление?


  • Закрыто Тема закрыта
137 ответов в теме

#1 Kosjak76

Kosjak76
  • Модератор
  • 3 536 сообщений
  • Программирование
  • Версия CMS:1.x, 2.x
  • Откуда:Харьков, Украина

Опубликовано 04.10.2016 - 13:51

Вопрос к Денису:

Что с обновлением? Планируется или нет?

Если планируется, то когда и насколько глобальное?

Вообще очень плохо, что нет никакой обратной связи от разработчика, ничего не известно, сплошные шифры...

Очень нужен ответ на эти вопросы!



#2 pikusov

pikusov

    Автор Simpla CMS

  • Администратор
  • 946 сообщений

Опубликовано 04.10.2016 - 16:06

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



#3 Noxter

Noxter

    Simpla Developer

  • Фрилансер
  • 5 468 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 04.10.2016 - 16:08

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

Можно узнать что за сложности?

#4 11Alex11

11Alex11
  • Пользователь
  • 9 сообщений
  • Пользователь
  • Версия CMS:2.x
  • Откуда:Страна

Опубликовано 04.10.2016 - 16:35

а что кроме модульности еще планируется?



#5 pikusov

pikusov

    Автор Simpla CMS

  • Администратор
  • 946 сообщений

Опубликовано 04.10.2016 - 18:07

Можно узнать что за сложности?

Например как настраивать порядок загрузки модулей и где этот порядок хранить



#6 Kors

Kors
  • Фрилансер
  • 3 522 сообщений
  • Программирование
  • Версия CMS:1.x, 2.x
  • Откуда:Россия

Опубликовано 04.10.2016 - 18:21

Например как настраивать порядок загрузки модулей и где этот порядок хранить

 

И в чем конкретно сложности?

Хранить, например, можно в базе, и порядок настраивать как обычно настраивается порядок в таблицах.

И другие варианты есть...



#7 pikusov

pikusov

    Автор Simpla CMS

  • Администратор
  • 946 сообщений

Опубликовано 04.10.2016 - 18:37

И в чем конкретно сложности?

Хранить, например, можно в базе, и порядок настраивать как обычно настраивается порядок в таблицах.

И другие варианты есть...

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

Еще на счет порядка загрузки модулей - кто вообще его должен устанавливать? Стоит ли администратору давать такие права? Пока склоняюсь к тому, что это дело программиста и класть модули в папку /extensions, а загрузку сделать через /extensions_loader.php, в котором будет список include('extensions/modulename/module.php'); и отказаться от настройки модулей в админке.



#8 yr4ik

yr4ik
  • Фрилансер
  • 673 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:1.x, 2.x
  • Откуда:Украина Чернигов

Опубликовано 04.10.2016 - 18:50

Стоит ли администратору давать такие права?

 

Однозначно нет. Должно быть какое то число приоритет которое задает разработчик модуля. 

В случае конфликта модулей - разработчик это число меняет или устраняет конфликт. 

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

 

 

 

а как модули подхватываются?



#9 pikusov

pikusov

    Автор Simpla CMS

  • Администратор
  • 946 сообщений

Опубликовано 04.10.2016 - 19:10

Однозначно нет. Должно быть какое то число приоритет которое задает разработчик модуля. 

В случае конфликта модулей - разработчик это число меняет или устраняет конфликт. 

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

 

 

 

а как модули подхватываются?

 

Модуль это просто класс, который наследует стандартный класс симплы. Как его "подхватывать", точнее в каком порядке подхватывать - в этом и сложность. На данный момент Симпла просто смотрит в папку /extensions/ и наследует стандартные классы теми, что нашлись в папке. Проблема последовательности может возникнуть когда несколько разных модулей переопределяют или дополняют один и тот же метод класса. 



#10 Sheeft

Sheeft

    Senior Developer

  • Фрилансер
  • 1 506 сообщений
  • Программирование
  • Откуда:Москва

Опубликовано 04.10.2016 - 19:38

Тут для решения проблемы надо изначально ввести зависимости и совместимости (НЕ совместимости), в моем виденье надо вообще использовать какой-то файлик с модификаторами, чтобы другие модули знали что используется /изменяеться/ каким модулем и чем это ему (модулю) грозит.



#11 Sheeft

Sheeft

    Senior Developer

  • Фрилансер
  • 1 506 сообщений
  • Программирование
  • Откуда:Москва

Опубликовано 04.10.2016 - 19:39

Корс, Косяк, вам по предупреждению (ОФФТОП и МАТ соответственно).



#12 Kors

Kors
  • Фрилансер
  • 3 522 сообщений
  • Программирование
  • Версия CMS:1.x, 2.x
  • Откуда:Россия

Опубликовано 04.10.2016 - 20:36

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

 

Если хранение в базе дает такие неудобства, можно хранить и в файле, подобно config/config.php



#13 yr4ik

yr4ik
  • Фрилансер
  • 673 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:1.x, 2.x
  • Откуда:Украина Чернигов

Опубликовано 04.10.2016 - 21:39

Модуль это просто класс, который наследует стандартный класс симплы. Как его "подхватывать", точнее в каком порядке подхватывать - в этом и сложность. На данный момент Симпла просто смотрит в папку /extensions/ и наследует стандартные классы теми, что нашлись в папке. Проблема последовательности может возникнуть когда несколько разных модулей переопределяют или дополняют один и тот же метод класса. 

 

Ну в таком случае будет много проблем...

Можно конечно попробовать в имени файла задавать приоритет. Типа mymodule.11.php

где перед расширением приоритет, если нет - какое то дефолтное значение.

 

А вообще у меня есть еще такое предложение:

Я когда то думал поцепить vqmod на симплу. Немного посмотрев, вроде бы все возможности есть...

Это и было бы довольно удобной модульностью.

Которой бы можно было делать врезки в стандартный функционал и добавлять свой.

Останется лишь сделать какую то директорию для пользовательских модулей. 

Что бы не было проблем с обновлением.


Изменено: yr4ik, 04.10.2016 - 21:45


#14 pikusov

pikusov

    Автор Simpla CMS

  • Администратор
  • 946 сообщений

Опубликовано 04.10.2016 - 22:51

Ну в таком случае будет много проблем...

Можно конечно попробовать в имени файла задавать приоритет. Типа mymodule.11.php

где перед расширением приоритет, если нет - какое то дефолтное значение.

 

А вообще у меня есть еще такое предложение:

Я когда то думал поцепить vqmod на симплу. Немного посмотрев, вроде бы все возможности есть...

Это и было бы довольно удобной модульностью.

Которой бы можно было делать врезки в стандартный функционал и добавлять свой.

Останется лишь сделать какую то директорию для пользовательских модулей. 

Что бы не было проблем с обновлением.

 

А как у них решается аналогичная проблема?



#15 yr4ik

yr4ik
  • Фрилансер
  • 673 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:1.x, 2.x
  • Откуда:Украина Чернигов

Опубликовано 05.10.2016 - 01:36

А как у них решается аналогичная проблема?

 

Какая аналогичная проблема? Загрузка xml-ок?

Если да то там просто через glob их берет.

 

/vqmod/xml/mymod1.xml сработает раньше чем /vqmod/xml/mymod2.xml


Изменено: yr4ik, 05.10.2016 - 01:37


#16 pikusov

pikusov

    Автор Simpla CMS

  • Администратор
  • 946 сообщений

Опубликовано 05.10.2016 - 12:06

Какая аналогичная проблема? Загрузка xml-ок?

Если да то там просто через glob их берет.

 

/vqmod/xml/mymod1.xml сработает раньше чем /vqmod/xml/mymod2.xml

Проблема в какой последовательности подгружать разные модули, расширяющие один и тот же код



#17 yr4ik

yr4ik
  • Фрилансер
  • 673 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:1.x, 2.x
  • Откуда:Украина Чернигов

Опубликовано 05.10.2016 - 17:50

Проблема в какой последовательности подгружать разные модули, расширяющие один и тот же код

 

Ну если с наследованием классов - то да. Такая проблема будет.

Но в vqmod то нет этого... Там в итоге получится один закешированный файл со всеми внесенными правками который и будет выполнятся...

 

Там ведь суть какая:

Нужные include|require  подменяются на обработчик vqmod.

Далее он читает xml-файлы (модули) в которых прописаны какие файлы и что в них поменять.

Он берет нужный файл, вносит в него нужные правки и сохраняет в заданную директорию.

Если файлы не менялись то он берет уже сформированный.

 

Вот небольшой пример как бы выглядел модуль на добавление поля "field_xx" к sql выборке товара

 

<?xml version="1.0" encoding="UTF-8"?>
<modification>
	<id>product_field_xx</id>
	<version>1</version>
	<vqmver required="true">2.5.0</vqmver>
	<author>yr4ik</author>
	
	<file name="api/Products.php">
		<search position="after">p.name,</search>
		<add>p.field_xx,</add>
	</file>
</modification>

 


В итоге данный xml сделает кеш-файл в определенной папке с именем api_Products.php и уже с измененным запросом SELECT.

В результате будет выполнятся не api/Products.php, а api_Products.php.

А api/Products.php останется без изменений



#18 pikusov

pikusov

    Автор Simpla CMS

  • Администратор
  • 946 сообщений

Опубликовано 05.10.2016 - 22:54

Ну если с наследованием классов - то да. Такая проблема будет.

Но в vqmod то нет этого... Там в итоге получится один закешированный файл со всеми внесенными правками который и будет выполнятся...

 

Там ведь суть какая:

Нужные include|require  подменяются на обработчик vqmod.

Далее он читает xml-файлы (модули) в которых прописаны какие файлы и что в них поменять.

Он берет нужный файл, вносит в него нужные правки и сохраняет в заданную директорию.

Если файлы не менялись то он берет уже сформированный.

 

Вот небольшой пример как бы выглядел модуль на добавление поля "field_xx" к sql выборке товара

 

<?xml version="1.0" encoding="UTF-8"?>
<modification>
	<id>product_field_xx</id>
	<version>1</version>
	<vqmver required="true">2.5.0</vqmver>
	<author>yr4ik</author>
	
	<file name="api/Products.php">
		<search position="after">p.name,</search>
		<add>p.field_xx,</add>
	</file>
</modification>

 


В итоге данный xml сделает кеш-файл в определенной папке с именем api_Products.php и уже с измененным запросом SELECT.

В результате будет выполнятся не api/Products.php, а api_Products.php.

А api/Products.php останется без изменений

Всё равно не очень понятно - "Он берет нужный файл, вносит в него нужные правки и сохраняет в заданную директорию". А если другой модуль уже внес туда правки?



#19 Noxter

Noxter

    Simpla Developer

  • Фрилансер
  • 5 468 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 05.10.2016 - 23:57

Таблица s_products унаследовала ненужные индексы от старых версий, предлагаю их удалить в следующем релизе.

#20 yr4ik

yr4ik
  • Фрилансер
  • 673 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:1.x, 2.x
  • Откуда:Украина Чернигов

Опубликовано 06.10.2016 - 00:07

Всё равно не очень понятно - "Он берет нужный файл, вносит в него нужные правки и сохраняет в заданную директорию". А если другой модуль уже внес туда правки?

 

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

 

PS:

 

Конфликты модулей по любому какие то да будут. Этого никак не избежать.

Например 1й (модуль) добавит метод get_xx в класс Products. И 2й - так же. 

В итоге мы получим php ошибку на дубль метода.

С этой стороны кажется что способ через наследования - лучше (если будут приоритеты и тд). 

Но на мой взгляд это не так. Поскольку даже так нормальной работы обоих модулей не будет.

 

Вот например добавить поле в sql выборку товара.

Через наследование - это нужно подменять весь метод. Тогда как вообще будут работать 2 модуля с одним методом?  


Изменено: yr4ik, 06.10.2016 - 00:27





0 пользователей читают эту тему

0 пользователей, 0 гостей, 0 скрытых