phpgt / input
封装用户输入。
v1.2.4
2024-04-25 13:48 UTC
Requires
- php: >=8.1
- phpgt/http: ^v1.1
Requires (Dev)
- phpmd/phpmd: ^2.13
- phpstan/phpstan: ^v1.10
- phpunit/phpunit: ^10.5
- squizlabs/php_codesniffer: ^3.7
This package is auto-updated.
Last update: 2024-09-09 12:05:06 UTC
README
默认情况下,PHP将所有用户输入存储在全局数组($_GET
、$_POST
和 $_FILES
)中,这些数组可供任何代码读取和修改,包括第三方库。
此库将用户输入封装在对象中,以促进封装,允许函数仅传递它们需要的用户输入,而不是对一切都具有不受限制的读写访问。
类型安全的函数允许更可预测的功能,例如 $input->getFileUpload("photo")
、$input->getDateTime("date-of-birth")
和 $input->getMultipleString("pizza-topping")
。
示例用法
<form method="post"> <h1>User Profile</h1> <label> <span>Your name</span> <input name="name" placeholder="e.g. Eugene Kaspersky" required /> </label> <label> <span>Age</span> <input type="number" name="age" /> </label> <label> <span>Interests</span> <select name="interest[]" multiple> <option>Mathematics</option> <option>Cryptography</option> <option>Information Security</option> <option>Cyberwarfare</option> </select> </label> <label> <span>Photo</span> <input name="photo" type="file" /> </label> <button name="do" value="save">Save profile</button> </form>
<?php $profile->update( $profileId, // Use type-safe getters to help write maintainable code. $input->getString("name"), $input->getInt("age"), ); // Handle multiple values with type safety. foreach($input->getMultipleString("interest") as $interest) { $profile->addInterest($interest); } // Handle file uploads with a FileUpload object. $photoUpload = $input->getFile("photo"); if($photoUpload instanceof FailedFileUpload) { // Handle a failed upload here. } $photoUpload->moveTo("data/upload/$profileId.jpg");
功能速览
- 类型安全的获取器,实现TypeSafeGetter接口。
- 类型化的
multiple
获取器,用于处理复选框、多选元素或多文件上传。 - "do"回调函数 - 将回调与按钮点击挂钩(在WebEngine应用程序中自动实现)。
- "when"触发器 - 当存在特定用户输入时执行回调。
FileUploadInputData
类,用于轻松上传文件,包括moveTo()
、getOriginalName()
等函数。- 即将推出:通过流式传输到PHP处理大文件,有效管理内存。