ViewData is a small data bag used by views, templates, layouts, components, and renderers.
use CommonPHP\UI\ViewData;
$data = new ViewData([
'title' => 'Dashboard',
]);
$same = ViewData::from($data);
$fromArray = ViewData::from(['title' => 'Dashboard']);
$empty = ViewData::from();$data->get('title');
$data->get('missing', 'fallback');
$data->has('title');Dot notation can read nested arrays:
$data = new ViewData([
'profile' => [
'name' => 'Ada',
],
]);
$data->get('profile.name'); // AdaDirect keys take precedence over dotted lookup:
$data = new ViewData([
'profile.name' => 'Direct',
'profile' => ['name' => 'Nested'],
]);
$data->get('profile.name'); // Direct$data
->set('title', 'Reports')
->merge(['status' => 'ready'])
->remove('status');
$data->replace(['fresh' => true]);
$data->clear();$changed = $data
->with('title', 'Reports')
->withMerged(['status' => 'ready'])
->without('debug');ViewData implements ArrayAccess, Countable, IteratorAggregate, and JsonSerializable.
$data['title'] = 'Dashboard';
isset($data['title']);
unset($data['title']);
foreach ($data as $key => $value) {
// ...
}
count($data);
$data->jsonSerialize();