phpgt/input

封装用户输入。

维护者

详细信息

github.com/PhpGt/Input

源代码

问题

资助包维护!
PhpGt

v1.2.4 2024-04-25 13:48 UTC

README

默认情况下,PHP将所有用户输入存储在全局数组($_GET$_POST$_FILES)中,这些数组可供任何代码读取和修改,包括第三方库。

此库将用户输入封装在对象中,以促进封装,允许函数仅传递它们需要的用户输入,而不是对一切都具有不受限制的读写访问。

类型安全的函数允许更可预测的功能,例如 $input->getFileUpload("photo")$input->getDateTime("date-of-birth")$input->getMultipleString("pizza-topping")

PHP.Gt/Input build status PHP.Gt/Input code quality PHP.Gt/Input code coverage PHP.Gt/Input latest release PHP.G/Input documentation

示例用法

<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处理大文件,有效管理内存。