За последние 24 часа нас посетил 20291 программист и 1084 робота. Сейчас ищут 749 программистов ...

Подскажите фреймворк для обработки данных с изменяемой юзерами структурой.

Тема в разделе "PHP для профи", создана пользователем Max Brown, 22 сен 2017.

  1. Max Brown

    Max Brown Новичок

    С нами с:
    22 сен 2017
    Сообщения:
    7
    Симпатии:
    0
    Hi all!

    Подскажите пожалуйста фреймворк, в котором удобнее всего написать обработку данных с изменяемой "на лету" их (данных) структурой.

    Суть задачи:
    Написание каталога, такого, что пользователи могут не только добавлять в каталог элементы, не только добавлять/удалять/переносить под(-под-под-...-)разделы, но и менять набор свойств элементов создаваемого раздела (а модераторы - утверждать либо аннулировать внесённые пользователями изменения). Набор свойств наследуется под-разделами создаваемого раздела, может со временем меняться, множественное наследование также возможно.

    Пример применения:
    классификатор животных по:
    - биологическим отрядам, семействам, видами их фенотипическим признакам
    - отношениям с человеком (вредители, промысловые, охраняемые)
    Желая добавить в этот класс, например, дельфина афалину, пользователь должен будет:
    1. Создать в уже существующем разделе "класс Млекопитающие" каталога-по-биологической-классификации под-раздел "отряд Китообразные"
    2. Указать для этого отряда неприменимость свойства "число пальцев на задних конечностях"
    3. Прописать для этого отряда константу "0" для свойства "число пальцев на передних конечностях"
    4. Добавить для этого отряда ряд свойств, таких, как "максимальная глубина погружения", например
    5. Добавить в этот под-раздел под-под-раздел "семейство Дельфиновые"
    6. И только теперь добавлять туда элемент "Афалина Tursiops truncatus" и прописывать ему эту "максимальную глубину погружения" вместе с кучей свойств (типа числа зубов, средней длины тела и т.п.), унаследованных от над-раздела "класс Млекопитающие"
    7. Затем указать, что животное по каталогу "отношения-с-человеком" относится к "Охраняемым", затем прописать тут же унаследованное из этого раздела свойство "Охранный статус".

    Собственно, вопрос:
    Под каким фреймворком и с какой базой данных лучше всего писать подобный классификатор?
     
  2. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.155
    Симпатии:
    1.769
    Адрес:
    :сердА
    Тут ответ такой же, как и с вопросами "Какой дистрибутив Linux лучше всего подходит для сервера" - тот, который лучше знаешь.
    Если не знаешь никакой, то бери тот, который лучше документирован на данный момент.
     
  3. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.548
    Симпатии:
    1.754
    Специфическая задача, можно решать разными способами. Насколько мне известно, фреймворков, где она решена изначально, нету. Можно CMS попробовать с такими возможностями, Drupal, к примеру. Или написать самому на любом фреймворке.
     
  4. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.553
    Симпатии:
    631
    SimplaCMS имеет гибкий каталог с наследованием свойств от категории к категории. В составе фреймворков, подобные компоненты не встречались мне.
     
  5. Алекс8

    Алекс8 Активный пользователь

    С нами с:
    18 май 2017
    Сообщения:
    1.730
    Симпатии:
    359
    такое врядли найдете... я относительно недавно делал систему учета перелетных птиц)) все делал с нуля))
    а так то рекомендую Yii2)) потому что с Laravel'ом у меня не заладилось сразу))
    плюс документации куча для yii2))
     
  6. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.155
    Симпатии:
    1.769
    Адрес:
    :сердА
    Так себе объективная рекомендация :)
     
    Алекс8 нравится это.
  7. Алекс8

    Алекс8 Активный пользователь

    С нами с:
    18 май 2017
    Сообщения:
    1.730
    Симпатии:
    359
    все рекомендации субъективные так или иначе))
    мне yii2 понравился))
     
  8. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.548
    Симпатии:
    1.754
    А кто-то наоборот пишет. Я пишу на обоих. Хотя, Yii2 на раз два на самом простом шареде разворачивается, Laravel труднее. Зато в Laravel куча всякого поддерживается из коробки, и он следует современным стандартам, которые появились уже когда архитектура Yii2 была полностью построена, и разработчики не стали переделывать её (по признанию samdark, одного из основных разработчиков Yii).
     
    Алекс8 нравится это.
  9. Max Brown

    Max Brown Новичок

    С нами с:
    22 сен 2017
    Сообщения:
    7
    Симпатии:
    0
    Поправьте меня, если ошибаюсь: осваивать ради моей задачи Yii - это что-то типа того, как осваивать jQuery ради функции hide(), я верно понял? Уже несколько дней пытаюсь урывками разобраться в Yii, но до сих пор толком не понял, какую часть документации для моей задачи копать в первую очередь.
     
  10. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.553
    Симпатии:
    631
    @Max Brown да. Однако, научившись делать $().hide, будешь так делать много много раз ))
    --- Добавлено ---
    А че с разными CMS?
     
  11. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.548
    Симпатии:
    1.754
    Когда в первый раз работаешь с фреймворком, документацию надо прочитать от начала до конца. Точнее, руководство (у документации yii2 две части - руководство, и описание api, вот руководство надо потратить время и прочесть хотя бы по разу от начала до конца).
    Но ещё раз - прямо твая задача в самом фреймворке не решена, код придётся пописать.
     
  12. Алекс8

    Алекс8 Активный пользователь

    С нами с:
    18 май 2017
    Сообщения:
    1.730
    Симпатии:
    359
    я сейчас уже пару недель работаю с InstantCMS.. поставьте ее и посмотрите.. там из коробки много чего есть.. а компоненты писать удобно.