ilya/block 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

ilya/block

Composer 安装命令:

composer require ilya/block

包简介

Parsing docblocks made easy

README 文档

README

Build Status

Block makes parsing PHP DocBlocks easier.

Simple, documented and fully tested. PHP 5.4 is required.

Installation

Using Composer: composer require "ilya/block:~1".

Example

Imagine you have the following code:

class Foo {

    /**
     * The Bar.
     *
     * @var integer
     */
    protected $bar;

    /**
     * The Baz.
     *
     * @var string
     */
    public $baz;

    /**
     * Do Amaze.
     *
     * @param string $amaze
     * @return void
     */
    private function wow($amaze)
    {

    }

}

First, instantiate Block, like so: $block = new Block\Block(new Foo);.

Now you can begin to inspect the docblocks using these 4 methods available.

  • Block\Comment property(string $name)
  • array properties(integer $filter)
  • Block\Comment method(string $name)
  • array methods(integer $filter)
  • Block\Comment reflector(Reflector $reflector)

Methods property and method will receive a name (as a string) and return an instance of Block\Comment. Methods properties and methods will receive an optional argument $filter and return an array of Block\Comment instances.

If you are wondering what that $filter thing is, take a look at the example:

$block->methods(ReflectionMethod::IS_PUBLIC); // only fetch public methods

// only fetch private AND protected properties
$block->properties(ReflectionProperty::IS_PRIVATE | ReflectionProperty::IS_PROTECTED);

Ok, so now that you have an instance (or many of them) of \Block\Comment, what kind of actions can you perform?

  • convert the instance to a string: $comment->getComment(). Note that (string) $comment would work too!
  • split it into lines: $comment->getLines().

Let's review the second option.

Calling the getLines() method will return an array, each element of which is an instance of \Block\Line.

Here's what it offers:

  • boolean isTag(void) - determine whether the line contains a tag: will be true for @param int $speed and false for My desc.
  • string getLine(void) - get the line itself, as a string, note that (string) $line would also work.
  • array tokenize(void) - split the line into "tokens" - e.g @param int $speed will be represented as ['@param', 'int', '$speed']. All white spaces are ignored.
  • string stripTag(void)

So that's it, hopefully you now can start to use Block in your projects.

License

Block is licensed under the MIT license.

统计信息

  • 总下载量: 131
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 2
  • 点击次数: 0
  • 依赖项目数: 1
  • 推荐数: 0

GitHub 信息

  • Stars: 2
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2014-04-13

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固