timonf/twigony-framework-bundle

Twigony FrameworkBundle

安装次数: 20

依赖者: 0

建议者: 0

安全性: 0

星标: 3

关注者: 1

分支: 1

开放问题: 2

类型:symfony-bundle

v0.9.2 2017-11-10 10:36 UTC

This package is not auto-updated.

Last update: 2024-09-15 02:48:13 UTC


README

SensioLabsInsight

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)

  1. 创建两个或多个 Twig 模板(例如 app/views/info/hello.html.twigapp/views/info/about.html.twig

  2. 扩展您的 routing.yml

    info_pages:
        path: '/info/{page}'
        defaults:
            _controller: 'twigony.template_controller:templateAction'
            template:    'info/{page}.html.twig'
    

列出实体(DoctrineORMController)

  1. 创建实体 或使用现有的一个(例如 src/AppBundle/Entity/Post.php

  2. 创建一个模板(例如 app/views/posts/all.html.twig

  3. 扩展您的 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)

  1. 创建实体 或使用现有的一个(例如 src/AppBundle/Entity/Post.php

  2. 创建一个模板(例如 app/views/posts/show.html.twig

  3. 扩展您的 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 }}…`