composer require free2one/hyperf-php-accessor
php bin/hyperf.php vendor:publish free2one/hyperf-php-accessor
项目composer.json
文件中配置以下信息信息
{
"scripts":{
"php-accessor": "@php vendor/bin/php-accessor generate"
}
}
除了PHP Accessor原有的注解外,需要额外使用该注解来标识其可被Hyperf收集.
<?php
namespace App;
use Hyperf\PhpAccessor\Annotation\HyperfData;
use PhpAccessor\Attribute\Data;
#[HyperfData]
#[Data]
class Entity
{
private int $id;
private string $name;
}
composer test运行单元测试时可能会出现以下错误信息:
Uncaught Swoole\Error: API must be called in the coroutine in ...../vendor/symfony/console/Terminal.php:156
请把原有bootstrap.php
文件内以下行明细
Swoole\Runtime::enableCoroutine(true);
替换为
Swoole\Runtime::enableCoroutine(SWOOLE_HOOK_ALL^SWOOLE_HOOK_PROC);
需要确保APP_ENV
在本地环境的设置为dev
,否则请自行修改配置文件php-accessor.php
中的genMeta
判断.
<?php
declare(strict_types=1);
$appEnv = env('APP_ENV', 'dev');
$genMeta = $appEnv == 'dev' ? 'yes' : 'no';
return [
'proxy_root_directory' => BASE_PATH . DIRECTORY_SEPARATOR . '.php-accessor',
'gen_meta' => $genMeta,
'gen_proxy' => 'yes',
];