Задать вопрос
  • Где посмотреть\почитать нормальные уроки по ООП в PHP?

    myks92
    @myks92 Куратор тега PHP
    Василий Берестов, yii тут не причём) Я лишь ответил комментатору. Это говорит о том, что обычно это знания применяют с использованием фреймворка. YII, LARAVEL, SYMFONY. Каждый решает сам. Курсы у Елисеева есть по всем трём.
  • Где посмотреть\почитать нормальные уроки по ООП в PHP?

    myks92
    @myks92 Куратор тега PHP
    Антон Р., тяжело. Но с перерывчиками. Вам телешоу смотреть, а представьте как он это все делал и объяснял. С ума сойти.
  • Где посмотреть\почитать нормальные уроки по ООП в PHP?

    myks92
    @myks92 Куратор тега PHP
    Антон Р., уж лучше потратить это время, чем потом задавать много вопросов) Да и переделывать код.

    Это только цветочки) Следубщий шаг:
    https://coursehunter.net/course/yii2-internet-market
    https://coursehunter.net/course/master-klass-po-ra...

    Это только если догнать сегодняшний век) Но автор не стоит на месте.
  • Почему PhpStorm не подключается по ftp?

    myks92
    @myks92
    Ruslan Ruslanov, жаль. Если честно и правда вариантов будет много. Поэтому предлагал базовые
  • Как делать пакеты как у Symfony?

    myks92
    @myks92 Автор вопроса
    Пётр Грибанов,

    Точно. Забыл как это называется. "монорепозиторий" Спасибо @BoShurik
    Максим можно погуглить о преимуществах и недостатках монорепозиториев.


    Почитаю)) Пока не знаком с таким подходом))
  • Как делать пакеты как у Symfony?

    myks92
    @myks92 Автор вопроса
    Пётр Грибанов,


    Можно использовать git submodules или устанавливать компоненты через composer install --prefer-source. Правда composer по моему устанавливает репозитории из http в read-only режиме и вам придется заменить установленные пакеты на обычный ssh.


    Такое не пробовал. Обязательно попробую)

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


    С этим соглашусь.

    Меня такая структура проекта вполне устраивает. Вам решать, подходит она вам или нет..

    Да. Более понятная структура)) Мне всё нравится. Я думал немного иначе. Теперь понятно

    Есть еще нюансы с DDD, но я думаю вам сейчас это не нужно
    Какие нюансы? Я буду больше работать по паттерну CQRS. Как раз пример хороший и похожий.
  • Как делать пакеты как у Symfony?

    myks92
    @myks92 Автор вопроса
    Пётр Грибанов, мне кажется, что ваш комментарий достоин перемещения в ответ. Поэтому предлагаю его поместить в ответы, а я помечу его решением...

    Таким образом у вас будет следующие git репозитоии:
    - ядро проекта
    - компонент блога
    - бандл блога
    - компонент мероприятий
    - бандл мероприятий
    - компонент деятелей
    - бандл деятелей
    - компонент аккаунта
    - бандл аккаунта
    и др. х2

    Теперь понял, что такое бандл окончательно. Это получается как адаптер под какой-то фреймворк, необязательно симфони.

    Но у этого подхода есть существенный недостаток. Часто нужно внедрять новые фичи или править баги которые требуют внесения изменений в несколько репозиториев одновременно. Это доставляет массу неудобств. Особенно когда нужно проходить через этап релиза. Протестировать в проекте работу правок можно только после внесения их в бандл и релизе его, а зарелизить бандл можно только после его тестирования, а тестирование бандла требует тестирования и релиза компонента, а делать релиз компонента не убедившись как оно будет работать в конечном продукте нельзя. В общем релизный ад. Я проходил через него и не советую другим. Это осмысленно только для больших проектов с большой командой разработчиков.

    Это очень важный комментарий) У меня тоже возникал этот вопрос и это правда лишний гемор. Об этом я долго думал. Было решение на эту тему сначала клонировать в проект репозиторий в какую-то папку, например, пакеты. Уже от туда к фреймфорку подключать как локальный репозиторий.

    Как и сказал BoShurik, разделяйте проект на независимые модули и организуйте модули в папки и неймспейсы. Я пользуюсь этим методом уже несколько лет. Полет нормальный.

    Теперь окончательно понял, что это нужно делать именно так. Можете ли скинуть пару ссылок на подобную архитектуру из открытого проекта, если у вас такой есть. Или же пример чужого проекта. Есть небольшие вопросу по этому. Если с контроллерами, сущностями, сервисами всё понятно, то как работать с ресурсами, видами (шаблонизаторами), переводами. их тоже нужно хранить в src/Events или же они будут общими для всего приложения? Было бы не плохо всё таки ссылочку) Хочется начать проект качественно сразу. А пока не очень представляю архитектуру таких сервисов

    BoShurik скидывал ссылку на Sylius . Это то, о чём вы говорите или нет?

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


    Вот как раз я этой целью и задался. Сейчас это будет единое целое, но при этом взаимодействия будут очень слабые. Например, через события. А весь модуль будет полностью сфокусирован в себе. Только нужно понять как обстоят дела с видами, переводами и др.
  • Анимация на Js?

    myks92
    @myks92
    unddeus, ну вот вам пример.
    https://habr.com/ru/post/130193/
    www.creative-seo.ru/blog/animaciya-logotipa-svg

    Только я не знаю зачем так делать)

    Мне кажется у вас не вопрос, а задание. А это уже не по теме
  • Как делать пакеты как у Symfony?

    myks92
    @myks92 Автор вопроса
    Спасибо Игорь и BoShurik за помощ) Буду, скорее всего следовать Вашим советам))
  • Как делать пакеты как у Symfony?

    myks92
    @myks92 Автор вопроса
    BoShurik, нет. CMS особо не нужна. Делается проект в котором будут различные сервисы. Грубо говоря это:
    - блоги
    - мероприятия
    - деятели
    - аккаунт
    и др.

    На всех сервисах будет единый аккаунт. Как на Тостер и Хабр. На Яндекс со своими сервисами. Что-то на подобии такого.

    Сами сервисы, скорее всего, переиспользоваться в других проектах вряд ли будут. Но это было бы не плохо, если этот же блог был бы не только используемым в этом проекте. Этот же блог, чаще, отличается только версткой и редко контроллерами. То есть UI интерфейс может и поменяться, но ядро будет функционировать. Но это не сама цель.

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

    Основная задача понять как лучше спроектировать структуру. Думал, что можно придти к отдельным пакетам, но вы что-то сейчас смутили меня)
  • Как делать пакеты как у Symfony?

    myks92
    @myks92 Автор вопроса
    BoShurik, то есть получается так делать нет смысла? Или как) Подскажите как лучше)) Не хочется делать монолит. Стремлюсь к сервисам
  • Как делать пакеты как у Symfony?

    myks92
    @myks92 Автор вопроса
    BoShurik, теперь понял)) Меня это смутило изначально почему так)
  • Как делать пакеты как у Symfony?

    myks92
    @myks92 Автор вопроса
    Игорь, понял. А вот эти сервисы вы в приложении как разделяете?

    1. Под каждый сервис своё приложение.
    2. Разделение сервисов namespace и папками в приложении.
    Например,
    Model/Blog
    Repository/Blog

    Model/Shop
    Repository/Shop

    3. Отдельные бандлы (репозитории).

    Или же как-то ещё?

    Если делать отдельными приложениями - сервис полностью самодостаточный, но я не думаю, что это совсем правильно лепить под каждый сервис своё приложение. Или же это нормально?

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

    Поэтому я пришел к тому, что нужно делать отдельные репозитории. Про зависимости композера я знаю и использую. Пока что-то в голове не совсем укладывается как пилить отдельные сервисы сайта. С подключаемыми компонентами все понятно. Там нет роутинга, контроллеров, видов чаще всего. Используется в основном классы через DI. Раньше это делал. А вот с сервисами стало проблема понять как это делать. Так как сервис только подключается к приложению. Он не является самодостаточным. Его нельзя просто скачать и запустить на localhost.
  • Как делать пакеты как у Symfony?

    myks92
    @myks92 Автор вопроса
    Тоже интересная информация. Что-то прояснилось. Не понял только почему разработчки их не рекомендуют использовать, если это убирает дублирование кода?

    Как тогда организовывать большой проект с независимыми частями сайта вроде blog, shop... просто разделением папками в проекте?
  • Как делать пакеты как у Symfony?

    myks92
    @myks92 Автор вопроса
    Дмитрий, заметил, что в симфони почему-то дублируется в ядре и так же вынесено в отдельный пакет. Зачем это делается?

    Ещё вопрос. Если у меня несколько частей сайта, blog, shop. Они считаются независимыми. Мне получается под каждые части сайта делать своё приложение? Или на начальном этапе нет смысла выделять в пакет/приложение
  • Yii2, есть ли типовое решение для редактирования записей Grid view в модальном окне?

    myks92
    @myks92 Куратор тега Yii
    Автор же указал на то, что необходимо редактировать записи и делать это нужно в модальном окне. Причём тут редактирование Колонки?