jkeks блог
3.10.2015 1072 просмотрa ;)

Правильное взаимодействие JavaScript в Chromium и PHP DevelStudio на десктопе.



Встраивая CodeMirror 5.7 в свой редактор кода на DevelStudio я наконец-то допер до того какова должна быть правильная схема взаимодействия JavaScript из втроенного Chromium и собственно самого PHP кода.

JavaScript вызывает PHP.call в том месте когда надо передать текст из JavaScript.
При этом управление попадает в PHP DevelStudio в определенную функцию. Функция эта одна, она принимает текст и кладет его например в memo.

В нашей с вами задаче весь код необходимо писать на PHP, работать с JavaScript не нужно, ввиду того что это другой язык, он имеет свой regexp, у него какая-то странная событийная модель ломающая голову простому процедурщику.


Представим что нам надо реализовать 10 функций по обработке текста в редакторе.
Каждая должна брать текст из CodeMirror textarea (Chromium), делать там обработку текста и класть обратно.

Класть в CodeMirror можно одной функцией. Это просто и удобно, а вот пришедший код в memo не совсем ясно как обрабатывать по той причине что приходит код асинхронно и попадает неизвестно когда в memo.

Вот тут и заковырка, которую пришлось решить так:

Это готовое решение, все работает как часы и взаимодействие налажено.

Конечно скажете вы, мог бы написать все на том же nodeJS, но там нет такого удобного дизайнера как в DevelStudio. Да и нативное приложение получится убогое нативное приложение где один Хромиум.







Видеочат рулетка

jAntivirus Рейтинг@Mail.ru