85 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			85 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
 | 
						|
/**
 | 
						|
 * @package    Grav\Common\Data
 | 
						|
 *
 | 
						|
 * @copyright  Copyright (c) 2015 - 2022 Trilby Media, LLC. All rights reserved.
 | 
						|
 * @license    MIT License; see LICENSE file for details.
 | 
						|
 */
 | 
						|
 | 
						|
namespace Grav\Common\Data;
 | 
						|
 | 
						|
use Exception;
 | 
						|
use RocketTheme\Toolbox\File\FileInterface;
 | 
						|
 | 
						|
/**
 | 
						|
 * Interface DataInterface
 | 
						|
 * @package Grav\Common\Data
 | 
						|
 */
 | 
						|
interface DataInterface
 | 
						|
{
 | 
						|
    /**
 | 
						|
     * Get value by using dot notation for nested arrays/objects.
 | 
						|
     *
 | 
						|
     * @example $value = $data->value('this.is.my.nested.variable');
 | 
						|
     *
 | 
						|
     * @param string  $name       Dot separated path to the requested value.
 | 
						|
     * @param mixed   $default    Default value (or null).
 | 
						|
     * @param string  $separator  Separator, defaults to '.'
 | 
						|
     * @return mixed  Value.
 | 
						|
     */
 | 
						|
    public function value($name, $default = null, $separator = '.');
 | 
						|
 | 
						|
    /**
 | 
						|
     * Merge external data.
 | 
						|
     *
 | 
						|
     * @param array $data
 | 
						|
     * @return mixed
 | 
						|
     */
 | 
						|
    public function merge(array $data);
 | 
						|
 | 
						|
    /**
 | 
						|
     * Return blueprints.
 | 
						|
     *
 | 
						|
     * @return Blueprint
 | 
						|
     */
 | 
						|
    public function blueprints();
 | 
						|
 | 
						|
    /**
 | 
						|
     * Validate by blueprints.
 | 
						|
     *
 | 
						|
     * @return $this
 | 
						|
     * @throws Exception
 | 
						|
     */
 | 
						|
    public function validate();
 | 
						|
 | 
						|
    /**
 | 
						|
     * Filter all items by using blueprints.
 | 
						|
     *
 | 
						|
     * @return $this
 | 
						|
     */
 | 
						|
    public function filter();
 | 
						|
 | 
						|
    /**
 | 
						|
     * Get extra items which haven't been defined in blueprints.
 | 
						|
     *
 | 
						|
     * @return array
 | 
						|
     */
 | 
						|
    public function extra();
 | 
						|
 | 
						|
    /**
 | 
						|
     * Save data into the file.
 | 
						|
     *
 | 
						|
     * @return void
 | 
						|
     */
 | 
						|
    public function save();
 | 
						|
 | 
						|
    /**
 | 
						|
     * Set or get the data storage.
 | 
						|
     *
 | 
						|
     * @param FileInterface|null $storage Optionally enter a new storage.
 | 
						|
     * @return FileInterface
 | 
						|
     */
 | 
						|
    public function file(FileInterface $storage = null);
 | 
						|
}
 |