for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace App\Http\ViewComposers;
use Illuminate\View\View;
use App\Interfaces\AboutMeServiceInterface;
class NavbarMenuViewComposer
{
public function __construct(AboutMeServiceInterface $aboutMeService)
$this->aboutMeService = $aboutMeService;
aboutMeService
In PHP it is possible to write to properties without declaring them. For example, the following is perfectly valid PHP code:
class MyClass { } $x = new MyClass(); $x->foo = true;
Generally, it is a good practice to explictly declare properties to avoid accidental typos and provide IDE auto-completion:
class MyClass { public $foo; } $x = new MyClass(); $x->foo = true;
}
public function compose(View $view)
$navbarMenu = [
[
'title' => 'Home Page',
'url' => route('posts.index'),
'active' => request()->routeIs('/') || request()->routeIs('*posts*'),
],
'title' => 'Categories',
'url' => route('categories.index'),
'active' => request()->routeIs('*categories*'),
'title' => 'Tags',
'url' => route('tags.index'),
'active' => request()->routeIs('*tags*'),
];
if ($this->aboutMeService->hasContent()) {
$navbarMenu[] = [
'title' => 'About me',
'url' => route('about-me.show'),
'active' => request()->routeIs('about-me.show'),
$view->with('navbarMenu', collect($navbarMenu)->map(function ($menuElement) {
return (object) $menuElement;
}));
In PHP it is possible to write to properties without declaring them. For example, the following is perfectly valid PHP code:
Generally, it is a good practice to explictly declare properties to avoid accidental typos and provide IDE auto-completion: