프로그래밍/PHP2007. 9. 7. 10:03
ASP, .NET, JAVA 등의 개발언어에서는 Application Scope Variable 설정이 가능합니다.
ASP등의 MS계열의 global.asa(global.asax 등)라는 파일에 포함된 변수들은 어플리케이션 전체에서 Superglobal(슈퍼전역변수)로 사용할 수 있습니다.

한데, PHP에는 global.asa와 같은 설정파일이 정해져 있지 않습니다.
때문에 어플리케이션 내의 모든 파일에서 공통적으로 사용할 변수들을 설정하기 위해서는 모든 파일에 해당 파일을 include하거나 코딩해 넣어야만 합니다.

그렇다면 PHP에 정말 Application Scope Variable을 지정할 수 없을까요?
검색사이트를 통해 여러가지 방법을 찾아봤지만 명확하게 설명되어 있는 곳이 없더군요..
다른 언어에서 지원되는게 PHP에 없을리가 없다라는 믿음으로 php.ini 파일을 열어봤습니다.

과연 PHP!!
다음과 같은 부분이 있습니다.

; Automatically add files before or after any PHP document.
auto_prepend_file =
auto_append_file =


간단한 영문이라 해석이 가능하죠?
말 그대로 PHP 문서의 앞 또는 뒤에 자동으로 추가할 파일들입니다.

일반적으로 모든 문서에서 공통으로 선언할 변수들은 문서의 앞에 들어오게 되니 auto_prepend_file 부분에 추가하면 됩니다.

/home/common/global.php

<?php
$GLOBAL[BLOG_URL] = "http://etyoul.tistory.com";
$GLOBAL[POST_ID] = 13;
?>


위와 같은 global.php파일을 모든 문서에 포함하고 싶으면 아래와 같이 수정하시면 됩니다.
auto_prepend_file = "/home/common/global.php"



다시 말하면 위의 변수를 사용하기 위해 문서내에 <? include("/home/common/global.php"); ?>를 작성할 필요가 없다는 것입니다.
문서가 많다거나 호스트가 여러개이거나 디렉토리가 복잡한 사이트에서 설정을 추가하거나 수정해야 할 상황에서 유용하지 않을까 생각됩니다.
Posted by 열태