Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Оглавление

Знакомство с CakePHP

CakePHP — фреймворк PHP, то есть готовый каркас сайта: в нём уже есть маршруты, работа с базой данных, формы и проверка данных. Главная его идея — соглашения вместо настроек: если назвать файлы по правилам, фреймворк сам свяжет их между собой. Курс рассчитан на CakePHP 5.

Что понадобится

PHP 8.1 или новее с расширениями mbstring и intl, установщик пакетов Composer и база данных — MySQL, PostgreSQL или SQLite.

Создание проекта

composer create-project --prefer-dist cakephp/app:~5.0 blog

Команда создаёт папку blog и скачивает в неё фреймворк. Если Composer спросит про права на папки — ответьте Y.

Запуск

cd blog
bin/cake server

Откройте http://localhost:8765. Появится страница-приветствие с проверкой окружения: версия PHP, права на папки, подключение к базе данных. Строка про базу пока красная — её настроим позже. Сервер останавливают сочетанием Ctrl+C.

Папки проекта

blog/
├── bin/          команда cake
├── config/       настройки и маршруты
├── src/          код приложения
│   ├── Controller/
│   ├── Model/
│   └── View/
├── templates/    шаблоны страниц
├── webroot/      index.php, стили, скрипты, картинки
├── tests/        тесты
├── tmp/          кеш и временные файлы
├── logs/         журналы
└── vendor/       фреймворк и пакеты

Почти вся работа идёт в трёх папках: config, src и templates. Папку vendor заполняет Composer — её не редактируют.

Первая страница

Создайте вручную два файла. Контроллер — класс, который готовит данные для страницы:

// src/Controller/HelloController.php
namespace App\Controller;
 
class HelloController extends AppController
{
    public function index(): void
    {
        $this->set('name', 'CakePHP');
    }
}

Шаблон — файл с разметкой страницы, templates/Hello/index.php:

<h1>Привет, <?= h($name) ?>!</h1>

Откройте http://localhost:8765/hello — на странице появится «Привет, CakePHP!». Маршрут писать не пришлось: по адресу /hello фреймворк сам нашёл HelloController, метод index() и шаблон в папке Hello. Это и есть соглашения — о них следующий урок.

Панель отладки

В правом нижнем углу страницы виден значок DebugKit. Щелчок по нему открывает панель: запросы к базе, переменные шаблона, данные запроса, время работы. Панель есть только в режиме разработки.

Частая ошибка

Команда bin/cake работает только из корня проекта. Запуск из другой папки даёт «command not found» или «No such file». Сначала перейдите в проект командой cd blog. В командной строке Windows пишут обратную черту: bin\cake server.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.