クライアント側のコードを書くときは、HTML/CSS/JavaScript と最近では jQuery を使用してコーディングを高速化し、改善された方法を使用して同じ目標を達成しています。
私のテキスト エディターでは、Zen コーディングを使用してコードの記述を高速化し、エラーを回避しています。しばらくの間、jQuery プラグインとしての zen-coding を検討していましたが、これには致命的な欠陥があり、javascript が起動する前に HTML を記述してクライアントにプレーンで送信する必要があります。
JavaScript サーバー (env.js または node.js) を使用できるため、JavaScript と jQuery を使用してサーバー側で多くの開発を行うことができますが、これは新しいテクノロジであり、多くの違いと欠点があるため (また、いくつかの大きな利点もあります)。
PHPサーバーサイドを使い続けたいと思っていますが、私が最も快適で、クライアントサイドのJavaScriptに精通している方法で開発しています。
したがって、私は、jQuery の最良かつ最も関連性の高い部分を取り、サーバー環境に合わせて再加工することを目的とした、jQuery の PHP ポートである QueryPath を調べてきました。
それはすべて素晴らしいことです。私は今、zen-coding を解析できる 2 つの PHP クラスを見てきました。これらを組み合わせると、優れたテンプレート エンジンとして機能し、コードのエラーも回避できます。
私が抱えている問題は、どちらの zen コーディング パーサーも zen コーディング機能の完全なセットに近いところをサポートしていないことです。
最後に私の質問です(かなり長いイントロで申し訳ありません)
- PHP コードで使用できる、より優れたサーバー側の 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>
*/
?>
どんな助けでも大歓迎です