domaincoder/code-metamodel-php

CodeMetamodel-PHP提供了PHP代码的元模型类和一个解析器,该解析器可以解析PHP代码并构建元模型对象。

dev-master 2015-03-26 09:29 UTC

This package is not auto-updated.

Last update: 2024-09-14 16:45:01 UTC


README

PHP代码元模型

Build Status SensioLabsInsight Total Downloads Latest Stable Version Latest Unstable Version Dependency Status

功能

  • Parser\Parser通过CLI命令解析项目下的PHP源代码以生成元模型对象。
  • Element\*是元模型类。目前支持
    • 命名空间
    • use
    • 类注解
    • 类继承
    • 属性
    • 属性注解
    • 属性类型解析(仅由use声明)
    • 方法
    • 方法注解
  • Dumper\SimpleDumper将元模型对象导出到简单的文本。

安装

可以使用Composer安装CodeMetamodel-PHP

注意:仅提供开发包。

// composer.json
{
    "minimum-stability": "dev"
}

$ composer require domaincoder/code-metamodel-php

命令

CodeMetamodel-PHP的一些功能通过CLI命令提供。可以按照以下方式运行CLI命令

$ php bin/domaincoder-parser.php COMMAND_NAME TARGET_DIR (OPTIONS)

parse

此命令解析TARGET_DIR下的代码并创建模型缓存。

$ php bin/domaincoder-parser.php parse /path/to/project/root

dump

此命令将指定位置的元模型对象导出到文件。

$ php bin/domaincoder-parser.php dump /path/to/project/root

filter-class

使用此命令可以在指定位置的元模型对象中搜索类。选项包括

  • 注解:注解名称(例如ORM\Entity,author)
  • 评论:关键字(例如与tax相关)
$ php bin/domaincoder-parser.php filter-class /path/to/project/root --annotation=Route --comment=Test

filter-property

使用此命令可以在指定位置的元模型对象中搜索属性。选项包括

  • 注解:注解名称(例如ORM\Entity,author)
  • 评论:关键字(例如与tax相关)
$ php bin/domaincoder-parser.php filter-property /path/to/project/root --annotation=Route --comment=Test

filter-method

使用此命令可以在指定位置的元模型对象中搜索方法。选项包括

  • 注解:注解名称(例如ORM\Entity,author)
  • 评论:关键字(例如与tax相关)
$ php bin/domaincoder-parser.php filter-method /path/to/project/root --annotation=Route --comment=Test

路线图

  • v 0.0.1实现了解析器,可以将代码解析为元模型对象,并将模型对象保存到缓存(APC)或json格式。
  • v 0.0.2添加了过滤命令。
  • v 0.0.3添加了修改现有AST以添加字段、更改注解等。

支持

如果您发现错误或有问题,或者想要请求功能,请在问题页面上创建一个问题或拉取请求。

版权

版权所有(c)2015 GOTO Hidenori,保留所有权利。

许可证

BSD 2-Clause许可证