애플리케이션의 규모가 커질수록 자연스럽게 코드의 중복이 생길 수 있다.
이번에는 그런 중복된 코드들을 최소화시킬 수 있는 방법을 공부해 보겠다.
그 과정에서 코드를 재사용할 때 사용하는 require()의 사용법도 함께 알아보자.
이전 포스트
php, CRUD 글 삭제 (feat. unlink 함수)
파일로 모듈화
똑같이 반복되는 코드가 여러 웹페이지에 중복되어 있을 때 이와 같이 require()를 사용해서 모듈화를 시킬 수 있다.
require()
<?php
require('lib/print.php');
?>
require()는 외부에 있는 php 파일을 현재 파일로 불러와서 합칠 때 사용한다.
쉽게 말해, 다른 파일에 적힌 코드를 복사해서 현재 위치에 붙여넣는 역할을 한다고 보면 된다.
require()와 include()의 차이
include()라는 것도 있다.
include()는 require()와 같은 기능이지만, 오류가 발생했을 때의 처리가 다르다.
include()는 오류가 발생한 경우 Warning을 출력하고 처리를 실행하지만 require()는 Fatal Error가 되어 처리가 정지된다.
| 구분 | 오류 발생 시 (파일 없을 때) | 주 사용처 |
|---|---|---|
| include | Warning (경고 후 스크립트 계속 실행) | 디자인 템플릿, 레이아웃 등 |
| require | Fatal Error (스크립트 즉시 중단) | DB 설정, 보안 로직 등 핵심 파일 |
즉, 지정된 파일이 존재하지 않을 때는 require()를 사용하여 처리를 정지할 수 있다.
데이터베이스 연결 설정이나 보안 관련 코드처럼 프로그램 실행에 핵심적인 파일은 require()를 사용하는 것이 훨씬 안전하다.
require_once()와 include_once()
require_once()는 require()와 기능은 같지만, 지정한 파일을 한 번 읽어들이면 같은 처리 중에는 다시 읽어 들일 수 없다는 차이점이 있다.
이름 그대로 파일을 한 번만 읽어들이는 것이 require_once()와 include_once()다.
단순히 require()를 써도 될 것 같은데, 왜 굳이 '딱 한 번'만 불러오는 기능이 필요한지는 위의 생활코딩 수업 영상의 후반부에 설명이 되어있으니 자세한 설명은 생략하겠다.
php에서 똑같은 이름의 함수를 두 번 정의하면 "Fatal error: Cannot redeclare function..."이라는 치명적인 에러가 발생하며 프로그램이 멈추기 때문이라고 정리해 두겠다.
다음 포스트
php, XSS 공격 방어 (feat. htmlspecialchars와 strip_tags 함수)
응원이나 피드백이 담긴 댓글은 제가 계속 블로그를 해나갈 수 있는 원동력이 됩니다. 😊
지인에게 보여주고 싶은 글이었다면 URL을 복사해서 메신저나 소셜 미디어에 공유해 주세요.
0 Comments
댓글 쓰기
🔸 댓글은 블로그 운영자의 승인 후에 블로그에 표시됩니다.
🔸 비로그인 방문자 분께서는 '익명'보다 이름/URL로 댓글을 남겨주시면 감사하겠습니다. (URL은 생략 가능합니다.)
🔸 구글 로그인 방문자는 '알림 사용'에 체크를 하시면, 남겨주신 댓글에 대한 답글 알림을 메일로 받아볼 수 있습니다. 📩