mfn / cakephp2-magic-properties
自动为 CakePHP2 魔法属性添加类文档
Requires
- php: >=5.4.0
- mfn/util-simpleorderedmap: 0.0.2
- nikic/php-parser: ~1.0
- psr/log: ~1.0
- symfony/console: ~2.5
Requires (Dev)
- phing/phing: ~2.8
- phpunit/phpunit: ~4.2
README
此仓库已存档,已履行其职责。
自动为 CakePHP2 魔法属性添加类文档 
主页: https://github.com/mfn/cakephp2-magic-properties
简介
当使用 CakePHP2 时,依赖注入通过如 uses
、helpers
等魔法属性来实现。
不幸的是,并非许多编辑器/IDE 能够理解这种特殊语法,因此几乎没有提供自动补全的魔法属性。
通过在您的 CakePHP2 源代码上运行此脚本,PHPDOC @property
将添加到类定义中,这有助于自动补全属性类型。
只需将任何文件/目录传递给脚本,它们将被解析,并添加 PHPDOC 属性。注意,每个类都将通过其父类来解析,以确定它是否是控制器或助手,因此脚本必须能够找到所有相关的父类以正确解析它们。通常,只需传递您的 Controller/ 和/或 Helper/ 目录即可。
此代码使用了 Nikita Popov 的出色库 PhpParser。
支持哪些注入属性?
控制器
components
uses
Component
components
助手
components
helpers
uses
模型
belingsTo
hasAndBelongsToMany
hasOne
hasMany
Shell
uses
也支持 className
设置。
有关详细信息,请参阅 res/configuration.php
。
使用方法
cakephp2_magic_properties magic app/Controller/
或
cakephp2_magic_properties magic app/View/Helper/
或您的整个应用(注意,它将递归解析所有 *.php 文件)
cakephp2_magic_properties magic ../path/to/your/app/
它将转换
AppController extends Controller { $uses = ['Foo']; $component = ['Bar']; }
为
/** * @property BarComponent $Bar * @property Foo $Foo */ AppController extends Controller { $uses = ['Foo']; $component = ['Bar']; }
默认情况下,现有属性不会被修改,但会注意不创建重复的。如果您想删除所有现有的 @property
文档,请使用 --remove
标志 cakephp2_magic_properties magic --remove ../path/to/your/app/
/** * @property BarComponent $Bar * @property Foo $Foo */ AppController extends Controller { $component = ['Bar']; }
为
/** * @property BarComponent $Bar */ AppController extends Controller { $component = ['Bar']; }
注意:它还可能导致您的现有属性重新排序,如果没有任何实际更改(因为内部首先总是删除所有属性)。
有关其他选项,请参阅 --help
标志。库被设计为幂等的。
与 phing 集成
提供了一个Phing任务,以更好地集成Phing。使用taskdef
定义一个新自定义任务。
<taskdef name="cakephp2-magic-properties" classname="Mfn\CakePHP2\MagicProperty\Runner\PhingTask"/> <target name="generate"> <cakephp2-magic-properties> <fileset dir="/path/to/your/cake/app/"> <include name="**/*.php"/> <exclude name="Config/**"/> <exclude name="Plugin/**"/> <exclude name="Vendor/**"/> </fileset> </cakephp2-magic-properties> </target>
以下属性受支持
configFile
配置文件的路径,见下一章dryRun
是否实际将更改写入文件;默认为false
,表示覆盖文件。这在与haltOnSourcesChanged
结合时很有用haltOnSourcesChanged
是否在有任何源文件更改时中止构建。removeUnknownProperties
是否删除未知的@property
声明
注意:由于使用了命名空间,此功能只有在通过Composer使用Phing时才能正常工作。
配置文件
在res/configuration.php
中提供了项目的默认配置,所有运行者都可以覆盖。
此文件包含映射
- 从“顶级类”到属性
- 这些属性映射到一个闭包,该闭包将注入的虚拟属性名称转换为实际类名称
需要使用闭包方法,因为例如helpers
和components
有不同的规则来调用实际的类名称。
要求
- PHP 5.4(已测试至少5.4.24)
安装
composer.phar require mfn/cakephp2-magic-properties 0.1.1
待办事项/想法
- 测试支持?
© Markus Fischer markus@fischer.name