З тих пір як поєднання “Web 2.0” прийшло в маси, все частіше розробникам сайтів доводиться додавати “web 2.0 красивості” до сайтів. Дуже допомагає в цьому JavaScript фреймворк jQuery. Описувати всі принади цього фреймворку я думаю не має сенсу (про нього і так занадто багато написано), але мені, як PHP розробника, не вистачало зручного сервер сайда для генерації AJAX відповіді, в результаті на світло з’явилася PHP бібліотека jQuery-PHP…

Що в даній бібліотеці особливого? Ну по-перше це синтаксис – він дуже схожий з JavaScript частиною, ось вам приклад:

$(‘#test0’).html(‘new content’);

PHP код для генерації такого скрипта виглядає наступним чином:

jQuery(‘#test0’) -> html(‘new content’);

Як бачимо з прикладу синтаксис дійсно повторює знайомий для багатьох jQuery. Це звичайно простенький приклад, спробуємо що-нитка складніше:

jQuery(‘#test3 div’) -> bind(‘click’, array(‘test’=>’answer’), ‘eventAlert’)
-> css (‘cursor’, ‘pointer’)
-> css (‘color’, ‘#0000ff’)
-> css (‘textDecoration’, ‘underline’);

або навіть так:

jQuery(‘#test2 div’) -> html(date(‘H:i:s’) . ‘: new content’)
-> css(‘backgroundColor’ , ‘#0000ff’)
-> filter(‘.red’)
-> css(‘backgroundColor’ , ‘#ff0000’)
-> filter(‘filter’)
-> css(‘backgroundColor’ , ‘#00ff00’);

Як бачимо, навіть такі відносно складні ланцюжки працюють.

На даний момент я не зміг протестувати роботу всіх функцій, знаю точно, що існують наступні нюанси:

  • методів jQuery, яким в якості параметрів можуть бути передані callback функції можуть бути викликані в PHP, але javascript функції не можуть генеруватися на льоту, отже в якості параметрів слід використовувати ім’я існуючої функції
  • для підтримки callback функцій доводитися писати правила виключення у файлі jquery.php.js (див. мегасвитч починається з 30-го рядка)
  • зовсім не тестувалося з плагінами

Так само в даній бібліотеки є службові методи:

  • addMessage – додати повідомлення
  • addError – додати повідомлення про помилку
  • evalScript – виконати javascript

Недоліки:

  • Незначно збільшується навантаження на сервер
  • Зі зміною дизайну (або при підтримці скінів в системі можуть виникнути ускладнення

P. S. Дана бібліотека дуже схожа за призначенням з Xajax, тільки на клієнтської частини використовується jQuery і невеликий клас для розбору відповіді сервера.

P. P. S. Буде не зовсім чесно. якщо я скажу що писав цю бібліотеку особисто, в написанні її мені допомагали дві людини: Дмитро і Володимир Чиркін Котушенко (точніше вони починали, а я взяв молоток і зубило і все переробив заново)…