2012-05-27 74 views
1

Doxygen没有为我的类生成文档。 Doxygen解析包含这些类的文件,这些文件出现在文件选项卡中,但没有这些类的文档。所有包含我的类的文件都被命名为XXXX.class.phpDoxygen没有记录PHP类

我doxygen的设置:

#--------------------------------------------------------------------------- 
# Project related configuration options 
#--------------------------------------------------------------------------- 
DOXYFILE_ENCODING  = UTF-8 
PROJECT_NAME   = "Kalandföld Online" 
PROJECT_NUMBER   = 1.0 
PROJECT_BRIEF   = 
PROJECT_LOGO   = 
OUTPUT_DIRECTORY  = "C:/Program Files/EasyPHP-5.3.6.0/www/WoA/dev/docs" 
CREATE_SUBDIRS   = NO 
OUTPUT_LANGUAGE  = English 
BRIEF_MEMBER_DESC  = YES 
REPEAT_BRIEF   = YES 
ABBREVIATE_BRIEF  = "The $name class" \ 
         "The $name widget" \ 
         "The $name file" \ 
         is \ 
         provides \ 
         specifies \ 
         contains \ 
         represents \ 
         a \ 
         an \ 
         the 
ALWAYS_DETAILED_SEC = NO 
INLINE_INHERITED_MEMB = YES 
FULL_PATH_NAMES  = YES 
STRIP_FROM_PATH  = 
STRIP_FROM_INC_PATH = 
SHORT_NAMES   = NO 
JAVADOC_AUTOBRIEF  = YES 
QT_AUTOBRIEF   = NO 
MULTILINE_CPP_IS_BRIEF = NO 
INHERIT_DOCS   = NO 
SEPARATE_MEMBER_PAGES = NO 
TAB_SIZE    = 8 
ALIASES    = 
TCL_SUBST    = 
OPTIMIZE_OUTPUT_FOR_C = YES 
OPTIMIZE_OUTPUT_JAVA = NO 
OPTIMIZE_FOR_FORTRAN = NO 
OPTIMIZE_OUTPUT_VHDL = NO 
EXTENSION_MAPPING  = 
MARKDOWN_SUPPORT  = YES 
BUILTIN_STL_SUPPORT = NO 
CPP_CLI_SUPPORT  = NO 
SIP_SUPPORT   = NO 
IDL_PROPERTY_SUPPORT = YES 
DISTRIBUTE_GROUP_DOC = NO 
SUBGROUPING   = YES 
INLINE_GROUPED_CLASSES = NO 
INLINE_SIMPLE_STRUCTS = NO 
TYPEDEF_HIDES_STRUCT = NO 
SYMBOL_CACHE_SIZE  = 0 
LOOKUP_CACHE_SIZE  = 0 

#--------------------------------------------------------------------------- 
# Build related configuration options 
#--------------------------------------------------------------------------- 
EXTRACT_ALL   = NO 
EXTRACT_PRIVATE  = YES 
EXTRACT_PACKAGE  = YES 
EXTRACT_STATIC   = YES 
EXTRACT_LOCAL_CLASSES = YES 
EXTRACT_LOCAL_METHODS = YES 
EXTRACT_ANON_NSPACES = YES 
HIDE_UNDOC_MEMBERS  = NO 
HIDE_UNDOC_CLASSES  = NO 
HIDE_FRIEND_COMPOUNDS = NO 
HIDE_IN_BODY_DOCS  = NO 
INTERNAL_DOCS   = NO 
CASE_SENSE_NAMES  = YES 
HIDE_SCOPE_NAMES  = YES 
SHOW_INCLUDE_FILES  = YES 
FORCE_LOCAL_INCLUDES = NO 
INLINE_INFO   = YES 
SORT_MEMBER_DOCS  = YES 
SORT_BRIEF_DOCS  = NO 
SORT_MEMBERS_CTORS_1ST = NO 
SORT_GROUP_NAMES  = NO 
SORT_BY_SCOPE_NAME  = NO 
STRICT_PROTO_MATCHING = NO 
GENERATE_TODOLIST  = YES 
GENERATE_TESTLIST  = YES 
GENERATE_BUGLIST  = YES 
GENERATE_DEPRECATEDLIST= YES 
ENABLED_SECTIONS  = 
MAX_INITIALIZER_LINES = 300 
SHOW_USED_FILES  = YES 
SHOW_FILES    = YES 
SHOW_NAMESPACES  = YES 
FILE_VERSION_FILTER = 
LAYOUT_FILE   = 
CITE_BIB_FILES   = 

