标签: phpdoc

使用phpDocumentor解析Javascript文件

我最近一直在玩phpDocumentor,发现它非常适合我的需求.我主要使用PHP/HTML/JS/CSS代码库,并希望phpDocumentor解析我的Javascript(也许还有CSS),以便将它们保存在一起.

我设法让phpdoc解析整个代码库中包含的javascript文件 - 但它拒绝了页面级别的docblock - 这导致它拒绝了各种标签(见下文).我发现通过在PHP文件的顶部添加一个PHP开放标记(前面带有JavaScript注释),我可以让它像PHP文件一样解析它.

// <?php
/**
 * phpdoc goes here
 * @package
 * @todo
 *   - Todo 1
 *   - Todo 2
 */
function javascript(goes, here) {
}
Run Code Online (Sandbox Code Playgroud)

如果通过PHP将Web服务器设置为服务器.js文件,我可以想到会出现问题.有没有人能想到的其他问题?有没有更好的方法来实现这一目标?

谢谢

javascript parsing phpdoc

4
推荐指数
2
解决办法
4711
查看次数

Eclipse完成 - @var(PHPDoc)问题

我有奇怪的问题.

当我@return Model\Article在模型加载方法中使用时,我在Eclipse的自动完成中看到模型的方法.

模型加载方法返回更多对象,所以我想要它@return My\BaseModel,然后/* @var $model Model\Article */为每个模型特定地(当我使用它时).

问题是@return Model\Article工作得很好(我看到Model\Article+ My\BaseModel方法),但另一种方式(@return My\BaseModel和内联/*...*/)没有 - 它说' 没有完成可用 '.

我尝试在之前和之后放置内联注释$model = ...;,但都没有奏效.

我很抱歉我的英语不好 - 我希望你能理解.

感谢您的任何帮助,最好的问候,JakubChábek.

php eclipse variables phpdoc phpeclipse

4
推荐指数
1
解决办法
2762
查看次数

使用phpDocumentor记录类常量组

