Разработка в Doka25C

1. Подготовка окружения

Перед началом разработки установите CodeIgniter 4, Composer и настройте веб-сервер.

composer create-project codeigniter4/appstarter doka25c

Дополнительно установите ORM и Twig:

composer require codeigniter4/twig doctrine/orm illuminate/database

2. Архитектура и структура проекта

Проект использует MVC-архитектуру, организованную следующим образом:

3. Панель администратора

Планируется реализация панели администратора с:

Базовый маршрут для панели:

$routes->group('admin', function($routes) {
    $routes->get('/', 'AdminController::dashboard');
    $routes->get('users', 'AdminController::users');
});

4. Авторизация и аутентификация

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');
        

5. Логирование

Для логирования используем встроенный Logger CodeIgniter:

log_message('error', 'Ошибка подключения к базе');

Логи хранятся в writeable/logs/.

6. Тестирование

Тесты пишутся с помощью 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));
    }
}

7. Деплой

Рекомендуемые методы развертывания:

Базовый Dockerfile:


FROM php:8.2-apache
RUN docker-php-ext-install pdo pdo_mysql
COPY . /var/www/html/
EXPOSE 80
CMD ["apache2-foreground"]
        

Связанные страницы

Вернуться на главную