#--------------------------------------------------------------------------- 
# configuration options related to warning and progress messages 
#--------------------------------------------------------------------------- 
QUIET     = NO 
WARNINGS    = YES 
WARN_IF_UNDOCUMENTED = YES 
WARN_IF_DOC_ERROR  = YES 
WARN_NO_PARAMDOC  = NO 
WARN_FORMAT   = "$file:$line: $text" 
WARN_LOGFILE   = 

#--------------------------------------------------------------------------- 
# configuration options related to the input files 
#--------------------------------------------------------------------------- 
INPUT     = "C:/Program Files/EasyPHP-5.3.6.0/www/WoA" 
INPUT_ENCODING   = UTF-8 
FILE_PATTERNS   = *.class.php 
RECURSIVE    = YES 
EXCLUDE    = 
EXCLUDE_SYMLINKS  = NO 
EXCLUDE_PATTERNS  = 
EXCLUDE_SYMBOLS  = 
EXAMPLE_PATH   = 
EXAMPLE_PATTERNS  = * 
EXAMPLE_RECURSIVE  = NO 
IMAGE_PATH    = 
INPUT_FILTER   = 
FILTER_PATTERNS  = 
FILTER_SOURCE_FILES = NO 
FILTER_SOURCE_PATTERNS = 

#--------------------------------------------------------------------------- 
# configuration options related to source browsing 
#--------------------------------------------------------------------------- 
SOURCE_BROWSER   = NO 
INLINE_SOURCES   = NO 
STRIP_CODE_COMMENTS = YES 
REFERENCED_BY_RELATION = NO 
REFERENCES_RELATION = NO 
REFERENCES_LINK_SOURCE = YES 
USE_HTAGS    = NO 
VERBATIM_HEADERS  = YES 

#--------------------------------------------------------------------------- 
# configuration options related to the alphabetical class index 
#--------------------------------------------------------------------------- 
ALPHABETICAL_INDEX  = YES 
COLS_IN_ALPHA_INDEX = 5 
IGNORE_PREFIX   = 

#--------------------------------------------------------------------------- 
# configuration options related to the HTML output 
#--------------------------------------------------------------------------- 
GENERATE_HTML   = YES 
HTML_OUTPUT   = html 
HTML_FILE_EXTENSION = .html 
HTML_HEADER   = 
HTML_FOOTER   = 
HTML_STYLESHEET  = 
HTML_EXTRA_FILES  = 
HTML_COLORSTYLE_HUE = 220 
HTML_COLORSTYLE_SAT = 100 
HTML_COLORSTYLE_GAMMA = 80 
HTML_TIMESTAMP   = YES 
HTML_DYNAMIC_SECTIONS = NO 
HTML_INDEX_NUM_ENTRIES = 100 
GENERATE_DOCSET  = NO 
DOCSET_FEEDNAME  = "Doxygen generated docs" 
DOCSET_BUNDLE_ID  = org.doxygen.Project 
DOCSET_PUBLISHER_ID = org.doxygen.Publisher 
DOCSET_PUBLISHER_NAME = Publisher 
GENERATE_HTMLHELP  = NO 
CHM_FILE    = 
HHC_LOCATION   = 
GENERATE_CHI   = NO 
CHM_INDEX_ENCODING  = 
BINARY_TOC    = NO 
TOC_EXPAND    = NO 
GENERATE_QHP   = NO 
QCH_FILE    = 
QHP_NAMESPACE   = org.doxygen.Project 
QHP_VIRTUAL_FOLDER  = doc 
QHP_CUST_FILTER_NAME = 
QHP_CUST_FILTER_ATTRS = 
QHP_SECT_FILTER_ATTRS = 
QHG_LOCATION   = 
GENERATE_ECLIPSEHELP = NO 
ECLIPSE_DOC_ID   = org.doxygen.Project 
DISABLE_INDEX   = NO 
GENERATE_TREEVIEW  = NO 
ENUM_VALUES_PER_LINE = 4 
TREEVIEW_WIDTH   = 250 
EXT_LINKS_IN_WINDOW = NO 
FORMULA_FONTSIZE  = 10 
FORMULA_TRANSPARENT = YES 
USE_MATHJAX   = NO 
MATHJAX_RELPATH  = http://cdn.mathjax.org/mathjax/latest 
MATHJAX_EXTENSIONS  = 
SEARCHENGINE   = YES 
SERVER_BASED_SEARCH = NO 

