for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
declare(strict_types=1);
namespace Yiisoft\RequestModel;
use Yiisoft\Arrays\ArrayHelper;
abstract class RequestModel implements RequestModelInterface
{
private array $requestData = [];
public function setRequestData(array $requestData): void
$this->requestData = $requestData;
}
public function getValue(string $field, $default = null)
if ($this->isOptionalField($field)) {
$value = ArrayHelper::getValueByPath($this->requestData, $field);
if (empty($value)) {
return $default;
return ArrayHelper::getValueByPath($this->requestData, $field, $default);
public function hasValue(string $field): bool
return $this->getValue($field) !== null;
public function getRequestData(): array
return $this->requestData;
public function getOptionalFields(): array
return [];
private function isOptionalField(string $field): bool
return in_array($field, $this->getOptionalFields());