Controller package for Bone Framework
bone-controller is part of the core functionality of delboy1978uk/bone, and as such will already be installed in your
app.
The Bone\Controller\Controller comes with a serializer, view engine, translator, and site config info. Just extend it in your own
class to get these features, and in your package registration class, pass it through Bone\Controller\Init:
$controller = new YourController();
return Init::controller($controller, $c); // where $c is the containerThe Init class is a convenience class which checks for the following, and populates from the DI container.
| Feature | Interface | Trait |
|---|---|---|
| Entity Manager | Bone\BoneDoctrine\Traits\EntityManagerAwareInterface | Bone\BoneDoctrine\Traits\HasEntityManagerTrait |
| i18n | Bone\I18n\I18nAwareInterface | Bone\I18n\Traits\HasTranslatorTrait |
| Logger | Bone\Log\Traits\HasLoggerTrait | Bone\Log\Traits\HasLoggerTrait |
| PDO Connection | Bone\Db\DbProviderInterface | Bone\Db\HasDbTrait |
| Serializer | Bone\Controller\SerializerAwareInterface | Bone\Controller\Traits\HasSerializer |
| Session | Bone\Server\SessionAwareInterface | Bone\Server\Traits\HasSessionTrait |
| Site Config | Bone\Server\SiteConfigAwareInterface | Bone\Server\Traits\HasSiteConfigTrait |
| View | Bone\View\ViewAwareInterface | Bone\View\Traits\HasViewTrait |
In your own controller, implement the Interface and use the Trait:
use Bone\BoneDoctrine\EntityManagerAwareInterface;
use Bone\BoneDoctrine\Traits\HasEntityManagerTrait;
class MyController implements EntityManagerAwareInterface
{
use HasEntityManagerTrait;
}
