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