[size=-2]------ Добавлено в 16:22
Чтобы соорудить описание класса пришлось сделать элемент hiClassVar.hws:
func doDefine()
println(code(Type), ' ', '$' + code(Name), ';')
event(onDefine)
end
func doSet(_data)
println('$this->' + code(Name), ' = ', _data, ';')
end
func Value()
return('$this->' + code(Name))
end
[About]
Version=1.0
Author=Nic
Mail=nic@savelovo.net
[Type]
Class=Element
Info=Переменная класса
Tab=PHP
[Property]
Name=Имя определяемой в классе переменной|2|
Type=Тип переменной класса:public - общего доступа, protected - защищённая, private - локального доступа|14|0|public,protected,private
[Methods]
doDefine=Определяет в рамках класса указаное имя переменной|1|
doSet=Устанавливает значение переменной|1|
onDefine=Событие происходит всякий раз после определения переменной в классе|2|
Value=Возвращает значение переменной|3|
Add(EntryPoint,5992085,21,105)
{
link(onStart,9141555:doPrint,[])
}
Add(MultiElementEx,9141555,70,105)
{
CodeType=1
}
BEGIN_SDK
Add(EditMultiEx,10680822,6,6)
{
WorkCount=#7:doPrint|
Width=356
Height=172
link(doPrint,1628728:doPrint,[])
}
Add(Function,1628728,35,35)
{
Name="WFDocument"
Mode=1
link(onPrint,13581855:doEvent,[])
}
Add(Function,445813,175,42)
{
Args=1
Name="setFilename"
link(onPrint,4497108:doData,[])
}
Add(DoData,4497108,238,42)
{
link(onEventData,9813299:doSet,[])
link(Data,445813:Arg1,[(244,37)(220,37)(220,86)(181,86)])
}
Add(ClassVar,9813299,294,35)
{
Name="filename"
Type=2
}
Add(Hub,13581855,84,35)
{
OutCount=3
link(onEvent1,9813299:doDefine,[])
link(onEvent2,445813:doPrint,[])
link(onEvent3,8595123:doPrint,[(149,55)(149,97)])
}
Add(Function,8595123,182,91)
{
Name="getFilename"
link(onPrint,6944616:doData,[])
}
Add(DoData,6944616,245,91)
{
link(onEventData,8595123:doReturn,[(287,97)(287,130)(170,130)(170,104)])
link(Data,9813299:Value,[(251,79)(300,79)])
}
END_SDK
<?php
class WFDocument() {
private $filename;
function setFilename($arg1) {
$this->filename = $arg1;
}
function getFilename() {
return($this->filename);
}
}
?>
[size=-2]------ Добавлено в 23:23
Нужна конструкция:
...
try {
...
} catch (e) {
...
}
...
[size=-2]------ Добавлено в 10:17
Простейший вариант компонента hiTry_catch.hws примерно выглядит так:
func doTry(data):java
fvar(od)
println('try {')
block.inclvl()
od = isndef(OutData) ? "" : _data_
event(onTry, od)
block.declvl()
println('} catch (',code(Exception),') {')
if(linked(onCatch))
block.inclvl()
event(onCatch, od)
block.declvl()
println('}')
end
end
[About]
Version=1.0
Author=Nic
Mail=nic@savelovo.net
[Type]
Class=Element
Info=Конструкция Try - catch
Tab=PHP
[Property]
Exception=Объект функции обработчика исключений|2|
OutData=Данные, выдаваемые в поток событиями onTry и onCatch: InData - выдавать в поток копию данных со входа, NULL - не выдавать в поток никаких данных|4|0|InData,NULL
[Methods]
doTry=Определяет содержимое блока Try|1|
onTry=Событие происходит всякий раз при формировании блока Try|2|
onCatch=Событие происходит всякий раз при формировании блока исключения Catch|2|
...
try {
...
} catch(UserException_1 $e)
...
} catch(UserException_2 $e)
...
}
...