jjzjj

php - 使用 PHPDoc 自动添加 Git 版本

我想知道是否有人知道将文件/存储库的Git版本插入注释block以便PHPDoc可以在生成文档时自动反射(reflect)它的方法? 最佳答案 phpDocumentor不是将信息放入文档的工具...它必须已经出现在您的文档block中。听起来您已经习惯了在您的文档block中使用$Id$标签,当您检查代码时,这些标签会由CVS和SVN自动填充...也称为“关键字扩展”。Git确实允许这样做--https://git-scm.com/book/en/v2/Customizing-Git-Git-Attributes#_keyword

php - 可迭代对象的正确 phpdoc 注释?

我在尝试为以下代码示例获取正确的自动完成时遇到了一些问题。我在Win7机器上使用PHPStorm7。首先只是一个简单的类。/***ClassmyObject*/classmyObject{/***somemethod*/publicfunctionmyMethod(){//dosomething}}这个是集合类,它可以包含先前类的多个实例并实现了IteratorAggregate接口(interface)。/***ClassmyCollection*/classmyCollectionimplementsIteratorAggregate{/***@varmyObject[]*/pro

php - 简单的破旧,全面的 phpDocumentor 教程?

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于StackOverflow来说是偏离主题的,因为它们往往会吸引自以为是的答案和垃圾邮件。相反,describetheproblem以及迄今为止为解决该问题所做的工作。关闭9年前。Improvethisquestion我在thewebsite找到了那个对于这个新手来说是非常压倒性的。有没有更好的教程,它会稍微慢一点,而不是向您扔3个长的php源文件?编辑:真的除了说明书就没有别的了吗???D:

phpDocumentor 不会覆盖父类的文档

所以,基本上我有以下设置:classA{/***Thisissomedocumentation*/publicfunctionfoo(){}}classBextendsA{/***ThisdocumentationiswaymorespecificthaninclassA*/publicfunctionfoo(){}}当我尝试使用phpDocumentor2对此进行记录时,它在类B的方法foo()中显示“这是一些文档”,但我希望它说“该文档比类A中的文档更具体”。在phpDocumenter1中,一切看起来都像预期的那样。那么,这是怎么回事?这是phpDocumentor2的新默认行为

PhpDoc 在类中包含的文件中为自己添加符号

我有一个类,它包含一个文件,方法如下:在class.php文件中:classA{constCONST1=5;/**@varint$a*/var$a=5;publicfunctioncall(){include('b.php');}publicfunctiondo_some_magic(){//magicstuff...}publicstaticfunctionstatic_func(){//somecode...}}文件b.php:do_some_magic();echo'['.$this->a.']';self::static_func();echo'['.self::CONST1.

php - 什么时候应该记录异常(exception)情况?

假设以下片段:publicfunctionfoo(){return$this->dependency->bar();}如果已知dependency::bar()会抛出异常,但foo()预计不会处理它。foo()的文档block中是否应该有一个@throws条目?或者这应该是隐含的?phpdoc文档对此有些含糊。假设dependency是基于接口(interface)注入(inject)的;接口(interface)文档是否应该说明该方法可以抛出指定的异常。异常应该由调用代码处理还是无关紧要?一路语义:) 最佳答案 您已经创建了公共(

php - 记录 PHP,如果我扩展一个类,我应该复制/粘贴吗?

我有一个带有方法的PHP类。在基类中(它更像是一个原型(prototype),但我没有使用原型(prototype),因为我们必须向后兼容),我记录了方法的参数和描述。现在我扩展那个类。在这个新方法(实现)中,我应该重新记录参数和描述,我应该将其留空,还是应该只留下适用于该特定实现的相关注释?我的目标是让PhpDoc生成可读的API文档,并遵守约定。 最佳答案 PhpDocumentor将向您展示所记录的方法是否是父类中方法的重新定义,以及该方法是否在子类中被覆盖。因此,除了您放入方法的文档block中的所有信息之外,您还将看到与当

php - 工厂方法的正确 phpdoc @return

我很好奇如何记录以下场景。想象一组类:abstractclassPersonality{}classMeextendsPersonality{}classMyselfextendsPersonality{}classIreneextendsPersonality{}如果我正在编写工厂式方法来实例化并返回Personality类的子类,我将如何正确记录@return?@returnmixedA"Personality"subclassobject或@returnPersonalityA"Personality"subclassobject 最佳答案

php - 在 PhpDocumentor 2 中使用 @package 而不是命名空间

我有一个大型代码库,我正在尝试为其生成分层文档。该项目不使用命名空间,而是使用@package。我只是尝试使用phpDocumentor2从以下文件生成文档作为测试:虽然根据文档@packageJustAn\Example应该等同于命名空间JustAn\Example,但我发现情况并非如此。当我使用namespace时,生成的文档如下所示:当我使用@package表示法时,结果如下所示(即使它识别包表示法-这显示在类的完整详细信息页面上):我正在寻找一种方法来获得分层结果,而无需重写代码以使用“真实”命名空间。 最佳答案 问题是默认

php - 在 PHP 中模拟泛型类

我正在尝试实现一个处理查询的结果类。所以,简单地说,您将拥有这样的功能:functionall();functionfirst();functionpaginate(int$perPage,int$pageNo=1);这工作得很好,问题是当在多个不同的查询类中使用相同的结果类时,IDE无法知道返回类型。示例:UserQuery->results()->all()将返回一组用户实体。UserQuery->results()->first()将返回单个用户实体。在某些语言中,你有泛型,这意味着我可以只使用Results在UserQuery类中,然后我的结果类可以返回T[]和T分别。我的一个