timonf / twigony-framework-bundle
Twigony FrameworkBundle
Installs: 21
Dependents: 0
Suggesters: 0
Security: 0
Stars: 3
Watchers: 0
Forks: 1
Open Issues: 2
Type:symfony-bundle
Requires
- php: >=7.0.0
- doctrine/orm: ^2.5
- swiftmailer/swiftmailer: ^5.4
- symfony/form: ~2.8|~3.0|~4.0
- symfony/framework-bundle: ~2.8|~3.0|~4.0
- symfony/http-foundation: ~2.8|~3.0|~4.0
- symfony/http-kernel: ~2.8|~3.0|~4.0
- symfony/property-access: ~2.8|~3.0|~4.0
- symfony/security: ~2.8|~3.0|~4.0
- symfony/templating: ~2.8|~3.0|~4.0
- twig/twig: ~1.26|~2.0
Requires (Dev)
- phpunit/phpunit: ^6.1
- squizlabs/php_codesniffer: ^2.8
This package is not auto-updated.
Last update: 2025-04-27 05:42:08 UTC
README
Twigony is inspired by Symfony's TemplateController.
Twigony provides default controller actions for common use cases. You are able to configure Twigony through your
routing.yml
file (like Symfony's TemplateController).
Goals of Twigony:
- Easy to use (no own controllers are needed, an Entity and a template is all you need)
- Usable for fast prototyping
- Usable for simple pages
- Much more frontend code (Twig) and less backend code (PHP/Symfony)
- Covers common use cases (database listing, email…)
Information: This project is in development. If you want to support me or this project contact me on Slack (My name: @timon). If you don't have access to Slack, have a look here.
Installation
Create an empty project and use composer to install this bundle:
$ symfony new your-new-project $ composer require timonf/twigony-framework-bundle
Then, enable the bundle by adding it to the list of registered bundles
in the app/AppKernel.php
file of your project:
<?php // app/AppKernel.php // ... class AppKernel extends Kernel { public function registerBundles() { $bundles = array( // ... new \Twigony\Bundle\FrameworkBundle\TwigonyFrameworkBundle(), ); } }
Documentation
- TemplateController for static pages (
_controller: twigony.template_controller:templateAction
) - SecurityController for login page (
_controller: twigony.security_controller:loginAction
) - SwiftMailerController for email forms (
_controller: twigony.mailer_controller:emailAction
) - DoctrineORMController for database operations (
_controller: twigony.template_controller:*
)
Example usages
Multiple static pages (TemplateController)
-
Create two or more Twig templates (like
app/views/info/hello.html.twig
andapp/views/info/about.html.twig
) -
Extend your
routing.yml
:info_pages: path: '/info/{page}' defaults: _controller: 'twigony.template_controller:templateAction' template: 'info/{page}.html.twig'
List entities (DoctrineORMController)
-
Create an entity or use an existing one (e .g.
src/AppBundle/Entity/Post.php
) -
Create a template (like
app/views/posts/all.html.twig
) -
Extend your
routing.yml
:posts: path: '/posts' defaults: _controller: 'twigony.orm_controller:listAction' template: 'posts/all.html.twig' entity: 'AppBundle\Entity\Post' options: as: 'posts' # Access variable for your Twig template. You can use it this way `{% for post in posts %}…` perPage: 50
Show single entity (DoctrineORMController)
-
Create an entity or use an existing one (e .g.
src/AppBundle/Entity/Post.php
) -
Create a template (like
app/views/posts/show.html.twig
) -
Extend your
routing.yml
:show_post: path: '/posts/{id}' # Make sure, you are using "id" as id parameter! defaults: _controller: 'twigony.orm_controller:viewAction' template: 'posts/show.html.twig' entity: 'AppBundle\Entity\Post' options: as: 'post' # Access variable for your Twig template. You can use it this way `{{ post.title }}…`