Перед началом разработки установите CodeIgniter 4, Composer и настройте веб-сервер.
composer create-project codeigniter4/appstarter doka25c
Дополнительно установите ORM и Twig:
composer require codeigniter4/twig doctrine/orm illuminate/database
Проект использует MVC-архитектуру, организованную следующим образом:
Планируется реализация панели администратора с:
Базовый маршрут для панели:
$routes->group('admin', function($routes) {
$routes->get('/', 'AdminController::dashboard');
$routes->get('users', 'AdminController::users');
});
Doka25C использует CodeIgniter Shield для аутентификации, но также можно использовать JWT.
composer require firebase/php-jwt
Пример генерации токена JWT:
use Firebase\JWT\JWT;
$payload = [
'sub' => $userID,
'iat' => time(),
'exp' => time() + 3600
];
$token = JWT::encode($payload, 'секретный_ключ', 'HS256');
Для логирования используем встроенный Logger CodeIgniter:
log_message('error', 'Ошибка подключения к базе');
Логи хранятся в writeable/logs/.
Тесты пишутся с помощью PHPUnit. Установка:
composer require --dev phpunit/phpunit
Пример теста:
use Tests\Support\TestCase;
class UserTest extends TestCase {
public function testUserCreation() {
$model = new \App\Models\UserModel();
$data = ['name' => 'Тест', 'email' => 'test@example.com'];
$this->assertTrue($model->insert($data));
}
}
Рекомендуемые методы развертывания:
Базовый Dockerfile:
FROM php:8.2-apache
RUN docker-php-ext-install pdo pdo_mysql
COPY . /var/www/html/
EXPOSE 80
CMD ["apache2-foreground"]