ckim의 블로그에 오신 것을 환영합니다! 오늘은 PHP 8.2+ 전용 경량 프레임워크인 CatPHP에 대해 소개해드리겠습니다. CatPHP는 빠른 속도, 사용 편리성, 쉬운 학습, 그리고 보안을 중시하는 프레임워크로, 웹 개발을 보다 쉽게 만들어줍니다.

CatPHP 설치 방법

CatPHP를 사용하기 위해서는 먼저 설치가 필요합니다. 간단한 설정으로 시작할 수 있습니다. 아래 코드를 통해 CatPHP를 설치해보세요.

require __DIR__ . '/catphp/catphp.php';
config(require __DIR__ . '/config/app.php');

이제 CatPHP를 사용할 준비가 완료되었습니다!

기본 사용법

CatPHP의 기본 사용법을 살펴보겠습니다. 이 프레임워크는 라우팅, 데이터베이스 관리, 캐시, 로그 기능 등을 제공합니다.

라우팅

라우팅은 웹 애플리케이션의 URL과 처리하는 함수 간의 매핑을 담당합니다. 다음은 CatPHP에서 라우팅을 설정하는 방법입니다:

router()->get('/', fn() => '<h1>Hello</h1>');

router()->get('/posts/{slug}', fn(string $slug) => render('post', ['slug' => $slug]));

router()->group('/admin', function() {
    router()->use(perm()->middleware('admin'));
    router()->get('/dashboard', fn() => render('admin/dashboard'));
});

router()->dispatch();

위의 예시에서 볼 수 있듯이, 라우팅 설정은 매우 간단합니다. 각 URL에 대해 어떤 함수를 호출할지 결정할 수 있습니다.

데이터베이스 관리

CatPHP는 데이터베이스와 쉽게 상호작용할 수 있는 기능을 제공합니다. 다음은 데이터베이스에서 데이터를 조작하는 방법입니다:

$users = db()->table('users')->all(); // 모든 사용자 데이터 조회
$user  = db()->table('users')->where('id', 1)->first(); // 특정 사용자 조회
$id    = db()->table('users')->insert(['name' => '홍길동', 'email' => '[email protected]']); // 사용자 추가
db()->table('users')->where('id', 1)->update(['name' => '김철수']); // 사용자 수정
db()->table('users')->where('id', 1)->delete(); // 사용자 삭제

이 코드를 통해 데이터베이스 조작이 얼마나 간단한지를 알 수 있습니다.

캐시 기능

CatPHP는 성능을 향상시키기 위해 캐시 기능도 제공합니다. 다음은 캐시를 사용하는 방법입니다:

cache()->set('key', $value, 3600); // 캐시 설정
$value = cache()->get('key'); // 캐시 가져오기
$value = cache()->remember('key', fn() => db()->table('posts')->all(), 600); // 캐시가 없으면 데이터베이스에서 가져오기

이 기능을 활용하면 데이터베이스 접근을 줄여 성능을 향상시킬 수 있습니다.

보안 기능

CatPHP는 보안에도 많은 신경을 쓰고 있습니다. 다음은 간단한 보안 설정 예시입니다:

// 미들웨어 적용
router()->use(guard()->middleware());
router()->use(csrf()->verify());

// 공격 감지 시 텔레그램 알림
guard()->onAttack(fn($type, $ip) =>
    telegram()->to(config('telegram.admin_chat'))
        ->html("<b>🚨 공격 감지</b>\nIP: {$ip}")
        ->send()
);

미들웨어를 통해 보안 검증을 간편하게 설정할 수 있으며, 공격 감지 시 알림 기능도 지원합니다.

API 개발

CatPHP는 API 개발을 위한 기능도 제공합니다. 다음은 API를 설계하는 방법입니다:

router()->group('/api', function() {
    api()->cors()->rateLimit(60, 100)->auth()->guard()->apply();

    router()->get('/posts', fn() => json()->ok(db()->table('posts')->all()));

    router()->post('/posts', function(): void {
        $v = valid(['title' => 'required|min:2', 'content' => 'required']);
        if ($v->check(input())->fails()) {
            json()->fail('입력값 오류', 422, $v->errors());
        }
        $id = db()->table('posts')->insert(input());
        json()->created(['id' => $id]);
    });
});

이렇게 간단한 코드로 API를 만들고, 요청에 대한 응답을 JSON 형식으로 처리할 수 있습니다.

마무리

CatPHP는 간단하고 효과적인 웹 애플리케이션 개발을 위한 강력한 도구입니다. 라우팅, 데이터베이스, 캐시, 보안, API 개발 등 다양한 기능을 통해 실무에서 바로 활용할 수 있습니다. 빠른 시작과 쉬운 학습으로 PHP 개발자 여러분께 큰 도움이 될 것입니다. CatPHP를 통해 더 나은 웹 애플리케이션을 만들어 보세요!