phpDocumentor
[ class tree: phpDocumentor ] [ index: phpDocumentor ] [ all elements ]

Source for file Errors.inc

Documentation is available at Errors.inc

  1. <?php
  2. /**
  3.  * Error handling for phpDocumentor
  4.  *
  5.  * phpDocumentor :: automatic documentation generator
  6.  * 
  7.  * PHP versions 4 and 5
  8.  *
  9.  * Copyright (c) 2001-2008 Gregory Beaver
  10.  * 
  11.  * LICENSE:
  12.  * 
  13.  * This library is free software; you can redistribute it
  14.  * and/or modify it under the terms of the GNU Lesser General
  15.  * Public License as published by the Free Software Foundation;
  16.  * either version 2.1 of the License, or (at your option) any
  17.  * later version.
  18.  * 
  19.  * This library is distributed in the hope that it will be useful,
  20.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  21.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  22.  * Lesser General Public License for more details.
  23.  * 
  24.  * You should have received a copy of the GNU Lesser General Public
  25.  * License along with this library; if not, write to the Free Software
  26.  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  27.  *
  28.  * @category   ToolsAndUtilities
  29.  * @package    phpDocumentor
  30.  * @subpackage Errors
  31.  * @author     Greg Beaver <cellog@php.net>
  32.  * @copyright  2001-2008 Gregory Beaver
  33.  * @license    http://www.opensource.org/licenses/lgpl-license.php LGPL
  34.  * @version    CVS: $Id: Errors.inc 253641 2008-02-24 02:35:44Z ashnazg $
  35.  * @filesource
  36.  * @link       http://www.phpdoc.org
  37.  * @link       http://pear.php.net/PhpDocumentor
  38.  * @see        parserDocBlock, parserInclude, parserPage, parserClass
  39.  * @see        parserDefine, parserFunction, parserMethod, parserVar
  40.  * @since      0.4
  41.  * @todo       CS cleanup - change package to PhpDocumentor
  42.  */
  43. /**
  44.  * warning triggered when inheritance could be from more than one class
  45.  */
  46. define("PDERROR_MULTIPLE_PARENT"1);
  47. /**
  48.  * warning triggered when parent class doesn't exist
  49.  */
  50. define("PDERROR_PARENT_NOT_FOUND"2);
  51. /**
  52.  * warning triggered when an {@inline tag} is not terminated
  53.  * (no } before the * / ending the comment)
  54.  */
  55. define("PDERROR_UNTERMINATED_INLINE_TAG"3);
  56. /**
  57.  * warning triggered when inheritance could be from more than one class
  58.  */
  59. define("PDERROR_CLASS_EXISTS"4);
  60. /**
  61.  * warning triggered when inheritance could be from more than one class
  62.  */
  63. define("PDERROR_INHERITANCE_CONFLICT"5);
  64. /**
  65.  * warning triggered when a converter is passed to
  66.  * {@link phpDocumentor_IntermediateParser::addConverter()} that is not a class
  67.  */
  68. define("PDERROR_CONVERTER_NOT_FOUND"6);
  69. /**
  70.  * warning triggered when a converter is passed to
  71.  * {@link phpDocumentor_IntermediateParser::addConverter()} that is not a class
  72.  */
  73. define("PDERROR_NO_CONVERTERS"7);
  74. /**
  75.  * warning triggered when the arguments to @access are neither public nor private
  76.  */
  77. define("PDERROR_ACCESS_WRONG_PARAM"8);
  78. /**
  79.  * warning triggered when there are multiple @access tags in a docblock
  80.  */
  81. define("PDERROR_MULTIPLE_ACCESS_TAGS"9);
  82. /**
  83.  * warning triggered when there are multiple @return tags in a docblock
  84.  */
  85. define("PDERROR_MULTIPLE_RETURN_TAGS"10);
  86. /**
  87.  * warning triggered when there are multiple @var tags in a docblock
  88.  */
  89. define("PDERROR_MULTIPLE_VAR_TAGS"11);
  90. /**
  91.  * warning triggered when there are multiple @package tags in a docblock
  92.  */
  93. define("PDERROR_MULTIPLE_PACKAGE_TAGS"12);
  94. /**
  95.  * warning triggered when there are multiple @subpackage tags in a docblock
  96.  */
  97. define("PDERROR_MULTIPLE_SUBPACKAGE_TAGS"13);
  98. /**
  99.  * warning triggered when the package or subpackage name is illegal
  100.  */
  101. define("PDERROR_ILLEGAL_PACKAGENAME"14);
  102. /**
  103.  * warning triggered when there a @package tag is used in a function,
  104.  * define, method, var or include
  105.  */
  106. define("PDERROR_OVERRIDDEN_PACKAGE_TAGS"15);
  107. /**
  108.  * warning triggered when there a @subpackage tag is used in a function,
  109.  * define, method, var or include
  110.  */
  111. define("PDERROR_OVERRIDDEN_SUBPACKAGE_TAGS"16);
  112. /**
  113.  * warning triggered when classes in the same package have the same name
  114.  */
  115. define("PDERROR_CLASS_CONFLICT"17);
  116. /**
  117.  * warning triggered when classes in the same package have the same name
  118.  */
  119. define("PDERROR_UNKNOWN_TAG"18);
  120. /**
  121.  * warning triggered when there are multiple @name tags in a docblock
  122.  */
  123. define("PDERROR_MULTIPLE_NAME_TAGS"19);
  124. /**
  125.  * warning triggered when there are multiple @name tags in a docblock
  126.  * @todo I think this description is a copy/paste that was never updated
  127.  */
  128. define("PDERROR_PACKAGEOUTPUT_DELETES_PARENT_FILE"20);
  129. /**
  130.  * warning triggered when there are multiple @name tags in a docblock
  131.  * @todo I think this description is a copy/paste that was never updated
  132.  */
  133. define("PDERROR_GLOBAL_NOT_FOUND"21);
  134. /**
  135.  * warning triggered when there are multiple @name tags in a docblock
  136.  * @todo I think this description is a copy/paste that was never updated
  137.  */
  138. define("PDERROR_MULTIPLE_GLOBAL_TAGS"22);
  139. /**
  140.  * warning triggered when there are multiple @name tags in a docblock
  141.  * @todo I think this description is a copy/paste that was never updated
  142.  */
  143. define("PDERROR_MALFORMED_GLOBAL_TAG"23);
  144. /**
  145.  * warning triggered when an @ignore tag is used in a DocBlock preceding
  146.  * a method, variable, include, or global variable
  147.  */
  148. define("PDERROR_IGNORE_TAG_IGNORED"24);
  149. /**
  150.  * warning triggered when a duplicate element is encountered that will be
  151.  * ignored by the documentor
  152.  */
  153. define("PDERROR_ELEMENT_IGNORED"25);
  154. /**
  155.  * warning triggered when an entire page is ignored because of @access private
  156.  */
  157. define("PDERROR_PARSEPRIVATE"26);
  158. /**
  159.  * warning triggered when an entire page is ignored because of @access private
  160.  * @todo I think this description is a copy/paste that was never updated
  161.  */
  162. define("PDERROR_UNKNOWN_COMMANDLINE"27);
  163. /**
  164.  * warning triggered when an entire page is ignored because of @access private
  165.  * @todo I think this description is a copy/paste that was never updated
  166.  */
  167. define("PDERROR_NEED_WHITESPACE"28);
  168. /**
  169.  * warning triggered when an entire page is ignored because of @access private
  170.  * @todo I think this description is a copy/paste that was never updated
  171.  */
  172. define("PDERROR_CLASS_PARENT_NOT_FOUND"29);
  173. /**
  174.  * warning triggered when a getClassByPackage is called and can't find the class
  175.  */
  176. define("PDERROR_CLASS_NOT_IN_PACKAGE"30);
  177. /**
  178.  * warning triggered when a { @source } inline tag is used in a docblock not
  179.  * preceding a function
  180.  */
  181. define("PDERROR_SOURCE_TAG_FUNCTION_NOT_FOUND"31);
  182. /**
  183.  * warning triggered when a docblock template is never turned off
  184.  * with /**#@-* / (no space)
  185.  */
  186. define("PDERROR_DB_TEMPLATE_UNTERMINATED"32);
  187. /**
  188.  * warning triggered when a docblock has an unmatched &lt;ol&gt; or &lt;ul&gt;
  189.  */
  190. define("PDERROR_UNMATCHED_LIST_TAG"33);
  191. /**
  192.  * warning triggered when another tag is nested in &lt;b&gt;
  193.  * (not allowed in phpDocumentor)
  194.  */
  195. define("PDERROR_CANT_NEST_IN_B"34);
  196. /**
  197.  * warning triggered when a docbook tag is not properly matched
  198.  */
  199. define("PDERROR_UNMATCHED_TUTORIAL_TAG"35);
  200. /**
  201.  * warning triggered when an inline tag is found inside an xml tag name
  202.  * in a package page
  203.  */
  204. define("PDERROR_CANT_HAVE_INLINE_IN_TAGNAME"36);
  205. /**
  206.  * warning triggered when a tutorial is referenced
  207.  * via @tutorial/{ @tutorial} and is not found
  208.  */
  209. define("PDERROR_TUTORIAL_NOT_FOUND"37);
  210. /**
  211.  * warning triggered when a tutorial lists itself as a child tutorial
  212.  */
  213. define("PDERROR_TUTORIAL_IS_OWN_CHILD"38);
  214. /**
  215.  * warning triggered when a tutorial's child lists the parent tutorial
  216.  * as a child tutorial
  217.  */
  218. define("PDERROR_TUTORIAL_IS_OWN_GRANDPA"39);
  219. /**
  220.  * warning triggered when a tutorial's child in the .ini file doesn't exist in the
  221.  * package and subpackage of the parent
  222.  */
  223. define("PDERROR_CHILD_TUTORIAL_NOT_FOUND"40);
  224. /**
  225.  * warning triggered when a <pdffunction:funcname /> tag is used in the PDF
  226.  * Converter and no funcname is present (<pdffunction: />)
  227.  */
  228. define("PDERROR_PDFFUNCTION_NO_FUNC"41);
  229. /**
  230.  * warning triggered when a <pdffunction:funcname /> tag is used in the PDF
  231.  * Converter and funcname is not a {@link Cezpdf} method
  232.  */
  233. define("PDERROR_PDF_METHOD_DOESNT_EXIST"42);
  234. /**
  235.  * warning triggered when a <pdffunction:funcname arg=$tempvar/> tag
  236.  * is used in the PDF
  237.  * Converter and "tempvar" is not set from the return of a previous pdffunction tag
  238.  */
  239. define("PDERROR_PDF_TEMPVAR_DOESNT_EXIST"43);
  240. /**
  241.  * warning triggered when a subsection's title is asked for, but the subsection
  242.  * is not found
  243.  */
  244. define("PDERROR_TUTORIAL_SUBSECTION_NOT_FOUND"44);
  245. /**
  246.  * warning triggered when a subsection's title is asked for, but the subsection
  247.  * is not found
  248.  */
  249. define("PDERROR_UNTERMINATED_ATTRIB"45);
  250. /**
  251.  * warning triggered when no @package tag is used in a page-level
  252.  * or class-level DocBlock
  253.  */
  254. define("PDERROR_NO_PACKAGE_TAG"46);
  255. /**
  256.  * warning triggered when no @access private tag is used in a
  257.  * global variable/method/var with _ as first char in name
  258.  * and --pear was specified
  259.  */
  260. define("PDERROR_PRIVATE_ASSUMED"47);
  261. /**
  262.  * warning triggered when an example's path from @example /path/to/example.php
  263.  * is not found
  264.  */
  265. define("PDERROR_EXAMPLE_NOT_FOUND"48);
  266. /**
  267.  * warning triggered when an example's path from @example /path/to/example.php
  268.  * is not found
  269.  */
  270. define("PDERROR_NO_CONVERTER_HANDLER"49);
  271. /**
  272.  * warning triggered when an example's path from @example /path/to/example.php
  273.  * is not found
  274.  */
  275. define("PDERROR_INLINETAG_IN_SEE"50);
  276. /**
  277.  * warning triggered when an id attribute in a tutorial docbook tag is not
  278.  * an {@}id} inline tag
  279.  */
  280. define("PDERROR_ID_MUST_BE_INLINE"51);
  281. /**
  282.  * warning triggered when an {@}internal}} tag is not closed
  283.  */
  284. define("PDERROR_INTERNAL_NOT_CLOSED"52);
  285. /**
  286.  * warning triggered when an {@}source} tag is found in a short description
  287.  */
  288. define("PDERROR_SOURCE_TAG_IGNORED"53);
  289. /**
  290.  * warning triggered when a child converter doesn't override
  291.  * getFormattedClassTrees()
  292.  */
  293. define("PDERROR_CONVERTER_OVR_GFCT"54);
  294. /**
  295.  * warning triggered when a package is already associated with a category, and
  296.  * a new association is found
  297.  */
  298. define("PDERROR_PACKAGECAT_SET"55);
  299. /**
  300.  * warning triggered when text in a docblock list is not contained in
  301.  * an <<li>> opening tag
  302.  */
  303. define("PDERROR_TEXT_OUTSIDE_LI"56);
  304. /**
  305.  * warning triggered when a DocBlock html tag is unclosed
  306.  */
  307. define("PDERROR_UNCLOSED_TAG"57);
  308. /**
  309.  * warning triggered by @filesource, if PHP < 4.3.0
  310.  */
  311. define("PDERROR_TAG_NOT_HANDLED"58);
  312. /**
  313.  * warning triggered by sourcecode="on", if PHP < 4.3.0
  314.  */
  315. define("PDERROR_SOURCECODE_IGNORED"59);
  316. /**
  317.  * warning triggered by an empty tag
  318.  */
  319. define("PDERROR_MALFORMED_TAG"60);
  320. /**
  321.  * warning triggered by more than 1 @category tag
  322.  */
  323. define("PDERROR_MULTIPLE_CATEGORY_TAGS"61);
  324. /**
  325.  * warning triggered by {@}inheritdoc} in a non-inheritable situation
  326.  */
  327. define("PDERROR_INHERITDOC_DONT_WORK_HERE"62);
  328. /**
  329.  * warning triggered by @example path/to/example with no title
  330.  */
  331. define("PDERROR_EMPTY_EXAMPLE_TITLE"63);
  332. /**
  333.  * warning triggered by non-existent template directory
  334.  */
  335. define("PDERROR_TEMPLATEDIR_DOESNT_EXIST"64);
  336. /**
  337.  * warning triggered by an unterminated entity in a tutorial
  338.  */
  339. define("PDERROR_UNTERMINATED_ENTITY"65);
  340. /**
  341.  * warning triggered by an unterminated entity in a tutorial
  342.  */
  343. define("PDERROR_BEAUTIFYING_FAILED"66);
  344. /**
  345.  * warning triggered by a function with no name
  346.  *
  347.  * <pre>
  348.  * function ($params)
  349.  * {
  350.  * }
  351.  * </pre>
  352.  * triggers this error
  353.  */
  354. define("PDERROR_FUNCTION_HAS_NONAME"67);
  355. /**
  356.  * warning triggered by a page-level docblock preceding a source element
  357.  *
  358.  * <code>
  359.  * <?php
  360.  * /**
  361.  *  * Page-level DocBlock
  362.  *  * @package pagepackage
  363.  *  *{@*} 
  364.  * include 'file.php';
  365.  * </code>
  366.  */
  367. define("PDERROR_DOCBLOCK_CONFLICT"68);
  368. /**
  369.  * warning triggered when a file does not contain a page-level docblock
  370.  */
  371. define("PDERROR_NO_PAGE_LEVELDOCBLOCK"69);
  372. /**
  373.  * warning triggered when the first docblock in a file with a @package tag
  374.  * precedes a class.  In this case, the class gets the docblock.
  375.  */
  376. define("PDERROR_DOCBLOCK_GOES_CLASS"70);
  377. /**
  378.  * warning triggered in tutorial parsing if there is a missing {@id} inline tag
  379.  */
  380. define("PDERROR_NO_DOCBOOK_ID"71);
  381. /**
  382.  * warning triggered if someone brilliant tries "class X extends X {"
  383.  */
  384. define("PDERROR_CANNOT_EXTEND_SELF"72);
  385. /**
  386.  * warning triggered by improper "@uses {@link blah}"
  387.  */
  388. define("PDERROR_DUMB_USES"73);
  389. /**
  390.  * warning triggered if <<ul>> is nested inside <<ul>> and not <<li>>
  391.  */
  392. define("PDERROR_UL_IN_UL"74);
  393. /**
  394.  * warning triggered if a command line option does not have a valid value passed in
  395.  */
  396. define("PDERROR_INVALID_VALUES"75);
  397. /**
  398.  * warning triggered when {@}internal}} is nested inside another {@}internal}}
  399.  */
  400. define("PDERROR_NESTED_INTERNAL"76);
  401. /**
  402.  * warning triggered when @todo is used on an include element
  403.  */
  404. define("PDERROR_NOTODO_INCLUDE"77);
  405. /**
  406.  *    warning triggered when a class or method hasn't got docblock
  407.  */
  408. define("PDERROR_UNDOCUMENTED_ELEMENT"78);
  409. /**
  410.  * warning triggered when any of {@}property}}, {@}property-read}},
  411.  * {@}property-write}}, or {@}method}} tag does not have name
  412.  */
  413. define("PDERROR_MISSING_PROPERTY_TAG_NAME"79);
  414. /**
  415.  * warning triggered when the PHP version being used has dangerous bug/behavior
  416.  */
  417. define("PDERROR_DANGEROUS_PHP_BUG_EXISTS"80);
  418. /**
  419.  * warning triggered when the alias value in an page-level docblock's @name tag
  420.  * is the same value as the target filename is it supposed to alias
  421.  */
  422. define("PDERROR_NAME_ALIAS_SAME_AS_TARGET"81);
  423. /**
  424.  * warning triggered when the a loop recursion tripwire has been tripped
  425.  */
  426. define("PDERROR_LOOP_RECURSION_LIMIT_REACHED"82);
  427.  
  428. /**
  429.  * Error messages for phpDocumentor parser warnings
  430.  * @global array $GLOBALS['phpDocumentor_warning_descrip'] 
  431.  * @name $phpDocumentor_warning_descrip
  432.  */
  433. $GLOBALS['phpDocumentor_warning_descrip'=
  434.     array(
  435.         PDERROR_MULTIPLE_PARENT => 
  436.             'Class %s has multiple possible parents, package inheritance aborted'
  437.         ,
  438.         PDERROR_PARENT_NOT_FOUND => 
  439.             'Class %s parent %s not found'
  440.         ,
  441.         PDERROR_INHERITANCE_CONFLICT => 
  442.             'Class %s in file %s has multiple possible parents named %s.  ' .
  443.             'Cannot resolve name conflict,' "\n" 
  444.             ' try ignoring a file that contains the conflicting parent class'
  445.         ,
  446.         PDERROR_UNKNOWN_TAG => 
  447.             'Unknown tag "@%s" used'
  448.         ,
  449.         PDERROR_IGNORE_TAG_IGNORED => 
  450.             '@ignore tag used for %s element "%s" will be ignored'
  451.         ,
  452.         PDERROR_ELEMENT_IGNORED => 
  453.             "\n" 'duplicate %s element "%s" in file %s will be ignored.' "\n" .
  454.             'Use an @ignore tag on the original ' .
  455.             'if you want this case to be documented.'
  456.         ,
  457.         PDERROR_PARSEPRIVATE => 
  458.             "entire page %s ignored because of @access private." "\n" 
  459.             "Choose -pp to enable parsing of private elements"
  460.         ,
  461.         PDERROR_CLASS_PARENT_NOT_FOUND => 
  462.             "class %s in package %s parent not found in @see parent::%s"
  463.         ,
  464.         PDERROR_CLASS_NOT_IN_PACKAGE => 
  465.             "class %s was not found in package %s"
  466.         ,
  467.         PDERROR_DB_TEMPLATE_UNTERMINATED => 
  468.             'docblock template never terminated with /**#@-*/'
  469.         ,
  470.         PDERROR_PDF_METHOD_DOESNT_EXIST => 
  471.             '<pdffunction:%s /> called, but pdf method "%s" doesn\'t exist'
  472.         ,
  473.         PDERROR_TUTORIAL_NOT_FOUND => 
  474.             "tutorial \"%s\" not found, does it exist?"
  475.         ,
  476.         PDERROR_CHILD_TUTORIAL_NOT_FOUND => 
  477.             'child tutorial "%s" listed in %s not found ' 
  478.             'in parent package "%s" subpackage "%s"'
  479.         ,
  480.         PDERROR_TUTORIAL_SUBSECTION_NOT_FOUND => 
  481.             'tutorial %s subsection "%s" doesn\'t exist, ' .
  482.             'but its title was asked for'
  483.         ,
  484.         PDERROR_NO_PACKAGE_TAG => 
  485.             'no @package tag was used in a DocBlock for %s %s'
  486.         ,
  487.         PDERROR_PRIVATE_ASSUMED => 
  488.             '%s "%s" is assumed to be @access private because its name ' .
  489.             'starts with _, but has no @access tag'
  490.         ,
  491.         PDERROR_EXAMPLE_NOT_FOUND => 
  492.             'example file "%s" does not exist'
  493.         ,
  494.         PDERROR_SOURCE_TAG_IGNORED => 
  495.             '{@source} can only be used in the long description, ' .
  496.             'not in the short description: "%s"'
  497.         ,
  498.         PDERROR_PACKAGECAT_SET => 
  499.             'package %s is already in category %s, ' .
  500.             'will now replace with category %s'
  501.         ,
  502.         PDERROR_SOURCECODE_IGNORED => 
  503.             'sourcecode command-line option is ignored ' 
  504.             'when your PHP build has no tokenizer support'
  505.         ,
  506.         PDERROR_INHERITDOC_DONT_WORK_HERE => 
  507.             '{@inheritdoc} can only be used in the docblock of a child class'
  508.         ,
  509.         PDERROR_EMPTY_EXAMPLE_TITLE => 
  510.             'Example file found at "%s" has no title, using "%s"'
  511.         ,
  512.         PDERROR_DOCBLOCK_CONFLICT => 
  513.             'Page-level DocBlock precedes "%s %s", ' .
  514.             'use another DocBlock to document the source element'
  515.         ,
  516.         PDERROR_NO_PAGE_LEVELDOCBLOCK => 
  517.             'File "%s" has no page-level DocBlock, ' .
  518.             'use @package in the first DocBlock to create one'
  519.         ,
  520.         PDERROR_DOCBLOCK_GOES_CLASS => 
  521.             'DocBlock would be page-level, but precedes class "%s", ' .
  522.             'use another DocBlock to document the file'
  523.         ,
  524.         PDERROR_NO_DOCBOOK_ID => 
  525.             'Tutorial section %s "%s" has no id="{@id subsection}" tag ' .
  526.             '({@id} for refentry)'
  527.         ,
  528.         PDERROR_BEAUTIFYING_FAILED => 
  529.             'Beautifying failed: %s'
  530.         ,
  531.         PDERROR_NOTODO_INCLUDE => 
  532.             '@todo on an include element is ignored (line %s, file %s)'
  533.         ,
  534.         PDERROR_UNDOCUMENTED_ELEMENT => 
  535.             '%s "%s" has no %s-level DocBlock.'
  536.         ,
  537.         PDERROR_MISSING_PROPERTY_TAG_NAME => 
  538.             '@%s magic tag does not have name, illegal. Ignoring tag "@%s %s %s"'
  539.         ,
  540.         PDERROR_NAME_ALIAS_SAME_AS_TARGET => 
  541.             '@name value is the same as the filename it is supposed to alias'
  542.         );
  543.  
  544.  
  545.  
  546. //********************************************************
  547.  
  548.  
  549.  
  550. /**
  551.  * Error messages for phpDocumentor parser errors
  552.  * @global array $GLOBALS['phpDocumentor_error_descrip'] 
  553.  * @name $phpDocumentor_error_descrip
  554.  */
  555. $GLOBALS['phpDocumentor_error_descrip'
  556.     array(
  557.         PDERROR_UNTERMINATED_INLINE_TAG => 
  558.             'Inline tag {@%s} in tag %s is unterminated, "%s"'
  559.         ,
  560.         PDERROR_CLASS_EXISTS => 
  561.             'Class %s already exists in package "%s"'
  562.         ,
  563.         PDERROR_CONVERTER_NOT_FOUND => 
  564.             'Converter %s specified by --output command-line option is not a class'
  565.         ,
  566.         PDERROR_NO_CONVERTERS => 
  567.             'No Converters have been specified by --output command-line option'
  568.         ,
  569.         PDERROR_ACCESS_WRONG_PARAM => 
  570.             '@access was passed neither "public" nor "private."  Was passed: "%s"'
  571.         ,
  572.         PDERROR_MULTIPLE_ACCESS_TAGS => 
  573.             'DocBlock has multiple @access tags, illegal. ' .
  574.             'ignoring additional tag "@access %s"'
  575.         ,
  576.         PDERROR_MULTIPLE_RETURN_TAGS => 
  577.             'DocBlock has multiple @return tags, illegal. ' .
  578.             'ignoring additional tag "@return %s %s"'
  579.         ,
  580.         PDERROR_MULTIPLE_VAR_TAGS => 
  581.             'DocBlock has multiple @var tags, illegal. ' .
  582.             'ignoring additional tag "@var %s %s"'
  583.         ,
  584.         PDERROR_MULTIPLE_PACKAGE_TAGS => 
  585.             'DocBlock has multiple @package tags, illegal. ' .
  586.             'ignoring additional tag "@package %s"'
  587.         ,
  588.         PDERROR_MULTIPLE_SUBPACKAGE_TAGS => 
  589.             'DocBlock has multiple @subpackage tags, illegal. ' .
  590.             'ignoring additional tag "@subpackage %s"'
  591.         ,
  592.         PDERROR_ILLEGAL_PACKAGENAME => 
  593.             '@%s tag has illegal %s name "%s"'
  594.         ,
  595.         PDERROR_OVERRIDDEN_PACKAGE_TAGS => 
  596.             '%s %s\'s DocBlock has @package tag, illegal. ' .
  597.             'ignoring tag "@package %s"'
  598.         ,
  599.         PDERROR_OVERRIDDEN_SUBPACKAGE_TAGS => 
  600.             '"%s" %s\'s DocBlock has @subpackage tags, illegal. ' .
  601.             'ignoring tag "@subpackage %s"'
  602.         ,
  603.         PDERROR_CLASS_CONFLICT => 
  604.             'class "%s" has multiple declarations in package %s, ' .
  605.             'in file %s and file %s, documentation will have output errors!'
  606.         ,
  607.         PDERROR_MULTIPLE_NAME_TAGS => 
  608.             'DocBlock has multiple @name tags, illegal. ' .
  609.             'ignoring additional tag "@name %s"'
  610.         ,
  611.         PDERROR_PACKAGEOUTPUT_DELETES_PARENT_FILE => 
  612.             '-po (packageoutput) option deletes parent file "%s" containing class' .
  613.             ' "%s."' "\n" '  Try using --defaultpackagename (-dn) %s to ' .
  614.             'include the parent file in the same package as the class'
  615.         ,
  616.         PDERROR_GLOBAL_NOT_FOUND => 
  617.             'global variable %s specified in @global tag was never found'
  618.         ,
  619.         PDERROR_MULTIPLE_GLOBAL_TAGS => 
  620.             '@global define tag already used for global variable "%s", ' .
  621.             'ignoring @global %s'
  622.         ,
  623.         PDERROR_MALFORMED_GLOBAL_TAG => 
  624.             'incorrect @global syntax.  ' .
  625.             'Should be @global vartype $varname or @global vartype description'
  626.         ,
  627.         PDERROR_UNKNOWN_COMMANDLINE => 
  628.             'Unknown command-line option "%s" encountered, use phpdoc -h for help'
  629.         ,
  630.         PDERROR_NEED_WHITESPACE => 
  631.             'phpDocumentor programmer error - wordparser whitespace set to false ' .
  632.             'in handleDocBlock, notify developers.  You should never see this error'
  633.         ,
  634.         PDERROR_SOURCE_TAG_FUNCTION_NOT_FOUND => 
  635.             '{@source} tag used in a docblock that isn\'t preceding a function'
  636.         ,
  637.         PDERROR_UNMATCHED_LIST_TAG => 
  638.             'unmatched ol or ul tag in DocBlock, parsing will be incorrect'
  639.         ,
  640.         PDERROR_CANT_NEST_IN_B => 
  641.             'Can\'t nest a code, pre, ul, or ol tag in a b tag in ' .
  642.             'phpDocumentor DocBlock (%s tag nested)'
  643.         ,
  644.         PDERROR_UNMATCHED_TUTORIAL_TAG => 
  645.             'While parsing extended documentation, "%s" tag was matched ' .
  646.             'with "%s" endtag, missing endtag'."\ntag contents:\"%s\""
  647.         ,
  648.         PDERROR_CANT_HAVE_INLINE_IN_TAGNAME => 
  649.             'Can\'t have an inline tag inside a package page XML tag!'
  650.         ,
  651.         PDERROR_TUTORIAL_IS_OWN_CHILD => 
  652.             'Tutorial %s lists itself as its own child in %s, illegal'
  653.         ,
  654.         PDERROR_TUTORIAL_IS_OWN_GRANDPA => 
  655.             'Tutorial %s\'s child %s lists %s as its child in %s, illegal'
  656.         ,
  657.         PDERROR_PDFFUNCTION_NO_FUNC => 
  658.             'Invalid pdffunction syntax: "<pdffunction: />", ' .
  659.             'should be "<pdffunction:functionname [arg="value"...]/>"'
  660.         ,
  661.         PDERROR_PDF_TEMPVAR_DOESNT_EXIST => 
  662.             '<pdffunction:%s arg=%s /> called ' .
  663.             'but temporary variable "%s" doesn\'t exist'
  664.         ,
  665.         PDERROR_UNTERMINATED_ATTRIB => 
  666.             'Tutorial tag %s attribute %s is unterminated, current value "%s"'
  667.         ,
  668.         PDERROR_NO_CONVERTER_HANDLER => 
  669.             'Handler for element of type "%s" called, but %s is not a method of %s'
  670.         ,
  671.         PDERROR_INLINETAG_IN_SEE => 
  672.             'Inline tags are not allowed in a @see tag'
  673.         ,
  674.         PDERROR_ID_MUST_BE_INLINE => 
  675.             '<%s id="%s"> must be <%s id="{@id %s}">'
  676.         ,
  677.         PDERROR_INTERNAL_NOT_CLOSED => 
  678.             '{@internal was never terminated with }}'
  679.         ,
  680.         PDERROR_CONVERTER_OVR_GFCT => 
  681.             'Converter "%s" must override getFormattedClassTrees() but doesn\'t'
  682.         ,
  683.         PDERROR_TEXT_OUTSIDE_LI => 
  684.             'Text cannot be outside of li tag in a DocBlock list, ' .
  685.             'parsing will be incorrect'
  686.         ,
  687.         PDERROR_UNCLOSED_TAG => 
  688.             'Unclosed %s tag in DocBlock, parsing will be incorrect'
  689.         ,
  690.         PDERROR_TAG_NOT_HANDLED => 
  691.             '"%s" tag is not available in PHP built without tokenizer support, tag ignored'
  692.         ,
  693.         PDERROR_MALFORMED_TAG => 
  694.             '"%s" tag was used without any parameters, illegal'
  695.         ,
  696.         PDERROR_MULTIPLE_CATEGORY_TAGS => 
  697.             'package has multiple @category tags, ignoring "@category %s"'
  698.         ,
  699.         PDERROR_TEMPLATEDIR_DOESNT_EXIST => 
  700.             'template directory "%s" does not exist'
  701.         ,
  702.         PDERROR_UNTERMINATED_ENTITY => 
  703.             'entity &%s is unterminated'
  704.         ,
  705.         PDERROR_FUNCTION_HAS_NONAME => 
  706.             'function has no name (PHP error - test your file before parsing!)'
  707.         ,
  708.         PDERROR_CANNOT_EXTEND_SELF => 
  709.             'class %s cannot extend itself - TEST YOUR CODE BEFORE PARSING'
  710.         ,
  711.         PDERROR_DUMB_USES => 
  712.             '@uses can only link to string data'
  713.         ,
  714.         PDERROR_UL_IN_UL => 
  715.             'ul/ol tags cannot be directly nested inside ul/ol, nest inside li'
  716.         ,
  717.         PDERROR_INVALID_VALUES => 
  718.             'command %s was passed "%s" but must be one of %s'
  719.         ,
  720.         PDERROR_NESTED_INTERNAL => 
  721.             '{@internal}} cannot be nested inside {@internal}}'
  722.         ,
  723.         PDERROR_DANGEROUS_PHP_BUG_EXISTS => 
  724.             'Dangerous PHP Bug exists in PHP version %s that can be triggered ' .
  725.             'by this parse (see PHP Bug #%s and PEAR Bug #%s)'
  726.         ,
  727.         PDERROR_LOOP_RECURSION_LIMIT_REACHED => 
  728.             'An internal loop in PhpDocumentor has reached its preset ' .
  729.             'recursion limit, preventing a possible infinite loop condition.'
  730.         );
  731.  
  732. /**
  733.  * encapsulates warning information
  734.  *
  735.  * @category   ToolsAndUtilities
  736.  * @package    phpDocumentor
  737.  * @subpackage Errors
  738.  * @author     Greg Beaver <cellog@php.net>
  739.  * @copyright  2001-2008 Gregory Beaver
  740.  * @license    http://www.opensource.org/licenses/lgpl-license.php LGPL
  741.  * @version    Release: @VER@
  742.  * @link       http://www.phpdoc.org
  743.  * @link       http://pear.php.net/PhpDocumentor
  744.  * @todo       CS cleanup - change package to PhpDocumentor
  745.  */
  746. class RecordWarning
  747. {
  748.     /**
  749.      * name of global variable that descriptors for this warning/error is kept
  750.      * @var string 
  751.      */
  752.     var $type = 'phpDocumentor_warning_descrip';
  753.     /**
  754.      * file this error occurred in
  755.      * @var string 
  756.      */
  757.     var $file = false;
  758.     /**
  759.      * line number of the file this error occurred in
  760.      * @var integer 
  761.      */
  762.     var $linenum;
  763.     /**
  764.      * error string
  765.      * @var string 
  766.      */
  767.     var $data;
  768.     /**
  769.      * error number
  770.      * @see Errors.inc
  771.      * @var string 
  772.      */
  773.     var $num;
  774.     /**
  775.      * Constructor
  776.      *
  777.      * @param string  $file    filename this error occurred in ({@link $file})
  778.      * @param integer $linenum line number this error occurred on ({@link $linenum})
  779.      * @param integer $num     Error number defined in {@link Errors.inc}
  780.      * @param string  $data... variable number of strings, up to 4,
  781.      *
  782.      * @todo CS Cleanup - do I need to add $data to the method signature?
  783.      *                          to sprintf based on the error number
  784.      */
  785.     function RecordWarning($file$linenum$num)
  786.     {
  787.         $this->file    = $file;
  788.         $this->linenum = $linenum;
  789.         $a             array('''''''');
  790.         if (func_num_args()>3{
  791.             for ($i=3;$i<func_num_args();$i++{
  792.                 $a[$i 3func_get_arg($i);
  793.             }
  794.         }
  795.  
  796.         $this->num  = $num;
  797.         $this->data = 
  798.             sprintf($GLOBALS[$this->type][$this->num]$a[0]$a[1]$a[2]$a[3]);
  799.         $this->output();
  800.     }
  801.    
  802.     /**
  803.      * prints the warning
  804.      *
  805.      * @param string $string the warning to print
  806.      *
  807.      * @return void 
  808.      */
  809.     function output($string false)
  810.     {
  811.         if ($string{
  812.             if ($this->file{
  813.                 return 
  814.                     "WARNING in $this->file on line $this->linenum$this->data\n";
  815.             else {
  816.                 return "WARNING: $this->data\n";
  817.             }
  818.         }
  819.         if ($this->file{
  820.             phpDocumentor_out("WARNING in $this->file .
  821.                 "on line $this->linenum$this->data\n");
  822.         else {
  823.             phpDocumentor_out("WARNING: $this->data\n");
  824.         }
  825.         flush();
  826.     }
  827. }
  828.  
  829. /**
  830.  * encapsulates error information
  831.  *
  832.  * @category   ToolsAndUtilities
  833.  * @package    phpDocumentor
  834.  * @subpackage Errors
  835.  * @author     Greg Beaver <cellog@php.net>
  836.  * @copyright  2001-2008 Gregory Beaver
  837.  * @license    http://www.opensource.org/licenses/lgpl-license.php LGPL
  838.  * @version    Release: @VER@
  839.  * @link       http://www.phpdoc.org
  840.  * @link       http://pear.php.net/PhpDocumentor
  841.  * @todo       CS cleanup - change package to PhpDocumentor
  842.  */
  843. class RecordError extends RecordWarning
  844. {
  845.     /**
  846.      * name of global variable that descriptors for this warning/error is kept
  847.      * @var string 
  848.      */
  849.     var $type = 'phpDocumentor_error_descrip';
  850.  
  851.     /**
  852.      * prints the error
  853.      *
  854.      * @param string $string the error to print
  855.      *
  856.      * @return string 
  857.      */
  858.     function output($string false)
  859.     {
  860.         if ($string{
  861.             if ($this->file{
  862.                 return 
  863.                     "\n\tERROR in $this->file on line $this->linenum$this->data\n"
  864.                 ;
  865.             else {
  866.                 return "\n\tERROR: $this->data\n";
  867.             }
  868.         }
  869.         if ($this->file{
  870.             phpDocumentor_out("\n\tERROR in $this->file .
  871.                 "on line $this->linenum$this->data\n");
  872.         else {
  873.             phpDocumentor_out("\n\tERROR: $this->data\n");
  874.         }
  875.         flush();
  876.     }
  877. }
  878.  
  879. /**
  880.  * contains all the errors/warnings
  881.  *
  882.  * @category   ToolsAndUtilities
  883.  * @package    phpDocumentor
  884.  * @subpackage Errors
  885.  * @author     Greg Beaver <cellog@php.net>
  886.  * @copyright  2001-2008 Gregory Beaver
  887.  * @license    http://www.opensource.org/licenses/lgpl-license.php LGPL
  888.  * @version    Release: @VER@
  889.  * @link       http://www.phpdoc.org
  890.  * @link       http://pear.php.net/PhpDocumentor
  891.  * @todo       CS cleanup - change package to PhpDocumentor
  892.  * @see        $errors, $warnings
  893.  */
  894. class ErrorTracker
  895. {
  896.     /**
  897.      * array of {@link RecordError}s
  898.      * @var array 
  899.      */
  900.     var $errors = array();
  901.     /**
  902.      * array of {@link RecordWarning}s
  903.      * @var array 
  904.      */
  905.     var $warnings = array();
  906.     /**
  907.      * @var string 
  908.      */
  909.     var $curfile = '';
  910.     /**
  911.      * @var integer 
  912.      */
  913.     var $linenum = 0;
  914.    
  915.     /**
  916.      * index in {@link $errors} of last error triggered
  917.      * @var integer|false
  918.      */
  919.     var $lasterror = false;
  920.    
  921.     /**
  922.      * index in {@link $warnings} of last warning triggered
  923.      * @var integer|false
  924.      */
  925.     var $lastwarning = false;
  926.    
  927.     /**
  928.      * This function subscribes to two events in the Parser
  929.      * in order to keep track of line number information and file name.
  930.      *
  931.      * @param integer $num  parser-passed event
  932.      *                       (see {@link PHPDOCUMENTOR_EVENT_NEWLINENUM,}
  933.      *                       PHPDOCUMENTOR_EVENT_NEWFILE})
  934.      * @param mixed   $data either a line number if $num is
  935.      *                       PHPDOCUMENTOR_EVENT_NEWLINENUM or a file name
  936.      *                       if $num is PHPDOCUMENTOR_EVENT_NEWFILE
  937.      *
  938.      * @return void 
  939.      */
  940.     function handleEvent($num,$data)
  941.     {
  942.         switch($num{
  943.         case PHPDOCUMENTOR_EVENT_NEWLINENUM :
  944.             $this->linenum = $data;
  945.             break;
  946.  
  947.         case PHPDOCUMENTOR_EVENT_NEWFILE :
  948.             $this->linenum = 0;
  949.             $this->curfile = $data;
  950.             break;
  951.  
  952.         case 1000000635 // debugging
  953.             phpDocumentor_out($this->curfile . 
  954.                 ' has ' $this->linenum . ' lines' "\n");
  955.             flush();
  956.             break;
  957.         }
  958.     }
  959.  
  960.     /**
  961.      * add a new warning to the {@link $warnings} array
  962.      *
  963.      * @param integer $num     error number from {@link Errors.inc}
  964.      * @param string  $data... up to 4 string parameters to sprintf()
  965.      *                          into the error string for error number $num
  966.      *
  967.      * @return void 
  968.      * @todo CS Cleanup - do I need to add $data to the method signature?
  969.      */
  970.     function addWarning($num)
  971.     {
  972.         $a array('''''''');
  973.         if (func_num_args()>1{
  974.             for ($i=1;$i<func_num_args();$i++{
  975.                 $a[$i 1func_get_arg($i);
  976.             }
  977.         }
  978.         $this->warnings[new RecordWarning($this->curfile
  979.             $this->linenum$num$a[0]$a[1]$a[2]$a[3]);
  980.         $this->lastwarning = count($this->warnings1;
  981.     }
  982.  
  983.     /**
  984.      * add a new error to the {@link $errors} array
  985.      *
  986.      * @param integer $num     error number from {@link Errors.inc}
  987.      * @param string  $data... up to 4 string parameters to sprintf()
  988.      *                          into the error string for error number $num
  989.      *
  990.      * @return void 
  991.      * @todo CS Cleanup - do I need to add $data to the method signature?
  992.      */
  993.     function addError($num)
  994.     {
  995.         $a array('''''''');
  996.         if (func_num_args()>1{
  997.             for ($i=1;$i<func_num_args();$i++{
  998.                 $a[$i 1func_get_arg($i);
  999.             }
  1000.         }
  1001.         $this->errors[new RecordError($this->curfile,
  1002.             $this->linenum$num$a[0]$a[1]$a[2]$a[3]);
  1003.         $this->lasterror = count($this->errors1;
  1004.     }
  1005.    
  1006.     /**
  1007.      * add a new error to the {@link $errors} array and returns the error string
  1008.      *
  1009.      * @param integer $num     error number from {@link Errors.inc}
  1010.      * @param string  $data... up to 4 string parameters to sprintf()
  1011.      *                          into the error string for error number $num
  1012.      *
  1013.      * @return void 
  1014.      * @todo CS Cleanup - do I need to add $data to the method signature?
  1015.      */
  1016.     function addErrorReturn($num)
  1017.     {
  1018.         $a array('''''''');
  1019.         if (func_num_args()>1{
  1020.             for ($i=1;$i<func_num_args();$i++{
  1021.                 $a[$i 1func_get_arg($i);
  1022.             }
  1023.         }
  1024.         $this->errors[new RecordError($this->curfile,
  1025.             $this->linenum$num$a[0]$a[1]$a[2]$a[3]false);
  1026.         $this->lasterror = count($this->errors1;
  1027.     }
  1028.    
  1029.     /**
  1030.      * Get sorted array of all warnings in parsing/conversion
  1031.      *
  1032.      * @return array 
  1033.      */
  1034.     function &returnWarnings()
  1035.     {
  1036.         usort($this->warningsarray($this"errorsort"));
  1037.         return $this->warnings;
  1038.     }
  1039.    
  1040.     /**
  1041.      * Get sorted array of all non-fatal errors in parsing/conversion
  1042.      *
  1043.      * @return array 
  1044.      */
  1045.     function &returnErrors()
  1046.     {
  1047.         usort($this->errorsarray($this"errorsort"));
  1048.         return $this->errors;
  1049.     }
  1050.    
  1051.     /**
  1052.      * sort two errors
  1053.      *
  1054.      * @param RecordError|RecordWarning$a the first error/warning
  1055.      * @param RecordError|RecordWarning$b the second error/warning
  1056.      *
  1057.      * @return int 
  1058.      * @access private
  1059.      */
  1060.     function errorsort($a$b)
  1061.     {
  1062.         if (!$a->filereturn -1;
  1063.         if (!$b->filereturn 1;
  1064.         if ($a->file == $b->file{
  1065.             if ($a->linenum == $b->linenumreturn 0;
  1066.             if ($a->linenum $b->linenumreturn -1;
  1067.             return 1;
  1068.         }
  1069.         return strnatcasecmp($a->file$b->file);
  1070.     }
  1071.    
  1072.     /**
  1073.      * Get the error message of the last error
  1074.      *
  1075.      * @return string 
  1076.      */
  1077.     function returnLastError()
  1078.     {
  1079.         return $this->errors[$this->lasterror]->output(true);
  1080.     }
  1081.  
  1082.     /**
  1083.      * Get the warning message of the last warning
  1084.      *
  1085.      * @return string 
  1086.      */
  1087.     function returnLastWarning()
  1088.     {
  1089.         return $this->warnings[$this->lastwarning]->output(true);
  1090.     }
  1091. }
  1092.  
  1093. /**
  1094.  * @global ErrorTracker $GLOBALS['phpDocumentor_errors'] 
  1095.  * @name $phpDocumentor_errors
  1096.  */
  1097. $GLOBALS['phpDocumentor_errors'new ErrorTracker;
  1098.  
  1099. /**
  1100.  * add an Error
  1101.  *
  1102.  * @param integer $num     error number from {@link Errors.inc}
  1103.  * @param string  $data... up to 4 string parameters to sprintf()
  1104.  *                          into the error string for error number $num
  1105.  *
  1106.  * @return void 
  1107.  * @see ErrorTracker::addError()
  1108.  * @todo CS Cleanup - do I need to add $data to the method signature?
  1109.  */
  1110. function addError($num)
  1111. {
  1112.     global $phpDocumentor_errors;
  1113.     $a array('''''''');
  1114.     if (func_num_args()>1{
  1115.         for ($i=1;$i<func_num_args();$i++{
  1116.             $a[$i 1func_get_arg($i);
  1117.         }
  1118.     }
  1119.     $phpDocumentor_errors->addError($num$a[0]$a[1]$a[2]$a[3]);
  1120. }
  1121.  
  1122. /**
  1123.  * like {@link addError()} but exits parsing
  1124.  *
  1125.  * @param integer $num     error number from {@link Errors.inc}
  1126.  * @param string  $data... up to 4 string parameters to sprintf()
  1127.  *                          into the error string for error number $num
  1128.  *
  1129.  * @return void 
  1130.  * @global ErrorTracker repository for all errors generated by phpDocumentor
  1131.  * @see ErrorTracker::addError()
  1132.  * @todo CS Cleanup - do I need to add $data to the method signature?
  1133.  */
  1134. function addErrorDie($num)
  1135. {
  1136.     global $phpDocumentor_errors;
  1137.     $a array('''''''');
  1138.     if (func_num_args()>1{
  1139.         for ($i=1;$i<func_num_args();$i++{
  1140.             $a[$i 1func_get_arg($i);
  1141.         }
  1142.     }
  1143.     $phpDocumentor_errors->addErrorReturn($num$a[0]$a[1]$a[2]$a[3]);
  1144.     echo $phpDocumentor_errors->returnLastError();
  1145.     die(1);
  1146. }
  1147.  
  1148. /**
  1149.  * add a Warning
  1150.  *
  1151.  * @param integer $num     warning number from {@link Errors.inc}
  1152.  * @param string  $data... up to 4 string parameters to sprintf()
  1153.  *                          into the error string for error number $num
  1154.  *
  1155.  * @return void 
  1156.  * @global ErrorTracker repository for all errors generated by phpDocumentor
  1157.  * @see ErrorTracker::addWarning()
  1158.  * @todo CS Cleanup - do I need to add $data to the method signature?
  1159.  */
  1160. function addWarning($num)
  1161. {
  1162.     global $phpDocumentor_errors;
  1163.     $a array('''''''');
  1164.     if (func_num_args()>1{
  1165.         for ($i=1;$i<func_num_args();$i++{
  1166.             $a[$i 1func_get_arg($i);
  1167.         }
  1168.     }
  1169.  
  1170.     $phpDocumentor_errors->addWarning($num$a[0]$a[1]$a[2]$a[3]);
  1171. }
  1172. ?>
    Поддержать сайт на родительском проекте КГБ