#--------------------------------------------------------------------------- 
# configuration options related to the LaTeX output 
#--------------------------------------------------------------------------- 
GENERATE_LATEX   = NO 
LATEX_OUTPUT   = latex 
LATEX_CMD_NAME   = latex 
MAKEINDEX_CMD_NAME  = makeindex 
COMPACT_LATEX   = NO 
PAPER_TYPE    = a4 
EXTRA_PACKAGES   = 
LATEX_HEADER   = 
LATEX_FOOTER   = 
PDF_HYPERLINKS   = YES 
USE_PDFLATEX   = YES 
LATEX_BATCHMODE  = NO 
LATEX_HIDE_INDICES  = NO 
LATEX_SOURCE_CODE  = NO 
LATEX_BIB_STYLE  = plain 

#--------------------------------------------------------------------------- 
# configuration options related to the RTF output 
#--------------------------------------------------------------------------- 
GENERATE_RTF   = NO 
RTF_OUTPUT    = rtf 
COMPACT_RTF   = NO 
RTF_HYPERLINKS   = NO 
RTF_STYLESHEET_FILE = 
RTF_EXTENSIONS_FILE = 

#--------------------------------------------------------------------------- 
# configuration options related to the man page output 
#--------------------------------------------------------------------------- 
GENERATE_MAN   = NO 
MAN_OUTPUT    = man 
MAN_EXTENSION   = .3 
MAN_LINKS    = NO 

#--------------------------------------------------------------------------- 
# configuration options related to the XML output 
#--------------------------------------------------------------------------- 
GENERATE_XML   = NO 
XML_OUTPUT    = xml 
XML_SCHEMA    = 
XML_DTD    = 
XML_PROGRAMLISTING  = YES 

#--------------------------------------------------------------------------- 
# configuration options for the AutoGen Definitions output 
#--------------------------------------------------------------------------- 
GENERATE_AUTOGEN_DEF = NO 

#--------------------------------------------------------------------------- 
# configuration options related to the Perl module output 
#--------------------------------------------------------------------------- 
GENERATE_PERLMOD  = NO 
PERLMOD_LATEX   = NO 
PERLMOD_PRETTY   = YES 
PERLMOD_MAKEVAR_PREFIX = 

#--------------------------------------------------------------------------- 
# Configuration options related to the preprocessor 
#--------------------------------------------------------------------------- 
ENABLE_PREPROCESSING = YES 
MACRO_EXPANSION  = NO 
EXPAND_ONLY_PREDEF  = NO 
SEARCH_INCLUDES  = YES 
INCLUDE_PATH   = 
INCLUDE_FILE_PATTERNS = 
PREDEFINED    = 
EXPAND_AS_DEFINED  = 
SKIP_FUNCTION_MACROS = YES 

#--------------------------------------------------------------------------- 
# Configuration::additions related to external references 
#--------------------------------------------------------------------------- 
TAGFILES    = 
GENERATE_TAGFILE  = 
ALLEXTERNALS   = NO 
EXTERNAL_GROUPS  = YES 
PERL_PATH    = /usr/bin/perl 

#--------------------------------------------------------------------------- 
# Configuration options related to the dot tool 
#--------------------------------------------------------------------------- 
CLASS_DIAGRAMS   = NO 
MSCGEN_PATH   = 
HIDE_UNDOC_RELATIONS = NO 
HAVE_DOT    = NO 
DOT_NUM_THREADS  = 0 
DOT_FONTNAME   = Helvetica 
DOT_FONTSIZE   = 10 
DOT_FONTPATH   = 
CLASS_GRAPH   = YES 
COLLABORATION_GRAPH = YES 
GROUP_GRAPHS   = YES 
UML_LOOK    = NO 
UML_LIMIT_NUM_FIELDS = 10 
TEMPLATE_RELATIONS  = NO 
INCLUDE_GRAPH   = YES 
INCLUDED_BY_GRAPH  = YES 
CALL_GRAPH    = NO 
CALLER_GRAPH   = NO 
GRAPHICAL_HIERARCHY = YES 
DIRECTORY_GRAPH  = YES 
DOT_IMAGE_FORMAT  = png 
INTERACTIVE_SVG  = NO 
DOT_PATH    = 
DOTFILE_DIRS   = 
MSCFILE_DIRS   = 
DOT_GRAPH_MAX_NODES = 50 
MAX_DOT_GRAPH_DEPTH = 0 
DOT_TRANSPARENT  = NO 
DOT_MULTI_TARGETS  = NO 
GENERATE_LEGEND  = YES 
DOT_CLEANUP   = YES 

