Alex
Через движок можно сделать генерацию слайдов
Alex
Повезло
Зато не повезло с ВордПресс - ничего более дырявого и кривого не видел...
Alex
Denis
Alex
На ларе сделана
Denis
Я юзал октобер
Denis
Ушел на пиро
Alex
Надо будет тоже потом потыкать
Denis
Гораздо грамотней октобера
Denis
Все аддоны наследуют один класс
Denis
Думаю надо начать с аддонов и автолодера...
Для тех кто устанавливал лару - Pyro имеет некоторые отличия:
В пиро папка app почти пуста (в ней все равно можно писать, но, ай белив - это лишнее). То же самое можно сказать и относительно содержимого папок database и resources.
The best practice - это держать свой код в аддонах.
АДДОНЫ.
Каждый аддон - отдельный пакет на пакаджисте (при желании на гите), и, следовательно - имеет свой composer.json, в котором и прописан PSR-4 неймспейс для автолодера. Все аддоны, являются наследниками одного класса, и всего их пока 5 видов:
1. Module - представляет из себя неймспейс и раздел в админке. Может содержать несколько моделей (streams), а так же полей (fields). Стоит заметить, что поля, могут быть реюзабл в пределах одного неймспейса (модуля) для нескольких моделей (streams). Использование определенного поля, определенной моделью и называется связью (assignment).
2. FieldType - тип поля служит для определения правил миграции и дальнейшего взаимодействия с БД, для одной ячейки данных у модели. Он содержит тип поля, но может содержать аксессор, мутатор, схему - классы в которых и описываются эти правила. Отношения - тоже описываются здесь (я не имею ввиду прямого указания модели).
3. Theme - тема. Тут особо нечего - бывают двух видов: админка и фронт. Показываются в настройках в админке (хран в БД). Может быть перекрыто последовательно, из нескольких мест в ФС (самое сильное - .env)
4. Plugin - это тупо плагин твиг.
5. Extension - с ним ситуация, как с бубями в преферансе: "не с чего ходить - ходи с бубей". Внутри может быть размещена любая логика. Оно может быть связано по универсальному ключу с другими аддонами, что, по сути, является еще одним способом расширения с наследованием, но речь сейчас не о нем.
Важно, что, несмотря на разделение, благодаря общему родителю, аддоны могут пересекаться классами. Например, не обызательно создавать отдельный аддон для плагина, достаточно создать класс плагина в модуле и подключить его в сервис-провайдере. Это касается почти всего.
Класс сервис провайдера может содержать любой из аддонов.
МИГРАЦИИ и устройство БД.
Платформа стримс имеет свой расширенный мигратор, который способен читать миграции, заданные в декларативном стиле. Файлы миграций создаются автоматически, при скаффолде аддонов определенных типов, а также при скаффолде стрима(модели).
The best practice, если мы говорим о модуле, ИМХО - иметь один файл миграции для модуля, в котором описываются все используемые поля, и по одному на каждую модель - в них описываются параметры моделей и принадлежность к ним полей. Важно, что в любой миграции, могут быть использованы стандартные для Ларавел up() и down() методы.
БД имеет в названиях своих таблиц жесткую зависимость $app_reference, неймспейса и модели.
Структура такова:
applications - "корневая" таблица, она имеет связь с applications_domains и это единственные таблицы, имеющие название без префикса. Все другие таблицы имеют в качестве префикса в названии "{$app_reference}_"
streams, fields и assignments - это "служебные" таблицы. Они содержат информацию о:
- других таблицах с базе и их свойствах (streams)
- полях, которыми имеют возможность обладать таблицы (fields)
- реальных фактах обладания каких-то таблиц, какими-то полями (assignments)
Остальные таблицы имеют жесткую зависимость от описаных выше!
"{$app_reference}_{$namespace_slug}_{$stream_slug}"
А если стрим (ряд) имеет поле translatable === true, то еще и
"{$app_reference}_{$namespace_slug}_{$stream_slug}_translations"
Это не все - могут быть еще вариации конфигураций. Не будем на них останавливаться.
Когда меняется содержимое служебных таблиц (а это модели ларки), наблюдатель триггерит событие Eloquent, которое, в свою очередь, запускает команду - одну из команд - проводящих маленькую миграцию, соответствующую изменениям.
Любые другие таблицы могут быть безболезненно созданы в базе, если только их имена не имеют конфликтов со схемой описанной выше.
Alex
Я не очень силён в программировании. Туплю жёстко😄
Denis
Alex
Нихрена не разобрался в ней
Denis
Там свой шаблонизатор и ты можешь составлять запрос в нём
Denis
Alex
Если пихать в бд - это создаёт ряд трудностей, например кастомизация шаблона
Denis
Denis
Ну кроме flat file
Akhmad
Denis
Я более 2х лет делал на modx весь продакшен
Denis
Потом ушел на лару
Alex
Я 2 года страдал на ВордПрессе))
Denis
Denis
Denis
Я тысячу раз переносил
Akhmad
Denis
Alex
Akhmad
Denis
Alex
Если пути делать относительные, можно забить на это все
Alex
Я как делал - убирал в урл картонки/ссылки домен, если это было внутри сайта
Alex
То есть вместо домен.рф/страница/картинка.жпг, оставлял - /страница/картинка.жпг
Denis
Ну это понятно
Alex
Хз как в других цмс, в ВордПрессе это работало
Denis
Попробуй пиро по кик стартеру. Особенно генератор моделей
Alex
Ну и тему просто перекидывал с бд на новый домен
Denis
Модель - это стрим
Alex
@Piterden ты кроссворд делаешь - чисто для себя балуешься?
Denis
Да
Denis
Alex
Там же есть плагины тип блога, меню и тп?
Denis
Alex
Что там вообще из коробки есть для простого юзера?
Османов
Друзья, всем привет. Прошу прощения, не сочтите на рекламу или какой то спам.
Мне нужен человек хорошо знающий JS, node js.
Нужна консультация. Минут 15-20 вашего времени. Консультацию оплачу. В пределах разумного.
Пожалуйста, напишите в ЛС.
Спасибо.
Прошу администрацию не удалять сообщение, мне правда нужна помощь, без подвохов и обмана.
Denis
Denis
Пиши мне
Denis
Я на ней сделал 4 стартапа
Denis
Это самый кастомизируемый софт из тех что я видел
Alex
Чтож, значит надо накатить веб сервер на винде
Alex
Посмотреть что за зверь
Alex
)
Олег
тут есть люди, которые хорошо знают. как работают воркеры в брузере?
.... есть вопрос по одному моменту, которого нет в доках
Олег
возьмем за основу WebWorker
как долго живет скрипт, после того, как пользователь инициировал перезагрузку страницы, либо ее закрыл ..... до того момента, пока страница снова не загрузится?
Denis
Слабо верится что этого нет в доках
Олег
Denis
Бля ну это гуглится одним запросом
https://developers.google.com/web/fundamentals/primers/service-workers/lifecycle
Олег
Denis
Олег
нет
Denis
А как ты ищешь?
Олег
в гугле, как и все .... но для начала прочитал всю доку
Denis
Ну то есть, почему я сразу нахожу, а ты нет?
Denis
Что набираешь в гугле?
Denis
Denis
Denis