simplethings / distribution-bundle
This bundles ships convenience methods, helpers, utils and a simple runtime admin generator based on the Sensio CodeGenerators.
Installs: 195
Dependents: 0
Suggesters: 0
Security: 0
Stars: 9
Watchers: 3
Forks: 1
Open Issues: 0
Type:symfony-bundle
Requires
- php: >=5.3.0
- symfony/symfony: >=2.0
This package is auto-updated.
Last update: 2022-02-01 12:19:59 UTC
README
Repository Service Detector
The bundle ships a dependency injection extension that automatically detects services for the repositories of Doctrine ORM entities. The convention for registration is '{bundle_alias}.repository.{entity}', everything in lowercase.
Controller Utils
The service simple_things.distribution.controller_utils
implements all the methods that the Base Controller of the Framework Bundle has with
the following exceptions:
* No access to the container possible through `has()` and `get()`
* Added method `getRestView()` to access the fos_rest.view service if defined.
* Added methods `isPut()`, `isPost()`, `isDelete()` and `isXmlHttpRequest()`.
* Added methods `getUser()` and `isGranted($attributes, $object = null)` that checks for permissions
* Added methods for throwing more http related exceptions
* Added method `getSession()`
* Added method `getLogger()`
Controller
By Symfony2 default controllers are not service and services are grabbed through a service-locator approach by directly accessing the Symfony DI Container. This is very convenient, but leads to hard to maintain code in the long run.
This bundle ships a SimpleThings\DistributionBundle\Controller\Controller that is automatically registered as a service based on the "{bundle_alias}.controller.{controller_name}" convention. This controller is automatically injected the Controller#utils variable as the controller utils service.
For simplicity there is also Controller#__call implemented that delegates to the utils service for as much API compability as possible to the default controller.
use SimpleThings\DistributionBundle\Controller\Controller;
/**
* Controller to access jira instances through a HTTP-JSON interface
*
* @Extra\Route(service="whitewashing.controller.jira")
*/
class JiraController extends Controller
{
private $jiraFactory;
public function __construct($jiraFactory)
{
$this->jiraFactory = $jiraFactory;
}
/**
* @Extra\Route("/jira/projects", name="ww_jira_projects")
* @Extra\Method("GET")
*/
public function projectsAction(Request $request)
{
}
}