假设我有一个带参数的方法,其有效值被声明为类常量(think PGSQL_ASSOC/ PGSQL_NUM/ PGSQL_BOTH).还有另一种方法,使用类似的参数,使用另一组类常量.有没有办法向phpDocumentor描述每组常量属于一个逻辑组的替代?将它们记录在组中是有用的,并且能够引用方法文档中的特定组.使用docblock模板不会削减它,因为模板的简短描述会被忽略(添加无用的混乱),而模板的长描述会附加到常量特定的描述中,从而产生一种向后的措辞(例如"BAR_MODE_1"这个和那个.Foo :: bar()的操作模式",而不是"Foo :: bar()的操作模式:BAR_MODE_1执行此操作.").

例:

class Foo {

    // this group of constants are valid modes for the bar() method
    const BAR_MODE_1 = 1;
    const BAR_MODE_2 = 2;
    const BAR_MODE_3 = 3;

    /**
     * @param int see Foo::BAR_MODE_* constants
     */
    public function bar($mode) { ... }

    // this group of constants are valid modes for the baz() method
    const BAZ_MODE_1 = 1;
    const BAZ_MODE_2 = 2;
    const BAZ_MODE_3 = 3;

    /**
     * @param …
Run Code Online (Sandbox Code Playgroud)

php phpdoc

4
推荐指数
1
解决办法
1923
查看次数

如何将phpDoc导入Confluence?

我正在寻找正确的方法来使用项目中的phpDoc-comments来生成我的Confluence 4.1.4中的开发人员文档.

phpdoc confluence

4
推荐指数
1
解决办法
1486
查看次数

DocBlock 类类型继承

虽然这个问题一般是关于DocBlocks的,但我的用例是关于 PHP。

考虑以下 PHP 代码:

<?php

class ParentClass {
    /**
     * Says 'hi' to the world.
     * @return ParentClass Returns itself for chaining.
     */
    public function say_hi(){
        echo 'hi';
        return $this;
    }
}

class ChildClass extends ParentClass {
    /**
     * Says 'bye' to the world.
     * @return ChildClass Returns itself for chaining.
     */
    public function say_bye(){
        echo 'bye';
        return $this;
    }
}

$c = new ChildClass;
$c->say_hi()->say_b| <- type hinting won't suggest "say_bye" here

?>
Run Code Online (Sandbox Code Playgroud)

这只是一个带有一些链接的琐碎类。扩展类没有类型提示,因为父类的文档块正在使用特定的类名,该类名没有子类的方法/属性。

假设我们确实想要类型提示功能,(如果没有,请留下这个问题 - …

php javadoc phpdoc docblocks

4
推荐指数
1
解决办法
1954
查看次数

用于动态魔术属性(或方法)的PHPdoc

我最近创建了一个用于创建HTML元素的类.我没有为每个现有的HTML元素和属性创建方法而烦恼,而是决定使用魔术方法__get和__call.所以使用我的代码我基本上可以这样做:

$signUpForm->insert->input->type('text')->name('firstName')->maxlength(100)->disabled
$signUpForm->insert->input->type('email')->name('emailAddress')->maxlength(100)
Run Code Online (Sandbox Code Playgroud)

等等

但既然我决定保持这种"神奇"和简单,我也可以这样做:

$signUpForm->insert->magic->trick('rabbit')->accessory('hat') 这将导致:

<magic trick='rabbit' accessory='hat'>
Run Code Online (Sandbox Code Playgroud)

这一切都很好,因为在我看来它削减了很多样板代码,并且正是我需要做的.我不希望一个类强制执行HTML标准,我想要一个类来促进HTML,因为你知道如何使用它(老实说,这样做的代码很小)

所以我的问题是,考虑到这个类可以接受任何未定义的属性或方法,有没有办法在PHPDoc中指定这种行为?我没有运气就尝试了以下内容:

/**
 * @property HtmlElementAttribute *    Insert a new HTML element attribute
 * @method   HtmlElementAttribute *    Insert a new HTML element attribute
 */
Run Code Online (Sandbox Code Playgroud)

我不知道这只是一个PHPStorm的东西,但我找不到任何类似的场景......

此外,如果您想知道为什么我会做这样的事情,那就是跟踪我的PHP代码中的某些HTML方面(例如,在表单中声明的​​ID或表单内的元素).这可以让我在发送给最终用户之前在我的HTML中具有可见性.

php phpdoc phpstorm phpdocumentor2

4
推荐指数
1
解决办法
2589
查看次数

如何从另一种方法继承 phpdoc(不是我们要覆盖的方法)

如果有一种方法可以在相同和/或不同类中的不同方法上复制(继承)完全相同的 phpdoc,我就在徘徊。

我知道内联 {@inheritdoc},它只提供从父类到其子类的继承(正如人们所期望的:)。

但是看看下面,我必须在 3 个不同的地方复制完全相同的描述,在同一个类中的 2 个方法和在单独的类中的一个(不是继承而是启动)。我想知道是否有一种方法可以做到这一点,而无需复制粘贴。

class Example
{
    /**
     * here i want to have exactly the same phpdoc,
     * like what i created for getMeSomethingFromTheShelf() in the same class
     */
    public function getMeSomething($id, $option = [])
    {
        return $this->getMeSomethingFromTheShelf($id, $option);
    }

    /**
     * Some description
     * and some more detail about how the $option value will be used
     *
     * @param int $id
     * @param array $option and here some we have some …
Run Code Online (Sandbox Code Playgroud)

php phpdoc

4
推荐指数
1
解决办法
1254
查看次数

PhpStorm 为什么会报“Argument type does not match”错误?

我正在使用PhpStorm 10.0.2 开发PHP 7项目。

每当我@param为具有标量类型 ( string, int, ...)类型提示的函数参数声明 PHPDoc 时,我都会收到以下警告:

参数类型不匹配

以下是 PhpStorm 抱怨的一些示例代码:

class HostConfig
{
    /**
     * @var string
     */
    private $hostname;
    /**
     * @var string
     */
    private $domainname;

    /**
     * Creates a new instance of hte HostConfig model.
     *
     * @param string $hostname   A host name (e.g. "dev", "int", "feature-xy")
     * @param string $domainname A domain name (e.g. "example.com")
     *
     * @throws \InvalidArgumentException If the given $hostname is empty …
Run Code Online (Sandbox Code Playgroud)

php phpdoc type-hinting phpstorm php-7

4
推荐指数
1
解决办法
1867
查看次数

PHP评论中的符号"#@ +"

我在ZF1的评论/文档中找到了一些特殊符号"#@ +"和"#@ - ".例:

/**#@+
 * @access protected
 */
Run Code Online (Sandbox Code Playgroud)

(https://github.com/zendframework/zf1/blob/master/library/Zend/Mail.php#L54)

我之前在另一个不同的存储库中看到过.

这些是什么意思?

php phpdoc special-characters docblocks

4
推荐指数
1
解决办法
52
查看次数

如果使用use导入类,是否应该在PHPDoc中使用FQN?

假设我有一个UserController课程,并且正在使用导入该App\User课程use。在内部,有一种show()方法可以接收的实例User

namespace App\Http\Controllers;

use App\User;

class UserController extends Controller
{
    /**
     * Show user info
     * 
     * @param  User $user
     * @return Illuminate\Http\JsonResponse
     */
    public function show(User $user)
    {
        // Do something...
    }
}
Run Code Online (Sandbox Code Playgroud)

User即使我使用导入类,还是建议在PHPDoc中添加的完全限定名称use吗?

php phpdoc

4
推荐指数
1
解决办法
1472
查看次数