krzksz / phcompile
PHP服务器端预编译器,用于AngularJS应用程序。
v0.4.1
2015-03-12 18:24 UTC
Requires
- php: >=5.3.0
Requires (Dev)
- phpunit/php-invoker: *
- phpunit/phpunit: ~4.0
README
用于在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,这给了我灵感,并为这个项目提供了想法。