Controllers
Introduction
Base Controllers
The base
controller is extended by both public
and admin
controllers and provides some basic functionality built in.
We recommend you extend the public
or admin
controllers below. However you can extend Anomaly\Streams\Platform\Http\Controller\BaseController
with your own controller and do as you like.
Default Properties
$this->container = app();
$this->request = app('Illuminate\Http\Request');
$this->redirect = app('Illuminate\Routing\Redirector');
$this->view = app('Illuminate\Contracts\View\Factory');
$this->asset = app('Anomaly\Streams\Platform\Asset\Asset');
$this->events = app('Illuminate\Contracts\Events\Dispatcher');
$this->template = app('Anomaly\Streams\Platform\View\ViewTemplate');
$this->messages = app('Anomaly\Streams\Platform\Message\MessageBag');
$this->response = app('Illuminate\Contracts\Routing\ResponseFactory');
$this->url = app('Anomaly\Streams\Platform\Routing\UrlGenerator');
$this->breadcrumbs = app('Anomaly\Streams\Platform\Ui\Breadcrumb\BreadcrumbCollection');
$this->route = $this->request->route();
Default Middleware
$this->middleware(Anomaly\Streams\Platform\Http\Middleware\VerifyCsrfToken::class);
$this->middleware(Anomaly\Streams\Platform\Http\Middleware\PoweredBy::class);
$this->middleware(Anomaly\Streams\Platform\Http\Middleware\ForceSsl::class);
$this->middleware(Anomaly\Streams\Platform\Http\Middleware\PrefixDomain::class);
$this->middleware(Anomaly\Streams\Platform\Http\Middleware\SetLocale::class);
$this->middleware(Anomaly\Streams\Platform\Http\Middleware\CheckLocale::class);
$this->middleware(Anomaly\Streams\Platform\Http\Middleware\ApplicationReady::class);
$this->middleware(Anomaly\Streams\Platform\Http\Middleware\HttpCache::class);
Public Controllers
A general public
controller is provided to be extended by your own for use with publicly accessible routes.
You can get started by extending Anomaly\Streams\Platform\Http\Controller\PublicController
with your own controller.
Default Middleware
The public
controller only adds a single but important middleware for general public access controllers:
$this->middleware('Anomaly\Streams\Platform\Http\Middleware\CheckForMaintenanceMode');
Admin Controllers
A general admin
controller is provided to be extended by your own for use with control panel
routes.
You can get started by extending Anomaly\Streams\Platform\Http\Controller\AdminController
with your own controller.
Default Middleware
The admin
controller only adds a single but important middleware for general control panel controllers:
$this->middleware('auth');
API Controllers
A general resource
controller is provided to be extended by your own for use with API
routes.
You can get started by extending Anomaly\Streams\Platform\Http\Controller\ResourceController
with your own controller.
Default Middleware
The resource
controller disables the VerifyCsrfToken
middleware by default.
Rendering Views
Use the view
helper or property to return
views from a controller.
<?php namespace Anomaly\ExampleModule\Http\Controller;
use Anomaly\Streams\Platform\Http\Controller\AdminController;
class ExampleController extends AdminController
{
public function example()
{
return view('anomaly.module.example::pages/example');
}
}
Passing View Data
You can method inject
classes like a repository to pass entries
along to use in the view.
<?php namespace Anomaly\ExampleModule\Http\Controller;
use Anomaly\Streams\Platform\Http\Controller\AdminController;
use Anomaly\ExampleModule\Example\ExampleRepository;
class ExampleController extends AdminController
{
public function examples(ExampleRepository $examples)
{
return view('anomaly.module.example::pages/examples', [
'entries' => $examples->all()
]);
}
}
Data passed to views is automatically decorated.