radebatz / property-info-extras
属性信息扩展。
1.2.1
2020-10-16 03:08 UTC
Requires
- php: >=7.2
- ext-json: *
- phpunit/phpunit: >=8.0
- symfony/property-info: ^4.3|^5.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.15
- php-coveralls/php-coveralls: ^2.2
This package is auto-updated.
Last update: 2024-08-26 17:16:27 UTC
README
Symfony属性信息组件的扩展。
- 魔幻类方法提取器 DocBlockMagicExtractor
- 尽可能合并多个提取器的结果
需求
安装
您可以使用 Composer 或直接 下载发布版
Composer
首选方法是通过 composer。如果您尚未安装composer,请遵循安装说明。
一旦安装了composer,请在您的项目根目录中执行以下命令以安装此库
composer require radebatz/property-info-extras
用法
Radebatz\PropertyInfoExtras\Extractor\DocBlockMagicExtractor
<?php use Radebatz\PropertyInfoExtras\Extractor\DocBlockCache; use Radebatz\PropertyInfoExtras\Extractor\DocBlockMagicExtractor; /** * @method string getProString() * @method void setProString(?string $proString) */ class MagicPopo { protected $properties = []; public function __call($method, $args) { $name = lcfirst(substr($method, 3)); if (0 == count($args)) { if (0 === strpos($method, 'get')) { return array_key_exists($name, $this->properties) ? $this->properties[$name] : null; } } elseif (1 == count($args)) { if (0 === strpos($method, 'set')) { $this->properties[$name] = $args[0]; return; } } throw new \RuntimeException(sprintf('Invalid method on: %s: method: "%s"', get_class($this), $method)); } } $phpDocMagicExtractor = new DocBlockMagicExtractor(new DocBlockCache()); $properties = $phpDocMagicExtractor->getProperties(MagicPopo::class); // ['proString']
Radebatz\PropertyInfoExtras\PropertyInfoExtraExtractor
与PropertyInfo组件中所述相同,但Radebatz\PropertyInfoExtras\PropertyInfoExtraExtractor
提供了以下附加的xxAllxxx()
方法
-
getAllProperties()
报告的属性总数。提取器的顺序相关(最后一个是赢家)。
-
getAllTypes()
报告的类型总数。仅在后续提取器向已提取的信息中添加内容时在属性级别合并(第一个是赢家)。
-
isAllReadable()
如果至少有一个提取器返回
true
,则为true
。 -
isAllWritable()
如果至少有一个提取器返回
true
,则为true
。