结合jQuery和Zen-Coding php端口在服务器端脚本上模拟客户端编程风格
|
在编写客户端代码时,我使用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类,将它们组合使用时,它们可以充当强大的模板引擎,还可以避免代码中的错误。
我遇到的问题是,禅宗编码解析器都不支持接近整套禅宗编码功能的任何地方。
所以最后我的问题(抱歉,冗长的介绍)
我可以在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>
*/
?>
任何帮助深表感谢
没有找到相关结果
已邀请:
5 个回复
犀寺扦
和
6 ..如您所知,zen-coding和queryPath都不打算以您的方式使用,至少在生产场景中不这样。 7 .. jQuery有一个很好的文档并且可以使用,这并不意味着任何人都可以成功使用它。 (仅复制/粘贴不视为IMO的编码技能) 解 对于看诸如smarty之类的PHP模板引擎,这可能是最好的解决方案,它将以多种方式满足您的需求: 安全/性能 缩小我在客户端和服务器端编码方式之间的鸿沟 一个示例将是:(被认为是一个非常原始的示例,smarty具有更强大的功能)
注意:使用
,是的,您还应该考虑可能的某种变量检查。聪明的人可以做到。 希望对您有所帮助。 ;)
肉簧咸缮
降女陷费券
一些要点:
打开输出缓冲区(输出未发送到客户端,而是存储在内部缓冲区中)
会说要在布局中添加新的脚本标签 然后是必须用布局装饰的纯HTML
获得存储在内部缓冲区中的输出,并将其分配给变量。 “ 10”将包括具有主要HTML结构的布局以及一些用于打印metas,标题,“ 11”标签,“ 12”标签等的逻辑。该布局将包含“ 13”来打印页面内容。 可以将点1、4和5委派给前端控制器,因此视图可以只是:
抽法
羔磺
。 您可以看一下
中的扩展,并查看它们的工作方式。 (
很容易让人gr舌。) 如果您确实要建立(发布)解决方案,请告诉我。