例如PHP文件:

<?php 

/** 
* Store all functions related to the smithing skill. 
*/ 
Class Smithing { 

    public static $SMITHING_ITEMS = array(
     //Created itemId, needed resources (id, amount, id, amount) in an array form, required level, xp, created amount 
     array(18, array(33, 3, 32, 1), 2, 30, 1, 1), 
     array(34, array(33, 3, 32, 1), 1, 30, 1, 1), 
     array(35, array(33, 7, 32, 3), 5, 70, 1, 3), 
     array(36, array(33, 4, 32, 2), 4, 45, 1, 2), 
     array(37, array(33, 4, 32, 2), 3, 45, 1, 2) 
    ); 
    public static $SMELTING_ITEMS = array(
     //Created itemId, needed resources (id, amount, id, amount) in an array form, required level, xp, created amount 
     array(33, array(31, 1, 32, 1), 1, 5, 1) 
    ); 
    private $user = null; 

    public function __construct($user) { 
     $this->user = $user; 
    } 

    /** 
    * Create a smithing item from the requirements. 
    * Return: 
    * 3 - Not enough turne 
    * 2 - Missing resources 
    * 1 - Smithing sucessfull 
    * 0 - Smithing failed 
    * -1 - Error! 
    * 
    * @param type $smithingId 
    */ 
    public function createSmithingItem($smithingId) { 
     if ($smithingId >= 0 || $smithingId < count(Smithing::$SMITHING_ITEMS)) { 
      $requirements = Smithing::$SMITHING_ITEMS[$smithingId][1]; 

      if ($requirements[4] >= $this->user->getTurns()) { 
       //Check that we have all of the resources 
       for ($i = 0; $i < count($requirements); $i+=2) { 
        if (!$this->user->getInventory()->hasItemAmount($requirements[$i], $requirements[$i + 1])) { 
         return 2; 
        } 
       } 

       //Delete all of the resources 
       for ($i = 0; $i < count($requirements); $i+=2) { 
        $this->user->getInventory()->deleteItem($requirements[$i], $requirements[$i + 1]); 
       } 

       //Calculating chance 
       $chance = 50 + ($this->user->getSkills()->getLevel(17) - $requirements[2]) * 10; 

       //Give the item and the xp if passed the chance or give only half of the xp 
       if ($chance == 100 || $chance > rand(1, 100)) { 
        $this->user->getInventory()->addItem(Smithing::$SMITHING_ITEMS[$smithingId][0], Smithing::$SMITHING_ITEMS[$smithingId][4], true); 
        $this->user->getSkills()->addXP(17, Smithing::$SMITHING_ITEMS[$smithingId][3]); 
        return 1; 
       } else { 
        $this->user->getSkills()->addXP(17, Smithing::$SMITHING_ITEMS[$smithingId][3]/2); 
        return 0; 
       } 
      } else { 
       return 3; 
      } 
     } 
     return -1; 
    } 

    /** 
    * Create a smelting item from the requirements. 
    * Return: 
    * 2 - Missing resources 
    * 1 - Smithing sucessfull 
    * 0 - Smithing failed 
    * -1 - Error! 
    * 
    * @param type $smithingId 
    */ 
    public function createSmeltingItem($smeltingId) { 
     if ($smeltingId >= 0 || $smeltingId < count(Smithing::$SMELTING_ITEMS)) { 
      $requirements = Smithing::$SMELTING_ITEMS[$smeltingId][1]; 

      //Check that we have all of the resources 
      for ($i = 0; $i < count($requirements); $i+=2) { 
       if (!$this->user->getInventory()->hasItemAmount($requirements[$i], $requirements[$i + 1])) { 
        return 2; 
       } 
      } 

      //Delete all of the resources 
      for ($i = 0; $i < count($requirements); $i+=2) { 
       $this->user->getInventory()->deleteItem($requirements[$i], $requirements[$i + 1]); 
      } 

      //Calculating chance 
      $chance = 50 + ($this->user->getSkills()->getLevel(17) - $requirements[2]) * 10; 

      //Give the item and the xp if passed the chance or give only half of the xp 
      if ($chance >= 100 || $chance > rand(1, 100)) { 
       $this->user->getInventory()->addItem(Smithing::$SMELTING_ITEMS[$smeltingId][0], Smithing::$SMELTING_ITEMS[$smeltingId][4], true); 
       $this->user->getSkills()->addXP(17, Smithing::$SMELTING_ITEMS[$smeltingId][3]); 
       return 1; 
      } else { 
       $this->user->getSkills()->addXP(17, Smithing::$SMELTING_ITEMS[$smeltingId][3]/2); 
       return 0; 
      } 
     } 
     return -1; 
    } 

    /** 
    * Repair all equipment. 
    * 
    * @return int how many durability got repaired 
    */ 
    public function repairAllEquipment() { 
     $totalPrice = 0; 
     $repairedCount = 0; 
     for ($i = 0; $i < 10; $i++) { 
      if ($this->user->getEquipment()->getEquipment($i) != 0) { 
       $item = ItemManager::getInstance()->getItem($this->user->getEquipment()->getEquipment($i)); 

       $price = ceil((($item->getPrice()/100 * 40)/$item->getMaxDurability()) * 1.5); 
       $repaired = floor(($this->user->getInventory()->getMoney() - $totalPrice)/$price); 
       if ($repaired > $item->getMaxDurability() - $this->user->getEquipment()->getEquipmentDur($i)) { 
        $repaired = $item->getMaxDurability() - $this->user->getEquipment()->getEquipmentDur($i); 
       } 

       $totalPrice += $repaired * $price; 
       $repairedCount += $repaired; 
       $this->user->getEquipment()->setEquipmentDur($i, $repaired + $this->user->getEquipment()->getEquipmentDur($i)); 
      } 
     } 

     $this->user->getInventory()->deleteMoney($totalPrice); 
     $this->user->getSkills()->addXP(17, $repairedCount * 5); 

     return $repairedCount; 
    } 

    /** 
    * Repair the equipment on a specific spot. 
    * 
    * @param int $slot the slot 
    * @return int how many durability got repaired 
    */ 
    public function repairEquipment($slot) { 
     if ($this->user->getEquipment()->getEquipment($slot) != 0) { 
      $item = ItemManager::getInstance()->getItem($this->user->getEquipment()->getEquipment($slot)); 

      if ($this->user->getEquipment()->getEquipmentDur($slot) != $item->getMaxDurability()) { 
       $pricePerDur = ceil((($item->getPrice()/100 * 40)/$item->getMaxDurability()) * 1.5); 

       $repaired = floor($this->user->getInventory()->getMoney()/$pricePerDur); 
       if ($repaired > $item->getMaxDurability() - $this->user->getEquipment()->getEquipmentDur($slot)) { 
        $repaired = $item->getMaxDurability() - $this->user->getEquipment()->getEquipmentDur($slot); 
       } 
       $repairPrice = $repaired * $pricePerDur; 

       $this->user->getInventory()->deleteMoney($repairPrice); 
       $this->user->getSkills()->addXP(17, $repaired * 5); 
       $this->user->getEquipment()->setEquipmentDur($slot, $repaired + $this->user->getEquipment()->getEquipmentDur($slot)); 
      } 
     } 

     return $repaired; 
    } 

    /** 
    * Repair an item in the inventory. 
    * 
    * @param type $item the item's id 
    * @param type $dur the item's durability 
    * @return int the repaired amount 
    */ 
    public function repairInventory($item, $dur) { 
     if ($this->user->getInventory()->hasItemAmount($item, 1, $dur)) { 
      $item = ItemManager::getInstance()->getItem($item); 
      $pricePerDur = ceil((($item->getPrice()/100 * 40)/$item->getMaxDurability()) * 1.5); 

      $repaired = floor($this->user->getInventory()->getMoney()/$pricePerDur); 
      if ($repaired > $item->getMaxDurability() - $dur) { 
       $repaired = $item->getMaxDurability() - $dur; 
      } 
      $repairPrice = $repaired * $pricePerDur; 

      $this->user->getInventory()->deleteMoney($repairPrice); 
      $this->user->getInventory()->setItemDurability($item->getId(), $dur, ($dur + $repaired)); 

      $this->user->getSkills()->addXP(17, $repaired * 5); 

      return $repaired; 
     } 
     return 0; 
    } 

} 

?>  

回答

1

使用小写c为你的类定义尝试,即

class Smithing { 
    // Class methods etc. go here. 
} 
+0

非常感谢!我不知道为什么我总是在PHP中使用Class而不是Class。改变它,现在工作。 –