Команда bin/magento и режим разработчика
Почти всё управление Magento идёт через консоль: включить модуль, сбросить кеш, обновить базу данных. Для этого в проекте есть файл bin/magento. В уроках курса после каждого изменения будет указано, какую команду запустить, чтобы увидеть результат.
Запуск
Команду запускают из корня проекта:
bin/magento listОна печатает список всех доступных команд, сгруппированный по темам: cache, module, setup и другие. Если файл не запускается напрямую, пишите php bin/magento list.
Справку по одной команде показывает параметр --help:
bin/magento cache:clean --helpРежим разработчика
После установки включён режим default. Для работы над кодом его сразу меняют:
bin/magento deploy:mode:set developerКоманда печатает Enabled developer mode. В этом режиме ошибки PHP показываются на странице, а не прячутся в журнал, а стили и сгенерированные классы создаются по мере надобности.
Команды на каждый день
| Команда | Что делает |
|---|---|
module:status | Показывает включённые и отключённые модули |
module:enable Имя | Включает модуль |
setup:upgrade | Регистрирует новые модули, обновляет таблицы, выполняет заплатки |
cache:clean | Сбрасывает кеш Magento |
cache:flush | Очищает хранилище кеша целиком |
indexer:reindex | Пересчитывает индексы каталога |
setup:di:compile | Генерирует классы заранее; нужна на рабочем сервере |
Что запускать после изменения
Magento многое запоминает: собранные файлы XML, готовые страницы, сгенерированные классы. Поэтому правка не всегда видна сразу.
| Что изменили | Что сделать |
|---|---|
| Файл PHP без изменения конструктора | Ничего |
| Конструктор класса | Удалить содержимое папки generated |
Любой файл XML в etc или макет | bin/magento cache:clean |
Шаблон .phtml | bin/magento cache:clean, если включён кеш блоков и страниц |
Новый модуль, db_schema.xml, заплатка | bin/magento setup:upgrade |
Кеш при разработке
Чтобы не сбрасывать кеш после каждой правки шаблона, кеш готовых страниц и блоков отключают:
bin/magento cache:disable full_page block_htmlОстальные виды кеша оставляют включёнными — без них магазин работает очень медленно. Подробно о кеше рассказывает урок «Кеш и индексы».
Частая ошибка
Команды запускают от имени другого пользователя, например root. Файлы в папках var и generated начинают принадлежать ему, веб-сервер не может их изменить, и страница падает с ошибкой прав доступа. Запускайте bin/magento от того же пользователя, под которым работает PHP на сервере.