static function register($class, $view_path) { if (!is_a($class, Widget::class, true)) { throw new \Exception('Не является наследником класса ' . Widget::class); } $widget_name = $class::widget_name(); if ($view_path) { Boot::register_view_path($view_path, $widget_name); } Twig::register_function($widget_name, function ($instance = null) use($class) { return $class::instance($instance); }); }
/** * @param \Illuminate\Contracts\Auth\Access\Gate $gate * * @return void */ public function boot() { //регистрация политик моделей // foreach(Boot::policies_model() as $model_class => $policy_class) { // $gate->policy($model_class, $policy_class); // } //регистрация путей шаблонов для пространств имен foreach (Boot::view_paths() as $v) { $namespace = Arr::get($v, 'namespace'); $view_path = Arr::get($v, 'view_path'); $this->loadViewsFrom($view_path, $namespace); } //регистрация команд $this->commands(Boot::commands()); }
<?php //регистрируем сервис-провайдер Larakit\Boot::register_provider('TwigBridge\\ServiceProvider'); Larakit\Boot::register_alias('Twig', 'TwigBridge\\Facade\\Twig'); Larakit\Boot::register_command(\Larakit\Twig\CommandTwig::class); Larakit\Boot::register_command(\Larakit\Twig\CommandNsView::class); /*################################################################################ middlewares ################################################################################*/ \Larakit\Boot::register_middleware(\Larakit\Twig\MiddlewareTwig::class); //###################################################################### // регистрируем фильтры //###################################################################### Larakit\Twig::register_filter('upper', function ($text) { return mb_strtoupper($text); }); Larakit\Twig::register_filter('lower', function ($text) { return mb_strtolower($text); }); Larakit\Twig::register_filter('int', function ($text) { return (int) $text; }); //###################################################################### // регистрируем функции //###################################################################### \Larakit\Twig::register_function('env', function ($key, $default = null) { return env($key, $default); }); \Larakit\Twig::register_function('base64_decode', function ($data, $strict = null) { return base64_decode($data, $strict);
<?php use Larakit\Boot; /*################################################################################ providers ################################################################################*/ Boot::register_provider(\Larakit\LarakitBootServiceProvider::class); if (!function_exists('lk_snake')) { function lk_snake($value, $delimiter = '_') { /** * * Переопределяем функцию snake из Illuminate\Support\Str для нормальной компиляции bootstrap/cache/compiled.php * (это необходимо для того, чтобы класс Str не загружался до подключения скомпилированного файла) * * @param string $value * @param string $delimiter * * @return string */ if (!ctype_lower($value)) { $value = preg_replace('/\\s+/u', '', $value); $value = mb_strtolower(preg_replace('/(.)(?=[A-Z])/u', '$1' . $delimiter, $value)); } return $value; } } if (!function_exists('lk_studly')) { function lk_studly($value) { /**