# popo **Repository Path**: leo58/popo ## Basic Information - **Project Name**: popo - **Description**: 参考java的pojo而来,将入参绑定到对象中,面向对象编程 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-05-16 - **Last Updated**: 2025-11-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # PoPo 参考 Java 的 pojo 而来,将入参绑定到对象中,实现面向对象编程。 ## 功能特性 - 将请求参数自动绑定到对象中。 - 支持自动将下划线命名参数转换为驼峰命名。 - 支持对象数组参数绑定。 - 适用于 ThinkPHP、Webman 等非常驻内存框架。 ## 使用示例 ### 参数对象定义 ```php class TestParam extends PoPo { private int $id = 0; // 有默认值,前端可不传 private string $name; // 必传参数 private string $userName; // 必传参数,下划线自动转为驼峰,对应参数为 user_name #[ObjArray(Obj::class)] private string $thisObjArr; // 对象数组,参数格式为 this_obj_arr{[{"title":"这是标题"},{"title":"这是标题"}]} private Obj $thisObj; // 对象,参数格式为 this_obj_arr{"title":"这是标题"} } class Obj extends PoPo { private string $title; // 必传参数 } ``` ### 在 Controller 中使用 ```php public function add(TestParam $param): Response { var_dump($param->name); var_dump($param->userName); var_dump($param->thisObjArr); var_dump($param->thisObj); var_dump($param->toArray()); } ``` ## 安装 请参考项目 [composer.json](composer.json) 文件进行安装。 ## 贡献 欢迎提交 Pull Request 或提出 Issue。 ## 许可证 本项目基于 MIT 许可证。