You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
134 lines
4.9 KiB
134 lines
4.9 KiB
<?php |
|
|
|
/** |
|
* This file is part of CodeIgniter 4 framework. |
|
* |
|
* (c) CodeIgniter Foundation <admin@codeigniter.com> |
|
* |
|
* For the full copyright and license information, please view |
|
* the LICENSE file that was distributed with this source code. |
|
*/ |
|
|
|
namespace CodeIgniter\Config; |
|
|
|
use CodeIgniter\View\ViewDecoratorInterface; |
|
|
|
/** |
|
* View configuration |
|
* |
|
* @phpstan-type parser_callable (callable(mixed): mixed) |
|
* @phpstan-type parser_callable_string (callable(mixed): mixed)&string |
|
*/ |
|
class View extends BaseConfig |
|
{ |
|
/** |
|
* When false, the view method will clear the data between each |
|
* call. |
|
* |
|
* @var bool |
|
*/ |
|
public $saveData = true; |
|
|
|
/** |
|
* Parser Filters map a filter name with any PHP callable. When the |
|
* Parser prepares a variable for display, it will chain it |
|
* through the filters in the order defined, inserting any parameters. |
|
* |
|
* To prevent potential abuse, all filters MUST be defined here |
|
* in order for them to be available for use within the Parser. |
|
* |
|
* @psalm-suppress UndefinedDocblockClass |
|
* |
|
* @var array<string, string> |
|
* @phpstan-var array<string, parser_callable_string> |
|
*/ |
|
public $filters = []; |
|
|
|
/** |
|
* Parser Plugins provide a way to extend the functionality provided |
|
* by the core Parser by creating aliases that will be replaced with |
|
* any callable. Can be single or tag pair. |
|
* |
|
* @psalm-suppress UndefinedDocblockClass |
|
* |
|
* @var array<string, callable|list<string>|string> |
|
* @phpstan-var array<string, list<parser_callable_string>|parser_callable_string|parser_callable> |
|
*/ |
|
public $plugins = []; |
|
|
|
/** |
|
* Built-in View filters. |
|
* |
|
* @psalm-suppress UndefinedDocblockClass |
|
* |
|
* @var array<string, string> |
|
* @phpstan-var array<string, parser_callable_string> |
|
*/ |
|
protected $coreFilters = [ |
|
'abs' => '\abs', |
|
'capitalize' => '\CodeIgniter\View\Filters::capitalize', |
|
'date' => '\CodeIgniter\View\Filters::date', |
|
'date_modify' => '\CodeIgniter\View\Filters::date_modify', |
|
'default' => '\CodeIgniter\View\Filters::default', |
|
'esc' => '\CodeIgniter\View\Filters::esc', |
|
'excerpt' => '\CodeIgniter\View\Filters::excerpt', |
|
'highlight' => '\CodeIgniter\View\Filters::highlight', |
|
'highlight_code' => '\CodeIgniter\View\Filters::highlight_code', |
|
'limit_words' => '\CodeIgniter\View\Filters::limit_words', |
|
'limit_chars' => '\CodeIgniter\View\Filters::limit_chars', |
|
'local_currency' => '\CodeIgniter\View\Filters::local_currency', |
|
'local_number' => '\CodeIgniter\View\Filters::local_number', |
|
'lower' => '\strtolower', |
|
'nl2br' => '\CodeIgniter\View\Filters::nl2br', |
|
'number_format' => '\number_format', |
|
'prose' => '\CodeIgniter\View\Filters::prose', |
|
'round' => '\CodeIgniter\View\Filters::round', |
|
'strip_tags' => '\strip_tags', |
|
'title' => '\CodeIgniter\View\Filters::title', |
|
'upper' => '\strtoupper', |
|
]; |
|
|
|
/** |
|
* Built-in View plugins. |
|
* |
|
* @psalm-suppress UndefinedDocblockClass |
|
* |
|
* @var array<string, callable|list<string>|string> |
|
* @phpstan-var array<string, array<parser_callable_string>|parser_callable_string|parser_callable> |
|
*/ |
|
protected $corePlugins = [ |
|
'csp_script_nonce' => '\CodeIgniter\View\Plugins::cspScriptNonce', |
|
'csp_style_nonce' => '\CodeIgniter\View\Plugins::cspStyleNonce', |
|
'current_url' => '\CodeIgniter\View\Plugins::currentURL', |
|
'previous_url' => '\CodeIgniter\View\Plugins::previousURL', |
|
'mailto' => '\CodeIgniter\View\Plugins::mailto', |
|
'safe_mailto' => '\CodeIgniter\View\Plugins::safeMailto', |
|
'lang' => '\CodeIgniter\View\Plugins::lang', |
|
'validation_errors' => '\CodeIgniter\View\Plugins::validationErrors', |
|
'route' => '\CodeIgniter\View\Plugins::route', |
|
'siteURL' => '\CodeIgniter\View\Plugins::siteURL', |
|
]; |
|
|
|
/** |
|
* View Decorators are class methods that will be run in sequence to |
|
* have a chance to alter the generated output just prior to caching |
|
* the results. |
|
* |
|
* All classes must implement CodeIgniter\View\ViewDecoratorInterface |
|
* |
|
* @var list<class-string<ViewDecoratorInterface>> |
|
*/ |
|
public array $decorators = []; |
|
|
|
/** |
|
* Merge the built-in and developer-configured filters and plugins, |
|
* with preference to the developer ones. |
|
*/ |
|
public function __construct() |
|
{ |
|
$this->filters = array_merge($this->coreFilters, $this->filters); |
|
$this->plugins = array_merge($this->corePlugins, $this->plugins); |
|
|
|
parent::__construct(); |
|
} |
|
}
|
|
|