<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://workspace.onionmixer.net/wiki/index.php?action=history&amp;feed=atom&amp;title=Doxygen_with_PHP</id>
	<title>Doxygen with PHP - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://workspace.onionmixer.net/wiki/index.php?action=history&amp;feed=atom&amp;title=Doxygen_with_PHP"/>
	<link rel="alternate" type="text/html" href="https://workspace.onionmixer.net/wiki/index.php?title=Doxygen_with_PHP&amp;action=history"/>
	<updated>2026-04-04T09:54:18Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.44.0</generator>
	<entry>
		<id>https://workspace.onionmixer.net/wiki/index.php?title=Doxygen_with_PHP&amp;diff=395&amp;oldid=prev</id>
		<title>Onionmixer: 내용수정</title>
		<link rel="alternate" type="text/html" href="https://workspace.onionmixer.net/wiki/index.php?title=Doxygen_with_PHP&amp;diff=395&amp;oldid=prev"/>
		<updated>2013-05-15T12:28:08Z</updated>

		<summary type="html">&lt;p&gt;내용수정&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;; gentoo의 php에서 Doxygen을 사용하는방법&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==관련자료==&lt;br /&gt;
&lt;br /&gt;
* Doxygen :: http://www.doxygen.org&lt;br /&gt;
* php :: http://php.net&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Doxygen준비하기==&lt;br /&gt;
&lt;br /&gt;
===Doxygen의 설치===&lt;br /&gt;
&lt;br /&gt;
# 아래의 명령을 사용해서 설치하면 된다.&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
emerge doxygen&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
# doxygen 이라는 명령어를 쳐서 실행이 된다면 정상적으로 설치가 된것이라 볼 수 있다&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Doxygen의 준비===&lt;br /&gt;
&lt;br /&gt;
별도로 설정파일을 마련하는게 아니라면 다음과같은 방법을 사용해서 기본설정파일을 만들어 이후 작업을 준비할 수 있다&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# doxygen -g 만들어질설정파일이름&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Doxygen의 사용===&lt;br /&gt;
&lt;br /&gt;
php 소스가 있는 디렉토리에서 다음의 명령어를 실행한다&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# doxygen 만들어놓은설정파일이름&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===php에 Doxygen의 주석을 넣는법===&lt;br /&gt;
&lt;br /&gt;
# 일단 메인으로 사용할 파일을 하나 지정하고 php파일내에 다음과같은 주석을 넣는다&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
/// @mainpage 프로젝트이름&lt;br /&gt;
/// @section intro 소개&lt;br /&gt;
/// - 소개      :   프로젝트에 대한 소개&lt;br /&gt;
/// @section Project 프로젝트이름&lt;br /&gt;
/// - 프로그램명  :   프로젝트이름&lt;br /&gt;
/// - 프로그램내용    :  프로젝트에 대한 상세한 내용&lt;br /&gt;
/// @section CREATEINFO 작성정보&lt;br /&gt;
/// - 작성자      :   작성자&lt;br /&gt;
/// - 작성일      :   작성일(임의대로입력)&lt;br /&gt;
/// @section MODIFYINFO 수정정보&lt;br /&gt;
/// - 수정자/수정일   : 수정내역&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
# 각 파일마다 다음과같은 정보를 제일 위쪽에 넣어준다&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
/// @file       현재주석을넣고있는파일명&lt;br /&gt;
/// @brief      현재쟈주석을가지고있는파일에대한주석&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
# 파일 내부에서 함수에 대한 주석을 넣고자 할때는 다음과같은 형식으로 주석을 넣어주면 된다&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
/// @brief      cut string in utf-8&lt;br /&gt;
/// @author gony (http://mygony.com)&lt;br /&gt;
/// @param $str     source string&lt;br /&gt;
/// @param $len     cut length&lt;br /&gt;
/// @param $checkmb if this argument is true, function treat multibyte character as two bytes. default value is false.&lt;br /&gt;
/// @param $tail    abbreviation symbol&lt;br /&gt;
/// @return string  processed string&lt;br /&gt;
/// @author     onion&lt;br /&gt;
/// @date       20130417&lt;br /&gt;
/// @bug        nothing&lt;br /&gt;
/// @todo       nothing&lt;br /&gt;
/// @exception  nothing&lt;br /&gt;
&lt;br /&gt;
function strcut_utf8($str, $len, $checkmb=true, $tail=&amp;#039;...&amp;#039;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
# 다른 php파일에 대한 주석 작업을 할때는 &amp;#039;&amp;#039;&amp;#039;@mainpage&amp;#039;&amp;#039;&amp;#039; 등에 대한 주석은 사용할 필요가 없다.&lt;br /&gt;
# Class 등을 작업하는경우에는 좀 더 다른 규칙을 사용해야할 필요가 있다.&lt;br /&gt;
# 이렇게 다 작업이 완료되면 doxygen의 대상이 되는 php파일들이 모여있는 디렉토리에서 다음과같은 명령어를 이용해서 document를 생성할 수 있다&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
# doxygen 만들어놓은설정파일이름&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
# 기본 설정파일내용대로라면 html 과 latex 으로 된 결과물을 얻을 수 있다. html 의 경우는 web browser 를 이용해  확인하면 된다&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===php의 Function 대한 Doxygen 주석의 아주 간단한 예제===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
       /**&lt;br /&gt;
       * @brief        function:: db_open//데이터베이스 open시에 사용하는 함수&lt;br /&gt;
       * @param        in_db_name :: 데이터베이스 이름&lt;br /&gt;
       * @param        in_db_user :: 데이터베이스 사용자 이름&lt;br /&gt;
       * @param        in_db_pass :: 데이터베이스 사용자에 대한 비밀번호&lt;br /&gt;
       * @return       connect 를 반환한다. 관련된 정보는 php의 connect 변수 부분을 참조&lt;br /&gt;
       * @author       onion&lt;br /&gt;
       * @date 20130417&lt;br /&gt;
       * @bug  nothing&lt;br /&gt;
       * @todo nothing&lt;br /&gt;
       * @exception    nothing&lt;br /&gt;
       **/&lt;br /&gt;
       function db_open($in_db_name=&amp;#039;&amp;#039;, $in_db_user=&amp;#039;&amp;#039;, $in_db_pass=&amp;#039;&amp;#039;)&lt;br /&gt;
       {&lt;br /&gt;
       global $db; // global database discriptor 변수&lt;br /&gt;
&lt;br /&gt;
       if( empty($in_db_name) )&lt;br /&gt;
               $in_db_name = $db[&amp;quot;name&amp;quot;];&lt;br /&gt;
       if( empty($in_db_user) )&lt;br /&gt;
               $in_db_user = $db[&amp;quot;user&amp;quot;];&lt;br /&gt;
       if( empty($in_db_pass) )&lt;br /&gt;
               $in_db_pass = $db[&amp;quot;pass&amp;quot;];&lt;br /&gt;
       $connect=mysql_connect(&amp;#039;localhost&amp;#039; , $db[&amp;quot;user&amp;quot;], $db[&amp;quot;pass&amp;quot;] );&lt;br /&gt;
&lt;br /&gt;
       if ( $connect  ==false )&lt;br /&gt;
       {&lt;br /&gt;
           echo(&amp;quot;접속에 실패했습니다 뭔가 문제가 있는듯 하군요. 데이터서버의 점검을 바랍니다&amp;quot;) ;&lt;br /&gt;
           exit ;&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
       mysql_select_db($db[&amp;quot;name&amp;quot;],$connect);&lt;br /&gt;
&lt;br /&gt;
       return $connect ;&lt;br /&gt;
       }&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===php의 Class에 대한 Doxygen 주석의 아주 간단한 예제===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
/** &lt;br /&gt;
* @file sample2.php&lt;br /&gt;
* &lt;br /&gt;
* @brief Class와 Grapvhviz에 대한 예제파일&lt;br /&gt;
* &lt;br /&gt;
**/&lt;br /&gt;
&lt;br /&gt;
/** &lt;br /&gt;
* @class Vegetable&lt;br /&gt;
* &lt;br /&gt;
* @brief 야채에 관련된 클래스&lt;br /&gt;
* &lt;br /&gt;
* 야채에 관련된 좋은 클래스 예제&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
class Vegetable {&lt;br /&gt;
&lt;br /&gt;
   var $edible;&lt;br /&gt;
   var $color;&lt;br /&gt;
&lt;br /&gt;
   /** &lt;br /&gt;
   * @brief Vegetable 메서드&lt;br /&gt;
   * &lt;br /&gt;
   * Vegetable 메서드에 대한 자세한 설명&lt;br /&gt;
   */&lt;br /&gt;
&lt;br /&gt;
   function Vegetable($edible, $color=&amp;quot;green&amp;quot;)&lt;br /&gt;
   {&lt;br /&gt;
       $this-&amp;gt;edible = $edible;&lt;br /&gt;
       $this-&amp;gt;color = $color;&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   /** &lt;br /&gt;
   * @brief is_edible 메서드&lt;br /&gt;
   * &lt;br /&gt;
   * is_edible 메서드에 대한 자세한 설명&lt;br /&gt;
   */&lt;br /&gt;
&lt;br /&gt;
   function is_edible()&lt;br /&gt;
   {&lt;br /&gt;
       return $this-&amp;gt;edible;&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   /** &lt;br /&gt;
   * @brief what_color 메서드&lt;br /&gt;
   * &lt;br /&gt;
   * what_color 메서드에 대한 자세한 설명&lt;br /&gt;
   */&lt;br /&gt;
&lt;br /&gt;
   function what_color()&lt;br /&gt;
   {&lt;br /&gt;
       return $this-&amp;gt;color;&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
} // Vegetable 클래스 끝&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/** &lt;br /&gt;
* @class Spinach&lt;br /&gt;
* &lt;br /&gt;
* @brief Vegetable 을 확장한 클래스&lt;br /&gt;
* &lt;br /&gt;
* Vegetable 을 확장한 클래스에 대한 좋은 예제&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
class Spinach extends Vegetable {&lt;br /&gt;
&lt;br /&gt;
   var $cooked = false;&lt;br /&gt;
&lt;br /&gt;
   /** &lt;br /&gt;
   * @brief Spinach 메서드&lt;br /&gt;
   * &lt;br /&gt;
   * Spinach 메서드에 대한 자세한 설명&lt;br /&gt;
   */&lt;br /&gt;
&lt;br /&gt;
   function Spinach()&lt;br /&gt;
   {&lt;br /&gt;
       $this-&amp;gt;Vegetable(true, &amp;quot;green&amp;quot;);&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   /** &lt;br /&gt;
   * @brief cook_it 메서드&lt;br /&gt;
   * &lt;br /&gt;
   * cook_it 메서드에 대한 자세한 설명&lt;br /&gt;
   */&lt;br /&gt;
&lt;br /&gt;
   function cook_it()&lt;br /&gt;
   {&lt;br /&gt;
       $this-&amp;gt;cooked = true;&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   /** &lt;br /&gt;
   * @brief is_cooked 메서드&lt;br /&gt;
   * &lt;br /&gt;
   * is_cooked 메서드에 대한 자세한 설명&lt;br /&gt;
   */&lt;br /&gt;
&lt;br /&gt;
   function is_cooked()&lt;br /&gt;
   {&lt;br /&gt;
       return $tiis-&amp;gt;cooked;&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
} // Spinach 클래스 끝&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
위의 경우처럼 주석을 넣고 Doxygen 의 설정파일에서 graphviz에 대한 option을 켜주면 class에 대한 hiarachy의 그래프를 볼 수 있다&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==주의사항==&lt;br /&gt;
&lt;br /&gt;
* class의 선언시 Class 가 대문자면 안된다. 무조건 소문자여야함. (아마도 C++ 이나 java 등의 영향이 있는게 아닐까.. 생각됨)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==참고자료==&lt;br /&gt;
&lt;br /&gt;
* [[Doxygen_conf_tip|Doxygen 의 설정파일에 관련된 몇가지 tip]]&lt;br /&gt;
&lt;br /&gt;
* Doxygen 사용법 강좌 #1 - http://wiki.kldp.org/wiki.php/Doxygen/%B0%AD%C1%C201&lt;br /&gt;
* Doxygen 사용법 강좌 #2 - http://wiki.kldp.org/wiki.php/Doxygen/%B0%AD%C1%C202&lt;br /&gt;
* Doxygen 사용법 강좌 #3 - http://wiki.kldp.org/wiki.php/Doxygen/%B0%AD%C1%C203&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* http://opensourceforge.tistory.com/73&lt;br /&gt;
* http://opensourceforge.tistory.com/79&lt;br /&gt;
* http://opensourceforge.tistory.com/75&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* http://www.gpgstudy.com/gpgiki/DoxygenForKorean&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* http://virtualtee.blogspot.jp/2012/03/tip-for-using-doxygen-for-php-code.html&lt;br /&gt;
* http://technosophos.com/content/documenting-php-doxygen-pros-and-cons&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* http://www.linuweb.com/?p=306&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Doxygen + Graphviz + DoxyComment 소스코드 문서화 :: http://blog.pages.kr/367&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Doxygen How-To :: http://www.cypax.net/tutorials/doxygen/?language=en&lt;/div&gt;</summary>
		<author><name>Onionmixer</name></author>
	</entry>
</feed>