Знакомство с CodeIgniter
CodeIgniter — небольшой и быстрый фреймворк, то есть готовый каркас для сайта на PHP. В нём мало скрытой автоматики: адрес ведёт к методу класса, тот берёт данные и выводит шаблон. Поэтому его легко освоить сразу после чистого PHP. Курс рассчитан на CodeIgniter 4.5 и новее.
Что понадобится
- PHP 8.1 или новее с расширениями
intlиmbstring; - Composer — программа, которая скачивает пакеты PHP;
- база данных MySQL (понадобится во второй главе).
Создание проекта
Проект создаёт одна команда Composer. На протяжении курса мы будем писать блог, поэтому папка называется blog:
composer create-project codeigniter4/appstarter blog
cd blog
php spark serveПервая команда скачивает фреймворк в папку blog, последняя запускает встроенный сервер для разработки. Откройте http://localhost:8080 — появится приветственная страница CodeIgniter.
Папки проекта
blog/
├── app/
│ ├── Config/
│ ├── Controllers/
│ ├── Database/
│ ├── Models/
│ └── Views/
├── public/
├── tests/
├── vendor/
├── writable/
├── env
└── spark| Папка или файл | Что в нём |
|---|---|
app | Весь ваш код: настройки, контроллеры, модели, шаблоны |
public | Корень сайта: index.php, стили, картинки |
writable | Файлы, которые создаёт сам сайт: кеш, журналы, сессии |
tests | Автоматические тесты |
vendor | Фреймворк и пакеты, установленные Composer |
env | Образец файла настроек |
spark | Консольная программа фреймворка |
Почти вся работа идёт в папке app. В vendor ничего не меняют: её содержимое перезаписывается при обновлении.
Режим разработки
Настройки своего компьютера хранят в файле .env в корне проекта. Скопируйте образец env под именем .env и впишите одну строку:
CI_ENVIRONMENT = developmentВ режиме development ошибки показываются подробно, а внизу страницы появляется панель отладки. Перезапускать сервер не нужно — достаточно обновить страницу.
Первая страница
Приветственную страницу выводит класс в файле app/Controllers/Home.php. Замените в нём возвращаемое значение строкой:
// app/Controllers/Home.php
namespace App\Controllers;
class Home extends BaseController
{
public function index(): string
{
return 'Привет, CodeIgniter!';
}
}Обновите http://localhost:8080 — вместо приветственной страницы появится текст «Привет, CodeIgniter!». Как адрес связан с этим классом, объясняет урок о маршрутах.
Частая ошибка
Файл образца называется env, без точки, и фреймворк его не читает. Если вписать настройки в него, ничего не изменится. Настройки работают только в файле .env — с точкой в начале имени, и строка не должна начинаться со знака #: так помечают комментарии.