ÿØÿà JFIF ÿá Exif MM * ÿÛ C
Server IP : 199.250.214.225 / Your IP : 18.216.244.98 Web Server : Apache System : Linux vps64074.inmotionhosting.com 3.10.0-1160.105.1.vz7.214.3 #1 SMP Tue Jan 9 19:45:01 MSK 2024 x86_64 User : nicngo5 ( 1001) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : OFF Directory : /home/nicngo5/laravelvue/vendor/laravel/framework/src/Illuminate/View/Concerns/ |
Upload File : |
<?php namespace Illuminate\View\Concerns; use Illuminate\Support\Arr; use Illuminate\Support\HtmlString; trait ManagesComponents { /** * The components being rendered. * * @var array */ protected $componentStack = []; /** * The original data passed to the component. * * @var array */ protected $componentData = []; /** * The slot contents for the component. * * @var array */ protected $slots = []; /** * The names of the slots being rendered. * * @var array */ protected $slotStack = []; /** * Start a component rendering process. * * @param string $name * @param array $data * @return void */ public function startComponent($name, array $data = []) { if (ob_start()) { $this->componentStack[] = $name; $this->componentData[$this->currentComponent()] = $data; $this->slots[$this->currentComponent()] = []; } } /** * Get the first view that actually exists from the given list, and start a component. * * @param array $names * @param array $data * @return void */ public function startComponentFirst(array $names, array $data = []) { $name = Arr::first($names, function ($item) { return $this->exists($item); }); $this->startComponent($name, $data); } /** * Render the current component. * * @return string */ public function renderComponent() { $name = array_pop($this->componentStack); return $this->make($name, $this->componentData($name))->render(); } /** * Get the data for the given component. * * @param string $name * @return array */ protected function componentData($name) { return array_merge( $this->componentData[count($this->componentStack)], ['slot' => new HtmlString(trim(ob_get_clean()))], $this->slots[count($this->componentStack)] ); } /** * Start the slot rendering process. * * @param string $name * @param string|null $content * @return void */ public function slot($name, $content = null) { if (func_num_args() === 2) { $this->slots[$this->currentComponent()][$name] = $content; } else { if (ob_start()) { $this->slots[$this->currentComponent()][$name] = ''; $this->slotStack[$this->currentComponent()][] = $name; } } } /** * Save the slot content for rendering. * * @return void */ public function endSlot() { last($this->componentStack); $currentSlot = array_pop( $this->slotStack[$this->currentComponent()] ); $this->slots[$this->currentComponent()] [$currentSlot] = new HtmlString(trim(ob_get_clean())); } /** * Get the index for the current component. * * @return int */ protected function currentComponent() { return count($this->componentStack) - 1; } }