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를 통해 더 나은 웹 애플리케이션을 만들어 보세요!