cancel
Showing results for 
Search instead for 
Did you mean: 

Процесс разработки модулей

Процесс разработки модулей

Создал несколько модулей, для каждого есть git репозиторий. Модули хранятся в app/code/Vendor/. Так советуют сами разработчики в доке.

 

 

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

 

Хорошо, включили. Теперь спокойно клонируем проект и делаем composer install. Модули скачаются в vendor. Для продакшна все ок, но как быть если нужно разрабатывать? Можно конечно это делать в vendor, но разработчики не одобрямс.

 

Как вы решили этот вопрос?

10 REPLIES 10

Re: Процесс разработки модулей

Re: Процесс разработки модулей

Хоть в документации много чего есть и она полезна для начала, но в деталях на неё полагаться не стоит. Там много устаревшего или не соответствующего действительности. 

 

Никто вам не мешает разрабатывать там, где хотите. Главное понимать что вы делаете и не потерять изменения при обновлении модулей через composer.

 

Хотя возможно я не до конца понял смысл вашего вопроса.


ET Web Solutions
extensions, custom work, support

Re: Процесс разработки модулей


@Anonymous wrote:

А это не поможет https://getcomposer.org/doc/faqs/how-do-i-install-a-package-to-a-custom-path-for-my-framework.md  ?


В мадженте в composer раньше было нечто такое:

    "extra": {
        "map": [
            [
                "*",
                "Vendor/MyModule"
            ]
        ]
    }

Да, это копирует модуль дополнительно в app/code/Vendor/MyModule, но есть 1 но: копируется только сам модуль, без папки .git, следовательно, работать с ним нельзя.

Re: Процесс разработки модулей


@niro wrote:

Хоть в документации много чего есть и она полезна для начала, но в деталях на неё полагаться не стоит. Там много устаревшего или не соответствующего действительности. 

 

Никто вам не мешает разрабатывать там, где хотите. Главное понимать что вы делаете и не потерять изменения при обновлении модулей через composer.

 

Хотя возможно я не до конца понял смысл вашего вопроса.


Я тоже думаю что не все там правильно. Но часто вижу блоги где люди показывают что они делают. Так вот часто используется app/code.

Уже хочется ради интереса узнать почему так.

Re: Процесс разработки модулей

Для себя мы решили, что app/code это аналог local codePool из первой версии.

Если делаем модуль, которые будет использоваться больше, чем на одном проекте, то делаем в vendor с установкой через композер и т.п. А если это что-то мелкое и только для текущего проекта, то делаем в app/code.


ET Web Solutions
extensions, custom work, support

Re: Процесс разработки модулей


@niro wrote:

Для себя мы решили, что app/code это аналог local codePool из первой версии.

Если делаем модуль, которые будет использоваться больше, чем на одном проекте, то делаем в vendor с установкой через композер и т.п. А если это что-то мелкое и только для текущего проекта, то делаем в app/code.


Интересное решение, надо подумать.

 

Кстати, по какому принципу делаете модули?

Как я понял, нужно для каждой задачи делать свой модуль. Но мы не в идеальном мире и делать разные модули для формы в заказе, попапа в заказе, валидации оригинального поля - это все слишком сложно. Наверное, нужна некая середина между независимостью и связанностью. Есть идея 1 "сервисного" модуля для темы.

Re: Процесс разработки модулей

Совсем мелкие задачки объединяем в один модуль, но далеко не всё в один. Делайте так, как вам удобно.


ET Web Solutions
extensions, custom work, support

Re: Процесс разработки модулей

А .gitignore ни где не может помешать?

Re: Процесс разработки модулей

Думаю app/code используется в силу привычки разработки на ZF2. Новая модульная архитектура ZF2 предполагает, что кастомные модули для приложения располагаются в папке module, а third-party модули располагаются вместе с основной библиотекой в vendor. Вот папка app/code и воспринимается как аналог module. Примерно так же в Symfony, только там есть папка src.