티스토리 뷰
프로그램은 작고 단순한 것에서 크고 복잡한 것으로 진화한다. 그 과정에서 코드의 재활용성을 높이고, 유지보수를 쉽게 할 수 있는 다양한 기법들이 사용된다. 그 중의 하나가 코드를 여러개의 파일로 분리하는 것이다. 이를 통해서 얻을 수 있는 효과는 아래와 같다.
- 자주 사용되는 코드를 별도의 파일로 만들어서 필요할 때마다 재활용할 수 있다.
- 코드를 개선하면 이를 사용하고 있는 모든 애플리케이션의 동작이 개선된다.
- 코드 수정 시에 필요한 로직을 빠르게 찾을 수 있다.
- 필요한 로직만을 로드해서 메모리의 낭비를 줄일 수 있다.
include란?
PHP에서는 필요에 따라서 다른 PHP 파일을 코드 안으로 불러와서 사용할 수 있다. 그 방법에 대해서 알아보자.
include가 없다면
우선 include가 없는 애플리케이션을 하나 만들어보자. 이 코드의 파일명은 1.php 다.
1
2
3
4
5
6
|
<?php
function welcome(){
return 'Hello world';
}
echo welcome();
?>
|
위의 코드는 아무런 문제가 없다. 하지만 welcome 함수가 자주 사용되는 것이라고 가정해보자. 이런 경우 이것이 필요할 때마다 이 함수를 정의해서 사용하는 것은 유지보수도 어렵고 낭비가 될 것이다. 이럴 때 include가 필요하다. 함수 welcome을 include해보자.
include의 사용
새로운 파일을 만든다. 이름은 greeting.php다.
greeting.php
1
2
3
4
5
|
<?php
function welcome(){
return 'Hello world';
}
?>
|
새로운 파일을 만들고 아래와 같이 greeting.php를 인클루드한다.
2.php
1
2
3
4
|
<?php
include 'greeting.php';
echo welcome();
?>
|
이전 예제와 비교했을 때 결과는 같다. 하지만 함수 welcome을 외부 파일로 분리했다. 다음은 위의 코드에 대한 분석이다.
include 'greeting.php';
include는 외부의 php 파일을 로드할 때 사용하는 명령이다.
PHP는 외부의 php 파일을 로드하는 방법으로 4가지 형식을 제공한다. 형식의 종류는 아래와 같다.
- include
- include_once
- require
- require_once
include와 require의 차이점은 존재하지 않는 파일의 로드를 시도했을 때 include가 warning를 일으킨다면 require는 fatal error를 일으킨다는 점이다. fatal error는 warning 보다 심각한 에러이기 때문에 require가 include 보다 엄격한 로드 방법이라고 할 수 있다.
_once라는 접미사가 붙은 것은 파일을 로드 할 때 단 한번만 로드하면 된다는 의미다.