PHP 라이브러리는 미리 작성된 PHP 코드 집합으로, 특정 기능(예: 날짜 처리, 이미지 처리, PDF 생성 등)을 제공하여 개발자가 쉽게 활용할 수 있도록 만들어진 모듈입니다.
사용자 정의 라이브러리: 직접 만든 함수나 클래스 집합
외부 오픈소스 라이브러리: 다른 개발자들이 만든 공개 라이브러리
프레임워크 내 라이브러리: Laravel, CodeIgniter 등 프레임워크에서 제공
include 'lib/math.php';
$result = add(2, 3);
Composer는 PHP용 패키지 관리자입니다.
composer require phpmailer/phpmailer
composer.json에 의존성 등록되고, vendor/autoload.php로 자동 로드됩니다.
require 'vendor/autoload.php';
use PHPMailer\PHPMailer\PHPMailer;
$mail = new PHPMailer();
라이브러리 |
기능 |
---|---|
PHPMailer |
이메일 발송 |
Guzzle |
HTTP 클라이언트 |
Carbon |
날짜/시간 처리 |
Dompdf |
PDF 생성 |
Monolog |
로깅(logging) 처리 |
Intervention Image |
이미지 처리 |
PHP 확장기능은 PHP 엔진(C 엔진 레벨)에 추가되는 저수준 기능 모듈입니다. 주로 성능 향상이나 외부 시스템 연동을 위해 사용됩니다.
.so (Linux), .dll (Windows) 형태의 바이너리 파일
PHP 코드에서 직접 로드하거나 php.ini에서 설정
php -m # 설치된 확장 목록 출력
php -i # phpinfo()와 같은 전체 환경 정보 출력
Ubuntu/Debian:
sudo apt install php-mysql
RedHat/CentOS:
sudo yum install php-mysqlnd
Windows:
php.ini에서 주석 해제:
;extension=pdo_mysql
↓
extension=pdo_mysql
if (!extension_loaded('mbstring')) {
dl('mbstring.so'); // 일부 시스템에서만 동작
}
확장 |
기능 |
---|---|
PDO, mysqli |
데이터베이스 연동 |
mbstring |
다국어 문자열 처리 |
gd, imagick |
이미지 처리 |
curl |
HTTP 요청 |
openssl |
암호화/복호화 |
zip, zlib |
압축 처리 |
intl |
다국어 지원 |
bcmath, gmp |
고정소수점/대형 정수 연산 |
soap |
SOAP 웹 서비스 처리 |
구분 |
라이브러리 |
확장기능 |
---|---|---|
구현 언어 |
PHP |
C (또는 C++) |
설치 방식 |
include, require, Composer |
PHP 빌드 시 포함 또는 OS 패키지 설치 |
성능 |
일반적 |
매우 빠름 (네이티브 수준) |
사용 용도 |
일반 기능 |
성능 중심, 시스템 연동 |
예 |
PHPMailer, Guzzle |
mbstring, curl, gd |
composer.json 예시:
{
"require": {
"monolog/monolog": "^2.0"
}
}
명령어:
composer install # 처음 설치
composer update # 버전 업데이트
composer dump-autoload # 자동 로딩 갱신
예: math.php
<?php
function add($a, $b) {
return $a + $b;
}
사용:
include 'math.php';
echo add(2, 3); // 5
항목 |
설명 |
---|---|
라이브러리 |
PHP 코드로 작성된 기능 집합. 재사용 목적 |
확장기능 |
PHP 엔진 레벨의 C 확장. 성능/시스템 연동 목적 |
Composer |
PHP 라이브러리 관리 도구 |
확장 설치 |
OS 패키지 설치 또는 php.ini 수정 필요 |
함께 사용 |
라이브러리는 확장을 필요로 할 수 있음 (예: Guzzle은 curl 확장 필요) |