|
аналог Reflection у JS есть? | ☑ | ||
---|---|---|---|---|
0
Fragster
гуру
05.03.13
✎
13:34
|
особенно интересует, можно ли получить данные как в PHP у ReflectionFunction:
$parameterArray = $method->getParameters(); $docComment = $method->getDocComment(); Задача - описать в функции требования к ее вызову, не влияющие на ее работу. В PHP можно указать требуемый класс параметра а также получить текст phpDoc, если он есть и отпарсить его. Соответственно в этом phpDocтоже можно что-то описывать. |
|||
1
Fragster
гуру
05.03.13
✎
13:46
|
что, никто не знает про Reflection&
|
|||
2
Fragster
гуру
05.03.13
✎
13:46
|
?
|
|||
3
pumbaEO
05.03.13
✎
13:57
|
javascriptDoc ?
|
|||
4
Fragster
гуру
05.03.13
✎
13:58
|
(3) как к нему из кода обратиться?
|
|||
5
pumbaEO
05.03.13
✎
14:01
|
(4) хочешь его программно нагенерить?
|
|||
6
Fragster
гуру
05.03.13
✎
14:03
|
(5) наоборот, программно посмотреть методы класса, их параметры, комменты к ним и т.п.
|
|||
7
pumbaEO
05.03.13
✎
14:05
|
||||
8
Fragster
гуру
05.03.13
✎
14:06
|
(7) т.е. ты предлагаешь анализировать текст скрипта из самого скрипта?
|
|||
9
badboychik
05.03.13
✎
14:06
|
нафига тебе это надо
|
|||
10
Fragster
гуру
05.03.13
✎
14:07
|
(9) за тем же, зачем и в php - генерить wsdl для 1ски
|
|||
11
Fragster
гуру
05.03.13
✎
14:07
|
в php все получилось
|
|||
12
badboychik
05.03.13
✎
14:08
|
- результат = [];
- пройтись циклом по объекту: for (var k in obj); либо for (var k in obj) if (obj.hasOwnProperty(k)), если интересуют только родные свойства (первый цикл захватит и свойства из цепи прототипов); - проверять, если typeof obj[k] == 'function', добавлять в массив результатов: результат.push(obj[k]);, либо просто k, если интересуют именно названия; - вернуть результат |
|||
13
Fragster
гуру
05.03.13
✎
14:10
|
(12) да это понятно. вопрос в том, что в комментах (а в пхп - прямо в определении) можно указывать класс параметра, соответственно, рекурсивно его добавлять в WSDL. так-то, конечно, any type везде проставить можно и лепить объекты по жесткой схеме, а не фабрикой...
|
|||
14
Fragster
гуру
05.03.13
✎
14:10
|
а в комментах - повторение там какое-нибудь
|
|||
15
badboychik
05.03.13
✎
14:12
|
в JS аннотации из Java хочешь что ли, изврат какой то по моему. WSDL генерится по коду JS? Как это выглядит?
|
|||
16
Fragster
гуру
05.03.13
✎
14:16
|
(15) у меня сейчас WSDLгенерится по коду php тем же скриптом, который и обрабатывает WS: http://fragster.ru/perfomanceTest/ws.php?wsdl
изнутри кода используется так: $ws = new WS1c('http://fragster.ru/multithread', 'fragster'); $ws->methods[] = new ReflectionFunction('appendTestResult'); $ws->methods[] = new ReflectionFunction('test'); header("Content-Type: text/xml;"); if (isset($_REQUEST['wsdl'])) { echo $ws->getWSDL(); } else { echo $ws->handleRequest(); } при этом все параметры разворачиваются в классы и далее рекурсивно, из комментов некоторое количество инфы берется, например: class SubResult { /** * * @var string */ var $test; /** * @var float */ var $result; /** * Количество потоков * @var decimal */ var $threadCount; /** * ошибки * @minOccurs 0 * @maxOccurs unbounded * @var string */ var $errors; } |
|||
17
Fragster
гуру
05.03.13
✎
14:19
|
просто производительности php не совсем хватает для некоторых задач (общение между потоками через СУБД), на node.js хочу запилить нечто подобное
|
|||
18
badboychik
05.03.13
✎
14:30
|
маньяк )
Ну для ноды выше приводили библиотеку в (7) |
|||
19
Fragster
гуру
05.03.13
✎
14:33
|
(18) зато теперь могу за пару минут наклепать произвольный вебсервис для 1ски и встроить, соответственно, в любой сайт на php, если оно нужно будет.
|
|||
20
pumbaEO
05.03.13
✎
14:33
|
А производительности node разве хватит? Не знаю, что там у тебя за общение между потоками, но redis или мемкэш тебе прийдется использовать, а там главное хватай быстрей, кидай дальше, пока летит отдыхай.
|
|||
21
pumbaEO
05.03.13
✎
14:33
|
+(20) что в node что в php
|
|||
22
badboychik
05.03.13
✎
14:34
|
нода сильно параллельная, пишут что миллионы операций в секунду может выполнять
|
|||
23
Fragster
гуру
05.03.13
✎
14:37
|
(20) мне именно одно адресное пространство нужно, чтобы я из одного потока мог напрямую юзать переменные другого потока. js я немного знаю, в отличии от java, соответственно, хотел заюзать его для этих целей.
|
|||
24
Fragster
гуру
05.03.13
✎
14:37
|
как раз кэширование мне не нужно вообще
|
|||
25
pumbaEO
05.03.13
✎
14:44
|
(24) Имхо тебе очередь нужна.
(22) как только дело коснется записи данных или чтения (не из памяти) , так уже и не миллионы. |
|||
26
Fragster
гуру
05.03.13
✎
14:48
|
(25).1 какая очередь? у меня все потоки должны иметь доступ условно к одной переменной
(25).2 как раз потому от пхп хочу отказаться - чтобы не юзать для межпроцессного взаимодействия СУБД, а заюзать общее адесное пространство сервера на node |
|||
27
Fragster
гуру
05.03.13
✎
14:49
|
есть, конечно, вариант с sqlite с таблицей в памяти
|
|||
28
Fragster
гуру
14.03.13
✎
16:37
|
апну по приколу.
|
|||
29
Fragster
гуру
14.03.13
✎
16:38
|
ну и вопрос до кучи - кто-нибудть уже сделал парсер JSON<=>XDTO?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |