kylekatarnls / jade-symfony
Symfony 的 Pug 模板引擎
资助包维护!
kylekatarnls
Open Collective
Tidelift
Requires
- php: >=5.4.0
- pug-php/pug: ^2.7.1 || ^3.0.0@beta
- pug-php/pug-assets: ^1.0.1
- pug/installer: ^0.1.0
- symfony/symfony: ^2.7 || ^3.0 || ^4.0
Requires (Dev)
- codeclimate/php-test-reporter: ^0.4.0
- composer/composer: >=1.0.0
- phpunit/phpunit: ^4.8 || ^5.7 || ~6.3.0
- symfony/phpunit-bridge: ^3.3.9
Replaces
- kylekatarnls/jade-symfony: 2.4.0
README
此仓库现在位于 https://github.com/pug-php/pug-symfony
Pug-Symfony
Symfony 的 Pug 模板引擎
安装
在您的 Symfony 项目的根目录下,打开终端并输入
composer require pug-php/pug-symfony
当系统询问是否自动安装所需设置时,输入 yes;或者如果您更喜欢,请按照以下手动安装步骤进行。
手动替代步骤
在 app/config/config.yml 中的 templating.engines 设置中添加 pug,通过合并以下设置到您的配置中
services: templating.engine.pug: class: Pug\PugSymfonyEngine arguments: ["@kernel"] framework: templating: engines: ['pug', 'twig', 'php']
为了使用 pug cli 命令,您还需要将 Pug\PugSymfonyBundle\PugSymfonyBundle()
添加到您的 AppKernel.php。
配置
您可以通过访问 Symfony 中的容器(从控制器或内核)来设置 pug 选项。
$services = $kernel->getContainer(); $pug = $services->get('templating.engine.pug'); $pug->setOptions(array( 'pretty' => true, 'pugjs' => true, // ... )); // You can get the Pug engine to call any method available in pug-php $pug->getEngine()->share('globalVar', 'foo'); $pug->getEngine()->addKeyword('customKeyword', $bar);
请参阅 pug-php README 中的选项: https://github.com/pug-php/pug 和在服务上直接可用的方法: https://github.com/pug-php/pug-symfony/blob/master/src/Jade/JadeSymfonyEngine.php
初始选项也可以通过 config.yml 中的参数传入
parameters: pug: expressionLanguage: php
使用方法
在 app/Resources/views 中创建具有 .pug 扩展名的文件以创建 jade 视图,例如 contact.pug,其中包含一些类似 jade 的内容
h1
| Hello
=name
然后在您的控制器中调用它
/** * @Route("/contact") */ public function contactAction() { return $this->render('contact/contact.pug', [ 'name' => 'Bob', ]); }
部署
在生产中,您最好预先渲染所有模板以提高性能。为此,您需要将 Pug\PugSymfonyBundle\PugSymfonyBundle 添加到您的已注册的包中。
在 app/AppKernel.php 的 registerBundles()
方法中,添加 Pug 包(如果您使用自动化脚本来安装 pug-symfony 2.3 或更高版本,这已被自动完成)
public function registerBundles() { $bundles = [ ... new Pug\PugSymfonyBundle\PugSymfonyBundle(), ];
这将使 assets:publish
命令可用,现在每次部署您的应用程序时,请输入以下命令: php bin/console assets:publish --env=prod