PHPackages                             yjyer/php-dto - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. yjyer/php-dto

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

yjyer/php-dto
=============

php dto realization

v1.0.6(3y ago)05MITPHPPHP &gt;=8.0

Since Dec 28Pushed 3y ago1 watchersCompare

[ Source](https://github.com/yjyer/php-dto)[ Packagist](https://packagist.org/packages/yjyer/php-dto)[ RSS](/packages/yjyer-php-dto/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (1)DependenciesVersions (2)Used By (0)

php-dto
=======

[](#php-dto)

> 运行环境要求PHP8.0或以上

主要新特性
-----

[](#主要新特性)

- 支持类似Java DTO
-

安装
--

[](#安装)

安装

```
composer require yjyer/php-dto

```

卸载

```
composer remove yjyer/php-dto

```

使用方法
----

[](#使用方法)

在thinkphp6框架文件：/vendor/topthink/framework/src/think/Container.php 里的方法：invokeReflectMethod 下增加如下代码，如：

```
/**
    * dto模块运行入口
    * 1、此代码需要手动增加
    * 2、每次更新tp核心框架后，如果此方法（Container/invokeReflectMethod）没有此代码，则需要增加
    */
$args = \yjyer\phpdto\Main::actionInject($reflect, $args, $vars);
```

完整方法如：

```
/**
     * 调用反射执行类的方法 支持参数绑定
     * @access public
     * @param object $instance 对象实例
     * @param mixed  $reflect  反射类
     * @param array  $vars     参数
     * @return mixed
     */
public function invokeReflectMethod($instance, $reflect, array $vars = [])
{
    $args = $this->bindParams($reflect, $vars);

    /**
        * dto模块运行入口
        * 1、此代码需要手动增加
        * 2、每次更新tp核心框架后，如果此方法（Container/invokeReflectMethod）没有此代码，则需要增加
        */
    $args = \yjyer\phpdto\Main::actionInject($reflect, $args, $vars);

    return $reflect->invokeArgs($instance, $args);
}
```

dto类配置
------

[](#dto类配置)

```
