timonf / twigony-framework-bundle
Twigony FrameworkBundle
v0.9.2
2017-11-10 10:36 UTC
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: 2024-09-15 02:48:13 UTC
README
Twigony 受到 Symfony 的 TemplateController 启发。Twigony 提供了常见的用例的默认控制器操作。您可以通过您的 routing.yml
文件来配置 Twigony(类似于 Symfony 的 TemplateController)。
Twigony 的目标
- 易于使用(无需自己的控制器,只需要一个实体和模板即可)
- 适用于快速原型设计
- 适用于简单的页面
- 更多前端代码(Twig)和更少后端代码(PHP/Symfony)
- 涵盖常见用例(数据库列表、电子邮件等)
信息: 此项目处于开发阶段。如果您想支持我或此项目,请在 Slack 上联系我(我的名字:@timon)。如果您没有 Slack 访问权限,请参阅 这里。
安装
创建一个空项目,并使用 composer 安装此包
$ symfony new your-new-project $ composer require timonf/twigony-framework-bundle
然后,通过将此包添加到项目的 app/AppKernel.php
文件中注册的包列表中启用此包
<?php // app/AppKernel.php // ... class AppKernel extends Kernel { public function registerBundles() { $bundles = array( // ... new \Twigony\Bundle\FrameworkBundle\TwigonyFrameworkBundle(), ); } }
文档
- TemplateController 用于静态页面(
_controller: twigony.template_controller:templateAction
) - SecurityController 用于登录页面(
_controller: twigony.security_controller:loginAction
) - SwiftMailerController 用于电子邮件表单(
_controller: twigony.mailer_controller:emailAction
) - DoctrineORMController 用于数据库操作(
_controller: twigony.template_controller:*
)
示例用法
多个静态页面(TemplateController)
-
创建两个或多个 Twig 模板(例如
app/views/info/hello.html.twig
和app/views/info/about.html.twig
) -
扩展您的
routing.yml
info_pages: path: '/info/{page}' defaults: _controller: 'twigony.template_controller:templateAction' template: 'info/{page}.html.twig'
列出实体(DoctrineORMController)
-
创建实体 或使用现有的一个(例如
src/AppBundle/Entity/Post.php
) -
创建一个模板(例如
app/views/posts/all.html.twig
) -
扩展您的
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
显示单个实体(DoctrineORMController)
-
创建实体 或使用现有的一个(例如
src/AppBundle/Entity/Post.php
) -
创建一个模板(例如
app/views/posts/show.html.twig
) -
扩展您的
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 }}…`