![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/job-board.corals.io/vendor/laravelcollective/html/src/ |
<?php namespace Collective\Html; use Illuminate\Contracts\Support\DeferrableProvider; use Illuminate\Support\ServiceProvider; use Illuminate\Support\Str; use Illuminate\View\Compilers\BladeCompiler; class HtmlServiceProvider extends ServiceProvider implements DeferrableProvider { /** * Supported Blade Directives * * @var array */ protected $directives = ['entities','decode','script','style','image','favicon','link','secureLink','linkAsset','linkSecureAsset','linkRoute','linkAction','mailto','email','ol','ul','dl','meta','tag','open','model','close','token','label','input','text','password','hidden','email','tel','number','date','datetime','datetimeLocal','time','url','file','textarea','select','selectRange','selectYear','selectMonth','getSelectOption','checkbox','radio','reset','image','color','submit','button','old' ]; /** * Register the service provider. * * @return void */ public function register() { $this->registerHtmlBuilder(); $this->registerFormBuilder(); $this->app->alias('html', HtmlBuilder::class); $this->app->alias('form', FormBuilder::class); $this->registerBladeDirectives(); } /** * Register the HTML builder instance. * * @return void */ protected function registerHtmlBuilder() { $this->app->singleton('html', function ($app) { return new HtmlBuilder($app['url'], $app['view']); }); } /** * Register the form builder instance. * * @return void */ protected function registerFormBuilder() { $this->app->singleton('form', function ($app) { $form = new FormBuilder($app['html'], $app['url'], $app['view'], $app['session.store']->token(), $app['request']); return $form->setSessionStore($app['session.store']); }); } /** * Register Blade directives. * * @return void */ protected function registerBladeDirectives() { $this->app->afterResolving('blade.compiler', function (BladeCompiler $bladeCompiler) { $namespaces = [ 'Html' => get_class_methods(HtmlBuilder::class), 'Form' => get_class_methods(FormBuilder::class), ]; foreach ($namespaces as $namespace => $methods) { foreach ($methods as $method) { if (in_array($method, $this->directives)) { $snakeMethod = Str::snake($method); $directive = strtolower($namespace).'_'.$snakeMethod; $bladeCompiler->directive($directive, function ($expression) use ($namespace, $method) { return "<?php echo $namespace::$method($expression); ?>"; }); } } } }); } /** * Get the services provided by the provider. * * @return array */ public function provides() { return ['html', 'form', HtmlBuilder::class, FormBuilder::class]; } }