Консоль и генератор bake
bin/cake — консольная программа проекта. Через неё запускают сервер разработки, смотрят маршруты, чистят кеш и создают заготовки файлов. Создание файлов выполняет её часть под названием bake — «испечь».
Где она лежит
Файл bin/cake находится в проекте, поэтому команды запускают из его корневой папки. В командной строке Windows вместо bin/cake пишут bin\cake.
Список команд
bin/cakeЗапуск без аргументов печатает все доступные команды, сгруппированные по источнику: приложение, фреймворк, плагины.
Основные команды
| Команда | Что делает |
|---|---|
bin/cake server | Запускает сервер на http://localhost:8765 |
bin/cake server -p 8080 | То же на другом порту |
bin/cake routes | Показывает все маршруты |
bin/cake cache clear_all | Очищает кеш |
bin/cake migrations migrate | Обновляет структуру базы данных |
bin/cake bake | Показывает, что умеет генератор |
Справку по любой команде даёт ключ --help:
bin/cake server --helpВ ответ команда печатает своё описание и список ключей.
Генератор bake
bake создаёт файл нужного класса в правильной папке и с правильным именем — так соглашения соблюдаются сами:
bin/cake bake controller HelloКоманда создаёт src/Controller/HelloController.php и файл теста к нему и печатает пути созданных файлов.
Что умеет bake
| Команда | Что создаёт |
|---|---|
bake controller Articles | Контроллер в src/Controller |
bake model Articles | Классы таблицы и записи в src/Model |
bake template Articles | Шаблоны в templates/Articles |
bake migration CreateArticles | Миграцию в config/Migrations |
bake command Report | Консольную команду в src/Command |
bake all Articles | Модель, контроллер и шаблоны сразу |
Готовый раздел одной командой
bin/cake bake all ArticlesКоманда читает столбцы таблицы articles из базы данных и создаёт рабочий раздел: список статей, просмотр, добавление, изменение и удаление. Поэтому ей нужна уже созданная таблица — она появится в главе о базе данных. До тех пор файлы будем создавать вручную: так понятнее, из чего они состоят.
Частая ошибка
Если файл уже существует, bake спрашивает, перезаписать ли его. Ответ y стирает всё, что вы написали в этом файле руками. Генератор — это способ быстро начать, а не обновлять готовый код: на вопрос о перезаписи отвечайте n, если в файле есть ваши правки.