krzksz/phcompile

PHP服务器端预编译器,用于AngularJS应用程序。

v0.4.1 2015-03-12 18:24 UTC

This package is not auto-updated.

Last update: 2024-09-28 17:06:40 UTC


README

Build Status

用于在PHP服务器端预编译AngularJS模板的库。

使用phCompile的目标是让您使用现有的JSON REST API编译您的HTML模板。

服务器端编译的工作方式允许您通过添加特殊类或属性到元素,轻松地回滚phCompile在客户端所做的所有更改。

phCompile目前处于alpha状态,可能存在bug和API更改。

用例

  • 在首次加载时提供完整的网站,以改善SEO和社会爬虫。
  • 在客户端应用程序外部重用AngularJS模板。
  • 静态HTML页面生成。
  • 使用大数据块时加快网站渲染速度。
  • 在不启用JavaScript的情况下使您的网站保留最小功能。

支持的AngularJS功能

  • {{ }}表达式;
  • ng-repeat(不带"track by");
  • ng-hide, ng-show;
  • ng-class, ng-class-even, ng-class-odd;
  • ng-bind, ng-bind-template;
  • ng-href;
  • ng-value;
  • ng-src, ng-srcset.

路线图

  • 剩余的文本AngularJS指令;
  • 过滤器(目前它们预期会破坏使用它们的表达式),
  • 表达式缓存;
  • 建议?

快速示例

$phCompile = new \PhCompile\PhCompile(); // Create PhCompile object
$template = new \PhCompile\Template\Template($phCompile); // Create template
$template->setScope(new Scope(array('foo'=>'bar'))); // Set scope data.

$template->loadHtml('template.html'); // Load from file
$template->setHtml('<span ng-bind="foo"></span>'); // Or just from string
echo $template->compile(); // "<span ng-bind="foo">bar</span>"

文档

贡献

欢迎您贡献您自己的改进和想法。如果您有任何问题和功能想法,请将它们发布在项目的issue页面上。

联系

如果您愿意,您可以联系我或通过Twitter@krzksz关注我。

感谢

我想感谢@danchoi创建他的AngularJS模板解析器Haskell,这给了我灵感,并为这个项目提供了想法。