/** * Отсекает у строки $haystack подстроку $needle, * если она встречается в начале или в конце строки $haystack * 2016-10-28 * Добавил поддержку нескольких $needle. * @param string $haystack * @param string|string[] $needle * @return string */ function df_trim_text($haystack, $needle) { return df_trim_text_left(df_trim_text_right($haystack, $needle), $needle); }
/** * 2015-12-12 * Для филдсета верхнего уровня: * *) getName() возвращает «groups[frontend][fields][value_font][value]» * *) getId() возвращает dfe_sku_frontend_value_font * Для подчинённых филдсетов мы getId() равно getName() * @return string */ private function nameFull() { if (!isset($this->{__METHOD__})) { $this->{__METHOD__} = $this->isTop() ? df_trim_text_right($this->getName(), '[value]') : (!$this->_anonymous ? $this->getId() : $this->_parent->nameFull()); } return $this->{__METHOD__}; }
/** * 2015-08-14 * Обратите внимание, что @uses get_class() не ставит «\» впереди имени класса: * http://3v4l.org/HPF9R namespace A; class B {} $b = new B; echo get_class($b); * => «A\B» * * 2015-09-01 * Обратите внимание, что @uses ltrim() корректно работает с кириллицей: * https://3v4l.org/rrNL9 * echo ltrim('\\Путь\\Путь\\Путь', '\\'); => Путь\Путь\Путь * * 2016-10-20 * Нельзя делать параметр $c опциональным, потому что иначе получим сбой: * «get_class() called without object from outside a class» * https://3v4l.org/k6Hd5 * * @used-by df_explode_class() * @used-by df_module_name() * @param string|object $c * @param string $del [optional] * @return string */ function df_cts($c, $del = '\\') { /** @var string $result */ $result = df_trim_text_right(is_object($c) ? get_class($c) : ltrim($c, '\\'), '\\Interceptor'); return '\\' === $del ? $result : str_replace('\\', $del, $result); }