티스토리 뷰

PHP 프로젝트에서 유용한 Composer 패키지 추천

Laravel을 사용하지 않는 PHP 프로젝트에서도 Composer 패키지를 활용하면 다양한 기능을 손쉽게 구현할 수 있습니다. 이 글에서는 독립적으로 사용할 수 있는 유용한 Composer 패키지를 소개합니다.

  1. 디버깅 및 로깅

Monolog

•    설명: PHP의 표준 로깅 라이브러리로 다양한 로그 핸들러를 지원합니다.
•    설치:

composer require monolog/monolog

•    사용 예제:

use Monolog\Logger;
use Monolog\Handler\StreamHandler;

$log = new Logger('app');
$log->pushHandler(new StreamHandler(DIR . '/app.log', Logger::DEBUG));
$log->info('Logging without Laravel!');

Whoops

•    설명: 디버깅 시 예외나 오류를 아름답게 출력하는 도구입니다.
•    설치:

composer require filp/whoops

•    사용 예제:

use Whoops\Run;
use Whoops\Handler\PrettyPageHandler;

$whoops = new Run();
$whoops->pushHandler(new PrettyPageHandler());
$whoops->register();

  1. HTTP 요청 및 API 통신

Guzzle

•    설명: REST API 호출 및 HTTP 요청 처리를 간단하게 할 수 있습니다.
•    설치:

composer require guzzlehttp/guzzle

•    사용 예제:

use GuzzleHttp\Client;

$client = new Client();
$response = $client->get('https://api.github.com');
echo $response->getBody();

  1. 데이터베이스 작업

Doctrine DBAL

•    설명: 데이터베이스 작업을 간소화하는 독립형 DB 추상화 라이브러리.
•    설치:

composer require doctrine/dbal

•    사용 예제:

use Doctrine\DBAL\DriverManager;

$connectionParams = [
'dbname' => 'mydb',
'user' => 'root',
'password' => '',
'host' => '127.0.0.1',
'driver' => 'pdo_mysql',
];
$conn = DriverManager::getConnection($connectionParams);
$result = $conn->fetchAssociative('SELECT * FROM users WHERE id = ?', [1]);
print_r($result);

  1. 템플릿 엔진

Twig

•    설명: HTML 템플릿을 깔끔하게 관리할 수 있는 독립형 템플릿 엔진입니다.
•    설치:

composer require twig/twig

•    사용 예제:

use Twig\Loader\FilesystemLoader;
use Twig\Environment;

$loader = new FilesystemLoader(DIR . '/views');
$twig = new Environment($loader);

echo $twig->render('index.html', ['name' => 'John']);

BladeOne

•    설명: Laravel의 Blade 템플릿 엔진을 독립적으로 사용할 수 있는 경량 패키지.
•    설치:

composer require eftec/bladeone

  1. 유효성 검사 및 데이터 처리

Respect/Validation

•    설명: 유효성 검사를 간단하게 처리할 수 있는 라이브러리.
•    설치:

composer require respect/validation

•    사용 예제:

use Respect\Validation\Validator as v;

$validator = v::email()->notEmpty();
$validator->assert('test@example.com');

Carbon

•    설명: PHP의 DateTime 클래스를 확장하여 날짜 및 시간 작업을 쉽게 처리.
•    설치:

composer require nesbot/carbon

•    사용 예제:

use Carbon\Carbon;

echo Carbon::now()->addDays(3)->toDateString(); // 3일 후 날짜 출력

  1. 파일 업로드 및 이미지 처리

Intervention Image

•    설명: 이미지 리사이즈, 크롭, 텍스트 추가 등 이미지 처리 기능 제공.
•    설치:

composer require intervention/image

•    사용 예제:

use Intervention\Image\ImageManagerStatic as Image;

$img = Image::make('path/to/image.jpg')->resize(300, 200);
$img->save('path/to/resized-image.jpg');

Flysystem

•    설명: 로컬, S3, FTP 등 다양한 스토리지 간의 파일 작업 추상화를 지원.
•    설치:

composer require league/flysystem

  1. 보안 및 인증

Firebase JWT

•    설명: JSON Web Token(JWT)를 생성하고 검증할 수 있는 라이브러리.
•    설치:

composer require firebase/php-jwt

•    사용 예제:

use Firebase\JWT\JWT;

$key = "your-secret-key";
$payload = [
"iss" => "example.com",
"aud" => "example.com",
"iat" => time(),
"exp" => time() + 3600,
];

$jwt = JWT::encode($payload, $key, 'HS256');
echo $jwt;

  1. 기타 유용한 패키지

PHP dotenv

•    설명: .env 파일을 쉽게 로드하고 환경 변수로 설정.
•    설치:

composer require vlucas/phpdotenv

•    사용 예제:

use Dotenv\Dotenv;

$dotenv = Dotenv::createImmutable(DIR);
$dotenv->load();

echo $_ENV['APP_ENV'];

Faker

•    설명: 테스트 데이터를 손쉽게 생성.
•    설치:

composer require fakerphp/faker

•    사용 예제:

$faker = Faker\Factory::create();

echo $faker->name;
echo $faker->email;

 

PHP 프로젝트의 생산성을 크게 높일 수 있습니다. 필요에 따라 적절한 패키지를 선택해 활용해 보세요!

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday