Когда я пишу код на стороне клиента, я использую HTML/CSS/JavaScript и в последнее время jQuery для ускорения кодирования и использования улучшенных методов для достижения той же цели.
В моем текстовом редакторе я использую zen-кодирование для ускорения написания кода, а также для предотвращения ошибок. Я некоторое время смотрел на zen-кодирование как плагин jQuery, но у него есть фатальный недостаток, который вы хотите, чтобы HTML был написан и отправлен на клиентскую платформу до того, как начнется любой javascript.
Хотя мы можем использовать серверы JavaScript (env.js или node.js) и, следовательно, делать большую часть серверной части разработки с использованием JavaScript и jQuery, мне неудобно двигаться дальше, поскольку это новая технология, и многие различия и недостатки (а также некоторые основные преимущества).
Я хочу продолжить использование PHP-сервера, но развиваться так, как мне больше всего нравится, и знакомство с которым - это клиентский JavaScript.
Поэтому - я изучал QueryPath, который является портом PHP jQuery, целью которого является использование лучших и наиболее значимых частей jQuery и переработка его в соответствии с серверной средой.
Это здорово, и теперь я смотрю на два класса PHP, способных анализировать дзэн-кодирование, которое при объединении действует как отличный механизм шаблонов, а также позволяет избежать ошибок в моем коде.
Проблема, с которой я столкнулась, заключается в том, что ни дзэн-кодирующие парсеры не поддерживают нигде рядом с полным набором функций zen-кодирования.
Итак, наконец, мои вопросы (извините за довольно длительное введение)
- Есть ли лучший код для дзэн-кодирования на стороне сервера, который я могу использовать в своем PHP-коде?
- Есть ли хорошая (очень сжатая и полнофункциональная) альтернативная система шаблонов для использования zen-кодирования? (который, как я знаю, изначально не предназначен для этой задачи)
- Есть ли лучший подход, который я должен предпринять для достижения моей конечной цели - сужения разрыва между тем, как я кодирую клиентскую сторону и серверную сторону?
- Есть ли библиотека PHP, которая реализует загрузку функций утилиты, которые с помощью повысят безопасность/производительность моего кода, если бы я не изучил все внутренние работы? (например, jQuery для javascript)
NB: Я больше ищу функциональную эквивалентность, чем синтаксическое сходство, хотя оба являются плюсом для меня.
Вот некоторый прокомментированный тестовый код, который должен осветить то, что я пытаюсь достичь:
<?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:[email protected]]{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:[email protected]">
send a comment
</a>
</span>
</p>
<script type="text/javascript">
$(function(){ alert("just decided to use some jQuery") })
</script>
</body>
</html>
*/
?>
Любая помощь очень ценится