当我编写客户端代码时,我使用 HTML/CSS/JavaScript 和最近的 jQuery 来加快编码速度,并使用改进的方法来实现相同的目标。
在我的文本编辑器中,我使用 zen-coding 来加快代码的编写速度,同时也避免错误。一段时间以来,我一直将 zen-coding 视为一个 jQuery 插件,但它有一个致命的缺陷,即您希望在任何 javascript 启动之前编写 HTML 并将其发送到客户端。
虽然我们可以使用 JavaScript 服务器(env.js 或 node.js),因此在服务器端使用 JavaScript 和 jQuery 进行了大量开发,但由于它是一种新兴技术,并且有许多不同和缺点(还有一些主要优点)。
我想继续使用 PHP 服务器端,但以我最熟悉的方式进行开发,并且熟悉客户端 JavaScript。
因此 - 我一直在研究 QueryPath,它是 jQuery 的一个 PHP 端口,旨在采用 jQuery 的最佳和最相关的部分并对其进行重新设计以适应服务器环境。
这一切都很好,我现在一直在研究两个能够解析 zen-coding 的 PHP 类,当它们组合起来时,它们可以作为一个很好的模板引擎,也可以避免我的代码中的错误。
我遇到的问题是,没有一个 zen-coding 解析器支持完整的 zen-coding 功能集。
所以最后我的问题(对不起,相当冗长的介绍)
- 我可以在我的 PHP 代码中使用更好的服务器端 zen 编码解析器吗?
- 是否有一个很好的(非常简洁和功能齐全的)替代模板系统来使用 zen 编码?(我知道最初不是为这项任务设计的)
- 我应该采取更好的方法来实现缩小客户端和服务器端编码方式之间鸿沟的最终目标吗?
- 是否有一个 PHP 库可以实现大量实用功能,通过使用这些功能可以提高我的代码的安全性/性能,而无需我学习所有内部工作原理?(就像 jQuery 对 javascript 所做的那样)
注意:我更多的是寻找功能对等而不是句法相似——尽管两者对我来说都是一个加分项。
这是一些注释测试代码,应该说明我想要实现的目标:
<?php
// first php based zen-coding parser
// http://code.google.com/p/zen-php
require_once 'ZenPHP/ZenPHP.php';
// my own wrapper function
function zp($abbr){ return ZenPHP::expand($abbr); }
// second php based zen-coding parser
// https://github.com/philipwalton/PW_Zen_Coder
require_once 'PW_Zen_Coder/PW_Zen_Coder.php';
$zc = new PW_Zen_Coder;
// my own wrapper function
function pwzc($abbr){ global $zc; return $zc->expand($abbr); }
// php port of jQuery with a new server-side flavor
// http://querypath.org/
require_once 'QueryPath/QueryPath.php';
// initialize query path with simple html document structure
qp(zp('html>head+body'))
// add a heading and paragraph to the body
->find('body')
->html(zp('h1{Zen Coding and jQuery - Server Side}+p{This has all been implemented as a php port of JavaScript libraries}'))
// add a comments link to the paragraph
->find('p')
->append(pwzc('span.comments>a[href=mailto:this@comment.com]{send a comment}'))
// decide to use some jquery - so add it to the head
->find(':root head')
->append(zp('script[type=text/javascript][src=/jquery.js]'))
// add an alert script to announce use of jQuery
->find(':root body')
->append(zp('script[type=text/javascript]{$(function(){ alert("just decided to use some jQuery") })}'))
// send it to the browser!
->writeHTML();
/* This will output the following html
<html>
<head>
<script type="text/javascript" src="/jquery.js"></script>
</head>
<body>
<h1>
Zen Coding and jQuery - Server Side
</h1>
<p>
This has all been implemented as a php port of JavaScript libraries
<span class="comments">
<a href="mailto:this@comment.com">
send a comment
</a>
</span>
</p>
<script type="text/javascript">
$(function(){ alert("just decided to use some jQuery") })
</script>
</body>
</html>
*/
?>
任何帮助深表感谢