Encodera

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

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

Оглавление

Знакомство с 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 — с точкой в начале имени, и строка не должна начинаться со знака #: так помечают комментарии.

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

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