Manual:mwdoc-filter.php
From Linux Web Expert
<td class="mw-version-versionbox" title="<translate nowrap> The latest stable version is <tvar name=1>1.41</tvar></translate>">
<translate> ≥</translate> 1.20
<translate> MediaWiki version:</translate> |
MediaWiki file: mwdoc-filter.php | |
---|---|
Location: | maintenance/ |
Source code: | master • 1.41.1 • 1.40.3 • 1.39.7 |
Classes: | Find code • Find documentation |
Details
mwdoc-filter.php file is a Doxygen filter to show correct member variable types in documentation.
It has been adapted for MediaWiki to resolve various bugs we experienced from using Doxygen with our coding conventions:
- We want to allow documenting class members on a single line by documenting them as
/** @var SomeType Description here.
, and in long-form as /** * Description here. * @var SomeType
- PHP does not support native type-hinting of class members. Instead, we document that using
@var
in the doc blocks above it. However, Doxygen only supports parsing this from executable code. We achieve this by having the this script filter take the typehint from the doc block and insert it into the source code in front of$myvar
, likeprotected SomeType $myvar
. This result is technically invalid PHP code, but Doxygen understands it this way.
Options/Arguments
This script accepts the path of a PHP file as an argument.
Usage
php maintenance/mwdoc-filter.php file
ABC.php
<?php
class ABC {
/** @var array[] Description 1 */
private $a = [];
/** @var int Description 2 */
private $b;
/** @var ActorStoreFactory Description 3 */
private $c;
}
Terminal
$ php maintenance/mwdoc-filter.php ABC.php <?php class ABC { /** Description 1 */ private array[] $a = []; /** Description 2 */ private int $b; /** Description 3 */ private ActorStoreFactory $c; }