delboy1978uk / proxy-generator
通过生成包装类使用您自己的接口。
dev-master
2016-11-28 01:51 UTC
Requires
- league/flysystem: ^1.0
- symfony/console: ^3.1
Requires (Dev)
- codeception/codeception: dev-master
- zendframework/zend-filter: ^2.7
This package is auto-updated.
Last update: 2024-09-04 22:13:20 UTC
README
一个用于获取第三方库以实现您接口的代理生成器。只需告诉它您希望替换的接口,它就会搜索并生成一个扩展它但实现您自己接口的类。##示例用 My\Awesome\Lib\SomeInterface 替换 Some\Symfony\Lib\SomeInterface,将得到以下结果:####之前
<?php namespace Some\Symfony\Lib; class UsefulClass implements SomeInterface { // etc }
####之后
<?php namespace My\Awesome\Lib; use Some\Symfony\Lib\UsefulClass as ThirdPartyUsefulClass; class UsefulClass extends ThirdPartyUsefulClass implements SomeInterface { }
对于实现该接口的每个类,我们将递归地遍历供应商类并生成扩展它们的类。这些类也将实现我们的接口。
<?php namespace My\Awesome\Lib\Number; use Some\Symfony\Lib\Number\UsefulNuberClass as ThirdPartyUsefulNumberClass; use My\Awesome\Lib\SomeInterface; class UsefulClass extends ThirdPartyUsefulNumberClass implements SomeInterface { }
##安装使用 composer 安装
$ composer require delboy1978uk/proxy-generator
##使用如果您需要编程方式使用,可以使用 Del\ProxyGenerator\Service\ProxyGeneratorService,或者可以使用 CLI 命令 bin/proxy-generator。
$ cd bin
$ ./proxy-generator 'VendorInterface' 'YourInterface' look/in/this/folder 'BaseVendorNamespace', 'YourBaseNamespace', 'relative/path/to/genarate', '/absolute/project/root/basedir'