keiwen / cacofony
Custom Application Code Overlay for symfony
Installs: 67
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
Type:symfony-bundle
pkg:composer/keiwen/cacofony
Requires
- php: >=8.0
- ext-curl: *
- ext-intl: *
- ext-json: *
- keiwen/utils: >=2.0
- symfony/framework-bundle: ^6.4
Suggests
- braincrafted/bootstrap-bundle: Manage bootstrap, ~2.2
- components/jquery: Include jQuery, ~1.11
- egeloen/ckeditor-bundle: Rich text editor, ~4.0
- fortawesome/font-awesome: Include font-awesome, ~4.0
- knplabs/knp-snappy-bundle: Convert HTML to PDF/images, ~1.0
- liip/imagine-bundle: Image manipulation, ~1.0
- nelmio/api-doc-bundle: Generate API doc from annotations, ^3.6
- oyejorge/less.php: Include less compiler, ~1.5
- symfony/assetic-bundle: Combine js/css ressources, ~2.8
- twbs/bootstrap: Include bootstrap, ~3.0
README
Custom Application Code Overlay for Symfony framework
Consolidation completed for Symfony 6.4
Controller
- Parent controller 'AppController' is provided
- AppController can automatically dump template parameters on dev: when modifying template, you can see every available parameters
- AppController can automatically retrieve template
(in "{controllerName}/{functionName}.html.twig") by using return renderTemplate([])
- AppController can redirect with cookies already defined. Methods are added to redirect to referer or to self route.
Controller use a specific Request object (extending standard one), and should be declared in public/index file:
//use Symfony\Component\HttpFoundation\Request
use Keiwen\Cacofony\Http\Request
Declare its use in kernel if needed
$kernel = new Kernel($_SERVER['APP_ENV'], (bool) $_SERVER['APP_DEBUG']);
$request = Request::createFromGlobals();
$response = $kernel->handle($request);
$response->send();
$kernel->terminate($request, $response);
Restrict to Role
This attribute could be used to check user role. Could be on a single action or for a whole controller.
 #[RestrictToRole(roles: "admin")]
class TestController extends DefaultController
In this example, system will check if user has 'ROLE_ADMIN' role. If not, an AccessDeniedException is raised. Value in attribute don't need to be uppercase or have the 'role_' prefix.
Template Param
This attribute could be used for 'constants' given to templates. It could be defined on a single action, or for the full controller
 #[TemplateParameter(name: "section", value: "test")
class TestController extends DefaultController
In this example, all actions in this controller will automatically return a 'section' parameter, with value 'test'
Translation
For translations purpose, you can set a specific locale (default 'transCode') to display translations code instead of actual translated strings. Useful when working on translations from running application.
Twig
Filters
- labeladd ':' at the end of your text. Depending on locale, it can add non-breakable space (as in french)
- str_limitto limit displayed string to given length, ending with '...' by default
- ucfirstswitch first letter to uppercase
Methods
- getRoute()returns route name
- hasRole('user')check if current user has specified role. Value don't need to be uppercase or have the 'role_' prefix.
EntityRegistry
Can save, remove, detach or copy an entity or a list of entities. Each methods include an optional commit parameter (default true). In controller:
$this->getEntityRegistry()->saveObject($entity);