for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
/**
* @package CleverStyle CMS
* @author Nazar Mokrynskyi <[email protected]>
* @copyright Copyright (c) 2016, Nazar Mokrynskyi
* @license MIT License, see license.txt
*/
namespace cs\Request;
trait Data {
* Data array, similar to `$_POST`
*
* @var array
public $data;
* Data stream resource, similar to `fopen('php://input', 'br')`
* Make sure you're controlling position in stream where you read something, if code in some other place might seek on this stream
* Stream is read-only
* @var null|resource
public $data_stream;
* @param array $data Typically `$_POST`
* @param null|resource|string $data_stream String, like `php://input` or resource, like `fopen('php://input', 'br')`
function init_data ($data = [], $data_stream = null) {
if (is_resource($this->data_stream)) {
fclose($this->data_stream);
}
$this->data = $data;
$this->data_stream = is_string($data_stream) ? fopen($data_stream, 'br') : $data_stream;
* Get data item by name
* @param string|string[] $name
* @return false|mixed|mixed[] Data if exists or `false` otherwise
function data ($name) {
if (is_array($name)) {
foreach ($name as &$n) {
if (!isset($this->data[$n])) {
return false;
$n = $this->data[$n];
return $name;
/** @noinspection OffsetOperationsInspection */
return isset($this->data[$name]) ? $this->data[$name] : false;