text($text); * */ if (!defined('_ECRIRE_INC_VERSION')) { return; } class TextWheelRule { ## rule description # optional public $priority = 0; # rule priority (rules are applied in ascending order) # -100 = application escape, +100 = application unescape public $name; # rule's name public $author; # rule's author public $url; # rule's homepage public $package; # rule belongs to package public $version; # rule version public $test; # rule test function public $disabled = false; # true if rule is disabled ## rule init checks ## the rule will be applied if the text... # optional public $if_chars; # ...contains one of these chars public $if_str; # ...contains this string (case sensitive) public $if_stri; # ...contains this string (case insensitive) public $if_match; # ...matches this simple expr ## rule effectors, matching # mandatory public $type; # 'preg' (default), 'str', 'all', 'split'... public $match; # matching string or expression # optional # var $limit; # limit number of applications (unused) ## rule effectors, replacing # mandatory public $replace; # replace match with this expression # optional public $is_callback = false; # $replace is a callback function public $is_wheel; # flag to create a sub-wheel from rules given as replace public $pick_match = 0; # item to pick for sub-wheel replace public $glue = null; # glue for implode ending split rule # optional # language specific public $require; # file to require_once # DEPRECATED : create_function deprecated a partir de PHP 7.2, ne plus utiliser public $create_replace; # do create_function('$m', %) on $this->replace, $m is the matched array # optimizations public $func_replace; public $compilereplace; /** * Rule constructor * * @param $args * @return */ public function __construct($args) { if (!is_array($args)) { return; } foreach ($args as $k => $v) { if (property_exists($this, $k)) { $this->$k = $args[$k]; } } $this->checkValidity(); // check that the rule is valid } /** * Rule checker */ protected function checkValidity() { if ($this->type == 'split') { if (is_array($this->match)) { throw new InvalidArgumentException('match argument for split rule can\'t be an array'); } if (isset($this->glue) and is_array($this->glue)) { throw new InvalidArgumentException('glue argument for split rule can\'t be an array'); } } } }