php中包的文档?

时间:2010-04-07 10:56:47

标签: php phpdoc

所以在PayPal文件夹中,我有多个类使用他们的API。

我想制作一个关于如何以顺序方式使用所有类的文档。所以这是我的问题:

  1. 如何为他们创建包?因为我使用了phpdoc标签@package PayPal。 php中的包只是一个文件夹吗?

  2. 我在哪里提供包裹的文件?有这方面的最佳做法?名为...?

  3. 的文件夹中的文件
  4. 如何放置特定于类或包的示例,例如。第1步bla bla,第2步bla bla? 谢谢!

1 个答案:

答案 0 :(得分:4)

您可以在单独的文件中为多个类提供相同的包注释。 PHP Documentor将收集它们,并在创建API文档时,使用相同的包注释对文件进行分组。

例如http://framework.zend.com/svn/framework/standard/trunk/library/Zend/Validate.php

/**
 * @category   Zend
 * @package    Zend_Validate
 * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
 * @license    http://framework.zend.com/license/new-bsd     New BSD License
 */
class Zend_Validate implements Zend_Validate_Interface

http://framework.zend.com/svn/framework/standard/trunk/library/Zend/Validate/Alnum.php

/**
 * @category   Zend
 * @package    Zend_Validate
 * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
 * @license    http://framework.zend.com/license/new-bsd     New BSD License
 */
class Zend_Validate_Alnum extends Zend_Validate_Abstract

两者都是单独的文件,但属于Zend_Validate包。因此,在http://framework.zend.com/apidoc/core/上,您可以找到它们分组在同一个包中。

您还可以使用子包将其他类分组到普通包中。例如http://framework.zend.com/svn/framework/standard/trunk/library/Zend/Validate/Sitemap/Lastmod.php

/**
 * Validates whether a given value is valid as a sitemap <lastmod> value
 *
 * @link       http://www.sitemaps.org/protocol.php Sitemaps XML format
 *
 * @category   Zend
 * @package    Zend_Validate
 * @subpackage Sitemap
 * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
 * @license    http://framework.zend.com/license/new-bsd     New BSD License
 */
class Zend_Validate_Sitemap_Lastmod extends Zend_Validate_Abstract

请参阅上面的链接API文档,了解它在生成时的显示方式。

您不记录包注释。注释仅用于逻辑地将概念上属于一起的类或文件组合在一起。如果您想要一个包描述,请将其写入包中最合适的文件,或者创建一个单独的文件,并为其提供与该包中其他文件/类相同的注释。

有关包的用法示例,您可以使用示例注释来链接包含示例的文件,或者只是将它们与DocBlock中的代码标记一起内联。如果您使用单独的文件来记录包,可以将它们插入那里。

/**
 * MyLib
 *
 * Files under the MyLib package do foo and bar. They are baz.
 * 
 * Usage Examples of MyLib classes
 * <code>
 * $foo = new Foo;
 * $foo->doSomething()
 * </code>
 *
 * @package MyLib
 *
 * @example /some/path/to/an/example/file 
 */