@@ -6,28 +6,28 @@ discard block |
||
| 6 | 6 | { |
| 7 | 7 | public static string $projectPath = ''; |
| 8 | 8 | |
| 9 | - public static function createProject (string $name = 'default'): bool |
|
| 9 | + public static function createProject(string $name = 'default'): bool |
|
| 10 | 10 | { |
| 11 | - if (!is_dir ($dir = 'C:/Users/'. USERNAME .'/Documents/VoidStudio')) |
|
| 12 | - dir_create ($dir); |
|
| 11 | + if (!is_dir($dir = 'C:/Users/'.USERNAME.'/Documents/VoidStudio')) |
|
| 12 | + dir_create($dir); |
|
| 13 | 13 | |
| 14 | - if (is_dir ($dir = $dir .'/'. $name)) |
|
| 14 | + if (is_dir($dir = $dir.'/'.$name)) |
|
| 15 | 15 | { |
| 16 | - if (messageBox ('Проект "'. $name .'" уже создан. Перезаписать его?', 'Подтвердите действие', enum ('System.Windows.Forms.MessageBoxButtons.YesNo'), enum ('System.Windows.Forms.MessageBoxIcon.Question')) == 6) |
|
| 17 | - dir_clean ($dir); |
|
| 16 | + if (messageBox('Проект "'.$name.'" уже создан. Перезаписать его?', 'Подтвердите действие', enum('System.Windows.Forms.MessageBoxButtons.YesNo'), enum('System.Windows.Forms.MessageBoxIcon.Question')) == 6) |
|
| 17 | + dir_clean($dir); |
|
| 18 | 18 | |
| 19 | 19 | else return false; |
| 20 | 20 | } |
| 21 | 21 | |
| 22 | - else dir_create ($dir); |
|
| 22 | + else dir_create($dir); |
|
| 23 | 23 | |
| 24 | 24 | self::$projectPath = $dir; |
| 25 | 25 | |
| 26 | - VoidStudioAPI::getObjects ('main')['MainForm']->caption = $name .' — VoidStudio'; |
|
| 27 | - VoidStudioAPI::getObjects ('modules')['MainForm']->caption = $name .' — модули проекта'; |
|
| 28 | - VoidStudioAPI::getObjects ('main')['ToolsPanel__LogList']->items->add ('Проект "'. $name .'" успешно создан'); |
|
| 26 | + VoidStudioAPI::getObjects('main')['MainForm']->caption = $name.' — VoidStudio'; |
|
| 27 | + VoidStudioAPI::getObjects('modules')['MainForm']->caption = $name.' — модули проекта'; |
|
| 28 | + VoidStudioAPI::getObjects('main')['ToolsPanel__LogList']->items->add('Проект "'.$name.'" успешно создан'); |
|
| 29 | 29 | |
| 30 | - dir_create ($dir .'/modules'); |
|
| 30 | + dir_create($dir.'/modules'); |
|
| 31 | 31 | // copy (__DIR__ .'/../Qero/Qero.phar', $dir .'/Qero.phar'); |
| 32 | 32 | |
| 33 | 33 | // require $dir .'/Qero.phar'; |
@@ -35,7 +35,7 @@ discard block |
||
| 35 | 35 | return true; |
| 36 | 36 | } |
| 37 | 37 | |
| 38 | - public static function saveProject (string $file): void |
|
| 38 | + public static function saveProject(string $file): void |
|
| 39 | 39 | { |
| 40 | 40 | $info = [ |
| 41 | 41 | 'forms' => [], |
@@ -43,105 +43,105 @@ discard block |
||
| 43 | 43 | 'objects' => [] |
| 44 | 44 | ]; |
| 45 | 45 | |
| 46 | - foreach (VoidStudioAPI::getObjects ('main')['Designer__FormsList']->items->names as $item) |
|
| 46 | + foreach (VoidStudioAPI::getObjects('main')['Designer__FormsList']->items->names as $item) |
|
| 47 | 47 | { |
| 48 | - $designer = VoidStudioAPI::getObjects ('main')['Designer__'. $item .'Designer']; |
|
| 48 | + $designer = VoidStudioAPI::getObjects('main')['Designer__'.$item.'Designer']; |
|
| 49 | 49 | |
| 50 | - $info['forms'][$item] = (string) VoidStudioBuilder::appendDesignerData ($designer->getSharpCode ($item, true), $designer); |
|
| 51 | - $info['objects'][$item] = array_keys ($designer->objects); |
|
| 50 | + $info['forms'][$item] = (string) VoidStudioBuilder::appendDesignerData($designer->getSharpCode($item, true), $designer); |
|
| 51 | + $info['objects'][$item] = array_keys($designer->objects); |
|
| 52 | 52 | |
| 53 | 53 | foreach ($designer->objects as $name => $objectType) |
| 54 | - if (isset (Components::$events[$designer->getComponentByName ($name)]) && sizeof (Components::$events[$designer->getComponentByName ($name)]) > 0) |
|
| 55 | - $info['events'][$item][$name] = Components::$events[$designer->getComponentByName ($name)]; |
|
| 54 | + if (isset (Components::$events[$designer->getComponentByName($name)]) && sizeof(Components::$events[$designer->getComponentByName($name)]) > 0) |
|
| 55 | + $info['events'][$item][$name] = Components::$events[$designer->getComponentByName($name)]; |
|
| 56 | 56 | } |
| 57 | 57 | |
| 58 | - file_put_contents ($file, gzdeflate (serialize ($info), 9)); |
|
| 58 | + file_put_contents($file, gzdeflate(serialize($info), 9)); |
|
| 59 | 59 | |
| 60 | - if (replaceSl (self::$projectPath) != replaceSl (dirname ($file))) |
|
| 61 | - dir_copy (self::$projectPath .'/modules', dirname ($file) .'/modules'); |
|
| 60 | + if (replaceSl(self::$projectPath) != replaceSl(dirname($file))) |
|
| 61 | + dir_copy(self::$projectPath.'/modules', dirname($file).'/modules'); |
|
| 62 | 62 | |
| 63 | - VoidStudioAPI::getObjects ('main')['ToolsPanel__LogList']->items->add ('Проект успешно сохранён'); |
|
| 63 | + VoidStudioAPI::getObjects('main')['ToolsPanel__LogList']->items->add('Проект успешно сохранён'); |
|
| 64 | 64 | } |
| 65 | 65 | |
| 66 | - public static function openProject (string $file): void |
|
| 66 | + public static function openProject(string $file): void |
|
| 67 | 67 | { |
| 68 | - messageBox ('В настоящий момент пересматривается алгоритм открытия проектов, поэтому возможны многочисленные баги (в т.ч. невозможность компиляции открытого проекта)'. "\n\nБудет исправлено в ближайшее время\nС уважением, разработчики проекта WinForms PHP", 'Предупреждение об ошибках', enum ('System.Windows.Forms.MessageBoxButtons.OK'), enum ('System.Windows.Forms.MessageBoxIcon.Warning')); |
|
| 68 | + messageBox('В настоящий момент пересматривается алгоритм открытия проектов, поэтому возможны многочисленные баги (в т.ч. невозможность компиляции открытого проекта)'."\n\nБудет исправлено в ближайшее время\nС уважением, разработчики проекта WinForms PHP", 'Предупреждение об ошибках', enum('System.Windows.Forms.MessageBoxButtons.OK'), enum('System.Windows.Forms.MessageBoxIcon.Warning')); |
|
| 69 | 69 | |
| 70 | - self::$projectPath = dirname ($file); |
|
| 70 | + self::$projectPath = dirname($file); |
|
| 71 | 71 | |
| 72 | - $info = unserialize (gzinflate (file_get_contents ($file))); |
|
| 73 | - $objects = VoidStudioAPI::getObjects ('main'); |
|
| 72 | + $info = unserialize(gzinflate(file_get_contents($file))); |
|
| 73 | + $objects = VoidStudioAPI::getObjects('main'); |
|
| 74 | 74 | |
| 75 | 75 | $objects['PropertiesList__List']->selectedObject = null; |
| 76 | - $objects['Designer__FormsList']->items->foreach (function ($value) |
|
| 76 | + $objects['Designer__FormsList']->items->foreach(function($value) |
|
| 77 | 77 | { |
| 78 | 78 | try |
| 79 | 79 | { |
| 80 | - $designer = VoidStudioAPI::$objects['main']['Designer__'. $value->text .'Designer']; |
|
| 80 | + $designer = VoidStudioAPI::$objects['main']['Designer__'.$value->text.'Designer']; |
|
| 81 | 81 | |
| 82 | - $designer->form->dispose (); |
|
| 83 | - $designer->control->dispose (); |
|
| 82 | + $designer->form->dispose(); |
|
| 83 | + $designer->control->dispose(); |
|
| 84 | 84 | |
| 85 | - unset ($designer, VoidStudioAPI::$objects['main']['Designer__'. $value->text .'Designer']); |
|
| 85 | + unset ($designer, VoidStudioAPI::$objects['main']['Designer__'.$value->text.'Designer']); |
|
| 86 | 86 | } |
| 87 | 87 | |
| 88 | 88 | catch (\Throwable $e) {} |
| 89 | 89 | }); |
| 90 | 90 | |
| 91 | - $objects['Designer__FormsList']->items->clear (); |
|
| 91 | + $objects['Designer__FormsList']->items->clear(); |
|
| 92 | 92 | |
| 93 | 93 | foreach ($info['forms'] as $formName => $form) |
| 94 | 94 | { |
| 95 | - $sourceForm = (new WFClass ('WinForms_PHP.WFCompiler', ''))->evalCS ("using System;\nusing System.Windows.Forms;\nusing System.Reflection;\nusing System.Linq;\nusing System.ComponentModel;\n\npublic class CodeEvaler\n{\n\tpublic object EvalCode ()\n\t{\n\t\tForm form = new $formName ();\n\n\t\tVoidControlsParser.parseControlsForOpening (\"$formName\", (Control) form);\n\n\t\treturn form;\n\t}\n}\n\n". file_get_contents (APP_DIR .'/system/presets/compile_parser_preset.cs') ."\n\n". (string)($form), true); |
|
| 95 | + $sourceForm = (new WFClass('WinForms_PHP.WFCompiler', ''))->evalCS("using System;\nusing System.Windows.Forms;\nusing System.Reflection;\nusing System.Linq;\nusing System.ComponentModel;\n\npublic class CodeEvaler\n{\n\tpublic object EvalCode ()\n\t{\n\t\tForm form = new $formName ();\n\n\t\tVoidControlsParser.parseControlsForOpening (\"$formName\", (Control) form);\n\n\t\treturn form;\n\t}\n}\n\n".file_get_contents(APP_DIR.'/system/presets/compile_parser_preset.cs')."\n\n".(string) ($form), true); |
|
| 96 | 96 | |
| 97 | 97 | $form = $GLOBALS['__underConstruction'][$formName]; |
| 98 | 98 | unset ($GLOBALS['__underConstruction'], $form[$formName]); |
| 99 | 99 | |
| 100 | - $formObjects = array_flip ($info['objects'][$formName]); |
|
| 100 | + $formObjects = array_flip($info['objects'][$formName]); |
|
| 101 | 101 | |
| 102 | 102 | foreach ($form as $name => $selector) |
| 103 | 103 | if (!isset ($formObjects[$name])) |
| 104 | 104 | unset ($form[$name]); |
| 105 | 105 | |
| 106 | - $page = new TabPage ($formName); |
|
| 106 | + $page = new TabPage($formName); |
|
| 107 | 107 | $page->backgroundColor = clWhite; |
| 108 | 108 | |
| 109 | - $designer = new VoidDesigner ($page, $formName, $objects['PropertiesList__List'], $objects['EventsList__ActiveEvents'], $objects['PropertiesPanel__SelectedComponent'], $objects['Designer__FormsList'], $sourceForm); |
|
| 110 | - $designer->initDesigner (); |
|
| 109 | + $designer = new VoidDesigner($page, $formName, $objects['PropertiesList__List'], $objects['EventsList__ActiveEvents'], $objects['PropertiesPanel__SelectedComponent'], $objects['Designer__FormsList'], $sourceForm); |
|
| 110 | + $designer->initDesigner(); |
|
| 111 | 111 | |
| 112 | 112 | foreach ($form as $name => $selector) |
| 113 | 113 | { |
| 114 | - $designer->addComponent ($selector, $name); |
|
| 114 | + $designer->addComponent($selector, $name); |
|
| 115 | 115 | |
| 116 | 116 | if (isset ($info['events'][$formName][$name])) |
| 117 | 117 | foreach ($info['events'][$formName][$name] as $eventName => $event) |
| 118 | 118 | { |
| 119 | - Events::reserveObjectEvent ($selector, $eventName); |
|
| 120 | - VoidEngine::setObjectEvent ($selector, $eventName, $event); |
|
| 119 | + Events::reserveObjectEvent($selector, $eventName); |
|
| 120 | + VoidEngine::setObjectEvent($selector, $eventName, $event); |
|
| 121 | 121 | } |
| 122 | 122 | } |
| 123 | 123 | |
| 124 | 124 | if (isset ($info['events'][$formName][$formName])) |
| 125 | 125 | foreach ($info['events'][$formName][$formName] as $eventName => $event) |
| 126 | 126 | { |
| 127 | - Events::reserveObjectEvent ($designer->form->selector, $eventName); |
|
| 128 | - VoidEngine::setObjectEvent ($designer->form->selector, $eventName, $event); |
|
| 127 | + Events::reserveObjectEvent($designer->form->selector, $eventName); |
|
| 128 | + VoidEngine::setObjectEvent($designer->form->selector, $eventName, $event); |
|
| 129 | 129 | } |
| 130 | 130 | |
| 131 | - $objects['Designer__FormsList']->items->add ($page); |
|
| 131 | + $objects['Designer__FormsList']->items->add($page); |
|
| 132 | 132 | } |
| 133 | 133 | |
| 134 | 134 | // Components::cleanJunk (); |
| 135 | 135 | |
| 136 | 136 | $objects['Designer__FormsList']->selectedTab = $page; |
| 137 | 137 | |
| 138 | - $objects['PropertiesPanel__SelectedComponent']->items->clear (); |
|
| 139 | - $objects['PropertiesPanel__SelectedComponent']->items->addRange (array_keys ($designer->objects)); |
|
| 138 | + $objects['PropertiesPanel__SelectedComponent']->items->clear(); |
|
| 139 | + $objects['PropertiesPanel__SelectedComponent']->items->addRange(array_keys($designer->objects)); |
|
| 140 | 140 | $objects['PropertiesPanel__SelectedComponent']->selectedItem = $formName; |
| 141 | 141 | |
| 142 | - VoidStudioAPI::getObjects ('main')['MainForm']->caption = basenameNoExt ($file) .' — VoidStudio'; |
|
| 142 | + VoidStudioAPI::getObjects('main')['MainForm']->caption = basenameNoExt($file).' — VoidStudio'; |
|
| 143 | 143 | |
| 144 | 144 | $objects['PropertiesList__List']->selectedObject = $designer->form; |
| 145 | - $designer->focus (); |
|
| 145 | + $designer->focus(); |
|
| 146 | 146 | } |
| 147 | 147 | } |
@@ -8,19 +8,21 @@ discard block |
||
| 8 | 8 | |
| 9 | 9 | public static function createProject (string $name = 'default'): bool |
| 10 | 10 | { |
| 11 | - if (!is_dir ($dir = 'C:/Users/'. USERNAME .'/Documents/VoidStudio')) |
|
| 12 | - dir_create ($dir); |
|
| 11 | + if (!is_dir ($dir = 'C:/Users/'. USERNAME .'/Documents/VoidStudio')) { |
|
| 12 | + dir_create ($dir); |
|
| 13 | + } |
|
| 13 | 14 | |
| 14 | 15 | if (is_dir ($dir = $dir .'/'. $name)) |
| 15 | 16 | { |
| 16 | - if (messageBox ('Проект "'. $name .'" уже создан. Перезаписать его?', 'Подтвердите действие', enum ('System.Windows.Forms.MessageBoxButtons.YesNo'), enum ('System.Windows.Forms.MessageBoxIcon.Question')) == 6) |
|
| 17 | - dir_clean ($dir); |
|
| 18 | - |
|
| 19 | - else return false; |
|
| 17 | + if (messageBox ('Проект "'. $name .'" уже создан. Перезаписать его?', 'Подтвердите действие', enum ('System.Windows.Forms.MessageBoxButtons.YesNo'), enum ('System.Windows.Forms.MessageBoxIcon.Question')) == 6) { |
|
| 18 | + dir_clean ($dir); |
|
| 19 | + } else { |
|
| 20 | + return false; |
|
| 21 | + } |
|
| 22 | + } else { |
|
| 23 | + dir_create ($dir); |
|
| 20 | 24 | } |
| 21 | 25 | |
| 22 | - else dir_create ($dir); |
|
| 23 | - |
|
| 24 | 26 | self::$projectPath = $dir; |
| 25 | 27 | |
| 26 | 28 | VoidStudioAPI::getObjects ('main')['MainForm']->caption = $name .' — VoidStudio'; |
@@ -50,15 +52,17 @@ discard block |
||
| 50 | 52 | $info['forms'][$item] = (string) VoidStudioBuilder::appendDesignerData ($designer->getSharpCode ($item, true), $designer); |
| 51 | 53 | $info['objects'][$item] = array_keys ($designer->objects); |
| 52 | 54 | |
| 53 | - foreach ($designer->objects as $name => $objectType) |
|
| 54 | - if (isset (Components::$events[$designer->getComponentByName ($name)]) && sizeof (Components::$events[$designer->getComponentByName ($name)]) > 0) |
|
| 55 | + foreach ($designer->objects as $name => $objectType) { |
|
| 56 | + if (isset (Components::$events[$designer->getComponentByName ($name)]) && sizeof (Components::$events[$designer->getComponentByName ($name)]) > 0) |
|
| 55 | 57 | $info['events'][$item][$name] = Components::$events[$designer->getComponentByName ($name)]; |
| 58 | + } |
|
| 56 | 59 | } |
| 57 | 60 | |
| 58 | 61 | file_put_contents ($file, gzdeflate (serialize ($info), 9)); |
| 59 | 62 | |
| 60 | - if (replaceSl (self::$projectPath) != replaceSl (dirname ($file))) |
|
| 61 | - dir_copy (self::$projectPath .'/modules', dirname ($file) .'/modules'); |
|
| 63 | + if (replaceSl (self::$projectPath) != replaceSl (dirname ($file))) { |
|
| 64 | + dir_copy (self::$projectPath .'/modules', dirname ($file) .'/modules'); |
|
| 65 | + } |
|
| 62 | 66 | |
| 63 | 67 | VoidStudioAPI::getObjects ('main')['ToolsPanel__LogList']->items->add ('Проект успешно сохранён'); |
| 64 | 68 | } |
@@ -83,9 +87,7 @@ discard block |
||
| 83 | 87 | $designer->control->dispose (); |
| 84 | 88 | |
| 85 | 89 | unset ($designer, VoidStudioAPI::$objects['main']['Designer__'. $value->text .'Designer']); |
| 86 | - } |
|
| 87 | - |
|
| 88 | - catch (\Throwable $e) {} |
|
| 90 | + } catch (\Throwable $e) {} |
|
| 89 | 91 | }); |
| 90 | 92 | |
| 91 | 93 | $objects['Designer__FormsList']->items->clear (); |
@@ -99,9 +101,10 @@ discard block |
||
| 99 | 101 | |
| 100 | 102 | $formObjects = array_flip ($info['objects'][$formName]); |
| 101 | 103 | |
| 102 | - foreach ($form as $name => $selector) |
|
| 103 | - if (!isset ($formObjects[$name])) |
|
| 104 | + foreach ($form as $name => $selector) { |
|
| 105 | + if (!isset ($formObjects[$name])) |
|
| 104 | 106 | unset ($form[$name]); |
| 107 | + } |
|
| 105 | 108 | |
| 106 | 109 | $page = new TabPage ($formName); |
| 107 | 110 | $page->backgroundColor = clWhite; |
@@ -113,18 +116,20 @@ discard block |
||
| 113 | 116 | { |
| 114 | 117 | $designer->addComponent ($selector, $name); |
| 115 | 118 | |
| 116 | - if (isset ($info['events'][$formName][$name])) |
|
| 117 | - foreach ($info['events'][$formName][$name] as $eventName => $event) |
|
| 119 | + if (isset ($info['events'][$formName][$name])) { |
|
| 120 | + foreach ($info['events'][$formName][$name] as $eventName => $event) |
|
| 118 | 121 | { |
| 119 | 122 | Events::reserveObjectEvent ($selector, $eventName); |
| 123 | + } |
|
| 120 | 124 | VoidEngine::setObjectEvent ($selector, $eventName, $event); |
| 121 | 125 | } |
| 122 | 126 | } |
| 123 | 127 | |
| 124 | - if (isset ($info['events'][$formName][$formName])) |
|
| 125 | - foreach ($info['events'][$formName][$formName] as $eventName => $event) |
|
| 128 | + if (isset ($info['events'][$formName][$formName])) { |
|
| 129 | + foreach ($info['events'][$formName][$formName] as $eventName => $event) |
|
| 126 | 130 | { |
| 127 | 131 | Events::reserveObjectEvent ($designer->form->selector, $eventName); |
| 132 | + } |
|
| 128 | 133 | VoidEngine::setObjectEvent ($designer->form->selector, $eventName, $event); |
| 129 | 134 | } |
| 130 | 135 | |
@@ -6,128 +6,127 @@ |
||
| 6 | 6 | |
| 7 | 7 | class VoidStudioBuilder |
| 8 | 8 | { |
| 9 | - public static function compileProject (string $save, string $enteringPoint, array $references, array $settings = [], bool $printSuccessCompile = false, bool $debug = false): array |
|
| 9 | + public static function compileProject(string $save, string $enteringPoint, array $references, array $settings = [], bool $printSuccessCompile = false, bool $debug = false): array |
|
| 10 | 10 | { |
| 11 | - $savePath = dirname ($save) .'/'. basenameNoExt ($save); |
|
| 12 | - $globalCode = file_get_contents (APP_DIR .'/system/presets/compile_parser_preset.cs') ."\n\n"; |
|
| 11 | + $savePath = dirname($save).'/'.basenameNoExt($save); |
|
| 12 | + $globalCode = file_get_contents(APP_DIR.'/system/presets/compile_parser_preset.cs')."\n\n"; |
|
| 13 | 13 | $eventsCode = ''; |
| 14 | 14 | $forms = []; |
| 15 | 15 | |
| 16 | 16 | for ($i = 0; $i < 5; ++$i) |
| 17 | - if (!isset ($settings[$i]) || !strlen (trim ($settings[$i]))) |
|
| 17 | + if (!isset ($settings[$i]) || !strlen(trim($settings[$i]))) |
|
| 18 | 18 | $settings[$i] = null; |
| 19 | 19 | |
| 20 | - $settings = array_slice ($settings, 0, 5); |
|
| 20 | + $settings = array_slice($settings, 0, 5); |
|
| 21 | 21 | |
| 22 | - foreach (VoidStudioAPI::getObjects ('main')['Designer__FormsList']->items->names as $id => $item) |
|
| 22 | + foreach (VoidStudioAPI::getObjects('main')['Designer__FormsList']->items->names as $id => $item) |
|
| 23 | 23 | { |
| 24 | - $designer = VoidStudioAPI::getObjects ('main')['Designer__'. $item .'Designer']; |
|
| 25 | - $globalCode .= self::appendDesignerData ($designer->getSharpCode ($item), $designer); |
|
| 24 | + $designer = VoidStudioAPI::getObjects('main')['Designer__'.$item.'Designer']; |
|
| 25 | + $globalCode .= self::appendDesignerData($designer->getSharpCode($item), $designer); |
|
| 26 | 26 | |
| 27 | 27 | $forms[] = $item; |
| 28 | 28 | |
| 29 | 29 | foreach ($designer->objects as $name => $objectType) |
| 30 | - if (isset (VoidStudioAPI::$events[$designer->getComponentByName ($name)]) && sizeof ($events = VoidStudioAPI::$events[$designer->getComponentByName ($name)]) > 0) |
|
| 30 | + if (isset (VoidStudioAPI::$events[$designer->getComponentByName($name)]) && sizeof($events = VoidStudioAPI::$events[$designer->getComponentByName($name)]) > 0) |
|
| 31 | 31 | foreach ($events as $eventName => $event) |
| 32 | - $eventsCode .= 'Events::setObjectEvent ($GLOBALS[\'__underConstruction\'][\''. $item .'\'][\''. $name .'\'], \''. $eventName .'\', function ($self, ...$args) { '. $event .' });'. "\n\t"; |
|
| 32 | + $eventsCode .= 'Events::setObjectEvent ($GLOBALS[\'__underConstruction\'][\''.$item.'\'][\''.$name.'\'], \''.$eventName.'\', function ($self, ...$args) { '.$event.' });'."\n\t"; |
|
| 33 | 33 | } |
| 34 | 34 | |
| 35 | - dir_clean ($savePath); |
|
| 36 | - dir_copy (CORE_DIR, $savePath); |
|
| 35 | + dir_clean($savePath); |
|
| 36 | + dir_copy(CORE_DIR, $savePath); |
|
| 37 | 37 | |
| 38 | - unlink ($savePath .'/script.php'); |
|
| 39 | - unlink ($savePath .'/VoidCore.exe'); |
|
| 38 | + unlink($savePath.'/script.php'); |
|
| 39 | + unlink($savePath.'/VoidCore.exe'); |
|
| 40 | 40 | |
| 41 | - $errors = VoidEngine::compile ($savePath .'/'. basename ($save), APP_DIR .'/system/icons/Icon.ico', str_replace_assoc (file_get_contents (APP_DIR .'/system/presets/compile_main_preset.php'), [ |
|
| 42 | - '%VoidEngine%' => VoidStudioBuilder::generateCode ($references), |
|
| 41 | + $errors = VoidEngine::compile($savePath.'/'.basename($save), APP_DIR.'/system/icons/Icon.ico', str_replace_assoc(file_get_contents(APP_DIR.'/system/presets/compile_main_preset.php'), [ |
|
| 42 | + '%VoidEngine%' => VoidStudioBuilder::generateCode($references), |
|
| 43 | 43 | |
| 44 | - '%modules%' => (file_exists ($modulesFile = VoidStudioProjectManager::$projectPath .'/modules/Qero.json') && sizeof ($modules = json_decode (file_get_contents ($modulesFile))) ? "require 'qero-packages/autoload.php';\n\n" : "\n\n") . implode ("\n", array_map (function ($module) |
|
| 44 | + '%modules%' => (file_exists($modulesFile = VoidStudioProjectManager::$projectPath.'/modules/Qero.json') && sizeof($modules = json_decode(file_get_contents($modulesFile))) ? "require 'qero-packages/autoload.php';\n\n" : "\n\n").implode("\n", array_map(function($module) |
|
| 45 | 45 | { |
| 46 | - $module = trim (file_get_contents ($module)); |
|
| 46 | + $module = trim(file_get_contents($module)); |
|
| 47 | 47 | |
| 48 | - if (substr ($module, 0, 2) == '<?') |
|
| 49 | - $module = substr ($module, 2); |
|
| 48 | + if (substr($module, 0, 2) == '<?') |
|
| 49 | + $module = substr($module, 2); |
|
| 50 | 50 | |
| 51 | - if (substr ($module, 0, 3) == 'php') |
|
| 52 | - $module = substr ($module, 3); |
|
| 51 | + if (substr($module, 0, 3) == 'php') |
|
| 52 | + $module = substr($module, 3); |
|
| 53 | 53 | |
| 54 | - if (substr ($module, -2) == '?>') |
|
| 55 | - $module = substr ($module, 0, -2); |
|
| 54 | + if (substr($module, -2) == '?>') |
|
| 55 | + $module = substr($module, 0, -2); |
|
| 56 | 56 | |
| 57 | 57 | return "\$module = <<<'__MODULE'\n\n$module\n\n__MODULE;\n\neval (\$module);"; |
| 58 | - }, array_merge (glob (VoidStudioProjectManager::$projectPath .'/modules/*.php'), $debug ? [APP_DIR .'/system/debug/DebugHook.php'] : []))), |
|
| 58 | + }, array_merge(glob(VoidStudioProjectManager::$projectPath.'/modules/*.php'), $debug ? [APP_DIR.'/system/debug/DebugHook.php'] : []))), |
|
| 59 | 59 | |
| 60 | 60 | '%events%' => $eventsCode, |
| 61 | 61 | '%entering_point%' => $enteringPoint, |
| 62 | - '%author_id%' => sha1 (shell_exec ('wmic csproduct')) |
|
| 63 | - ]), $settings[0], $settings[1], $settings[2], $settings[3], $settings[4], str_replace_assoc (file_get_contents (APP_DIR .'/system/presets/compile_main_preset.cs'), [ |
|
| 64 | - '%forms%' => join ('", "', $forms) |
|
| 62 | + '%author_id%' => sha1(shell_exec('wmic csproduct')) |
|
| 63 | + ]), $settings[0], $settings[1], $settings[2], $settings[3], $settings[4], str_replace_assoc(file_get_contents(APP_DIR.'/system/presets/compile_main_preset.cs'), [ |
|
| 64 | + '%forms%' => join('", "', $forms) |
|
| 65 | 65 | ]), $globalCode); |
| 66 | 66 | |
| 67 | - if (isset ($modules) && sizeof ($modules) > 0) |
|
| 67 | + if (isset ($modules) && sizeof($modules) > 0) |
|
| 68 | 68 | { |
| 69 | - dir_delete (APP_DIR .'/Qero/qero-packages'); |
|
| 69 | + dir_delete(APP_DIR.'/Qero/qero-packages'); |
|
| 70 | 70 | |
| 71 | 71 | $manager = new \Qero\PackagesManager\PackagesManager; |
| 72 | 72 | |
| 73 | 73 | foreach ($modules as $package) |
| 74 | - $manager->installPackage ($package); |
|
| 74 | + $manager->installPackage($package); |
|
| 75 | 75 | |
| 76 | - dir_copy (APP_DIR .'/Qero/qero-packages', $savePath .'/qero-packages'); |
|
| 77 | - dir_delete (APP_DIR .'/Qero/qero-packages'); |
|
| 76 | + dir_copy(APP_DIR.'/Qero/qero-packages', $savePath.'/qero-packages'); |
|
| 77 | + dir_delete(APP_DIR.'/Qero/qero-packages'); |
|
| 78 | 78 | } |
| 79 | 79 | |
| 80 | 80 | // pre ($errors); |
| 81 | 81 | // pre ($globalCode->toString ()); |
| 82 | 82 | |
| 83 | - $log = VoidStudioAPI::getObjects ('main')['ToolsPanel__LogList']; |
|
| 84 | - $log->items->add ('Проект скомпилирован по пути "'. $save .'". '. (($errorsCount = sizeof ($errors)) > 0 ? ('Обнаружено '. $errorsCount .' ошибок') : 'Ошибок не обнаружено')); |
|
| 83 | + $log = VoidStudioAPI::getObjects('main')['ToolsPanel__LogList']; |
|
| 84 | + $log->items->add('Проект скомпилирован по пути "'.$save.'". '.(($errorsCount = sizeof($errors)) > 0 ? ('Обнаружено '.$errorsCount.' ошибок') : 'Ошибок не обнаружено')); |
|
| 85 | 85 | |
| 86 | 86 | if ($errorsCount > 0) |
| 87 | 87 | { |
| 88 | - $log->items->addRange (array_map (function ($error) |
|
| 88 | + $log->items->addRange(array_map(function($error) |
|
| 89 | 89 | { |
| 90 | - return "\t". $error; |
|
| 90 | + return "\t".$error; |
|
| 91 | 91 | }, $errors)); |
| 92 | 92 | |
| 93 | - messageBox ('Обнаружено '. $errorsCount .' ошибок', 'Ошибка компиляции', enum ('System.Windows.Forms.MessageBoxButtons.OK'), enum ('System.Windows.Forms.MessageBoxIcon.Error')); |
|
| 93 | + messageBox('Обнаружено '.$errorsCount.' ошибок', 'Ошибка компиляции', enum('System.Windows.Forms.MessageBoxButtons.OK'), enum('System.Windows.Forms.MessageBoxIcon.Error')); |
|
| 94 | 94 | } |
| 95 | 95 | |
| 96 | 96 | elseif ($printSuccessCompile) |
| 97 | - messageBox ('Проект успешно скомпилирован', 'Успешная компиляция', enum ('System.Windows.Forms.MessageBoxButtons.OK'), enum ('System.Windows.Forms.MessageBoxIcon.Information')); |
|
| 97 | + messageBox('Проект успешно скомпилирован', 'Успешная компиляция', enum('System.Windows.Forms.MessageBoxButtons.OK'), enum('System.Windows.Forms.MessageBoxIcon.Information')); |
|
| 98 | 98 | |
| 99 | 99 | return $errors; |
| 100 | 100 | } |
| 101 | 101 | |
| 102 | - public static function appendDesignerData (string $code, VoidDesigner $designer): string |
|
| 102 | + public static function appendDesignerData(string $code, VoidDesigner $designer): string |
|
| 103 | 103 | { |
| 104 | 104 | $offset = 0; |
| 105 | 105 | |
| 106 | - while (($pos = strpos ($code, ')(resources.GetObject("', $offset)) !== false) |
|
| 106 | + while (($pos = strpos($code, ')(resources.GetObject("', $offset)) !== false) |
|
| 107 | 107 | { |
| 108 | 108 | $offset = $pos + 23; |
| 109 | - $property = explode ('.', substr ($code, $offset, ($end = strpos ($code, '")));', $offset)) - $offset)); |
|
| 109 | + $property = explode('.', substr($code, $offset, ($end = strpos($code, '")));', $offset)) - $offset)); |
|
| 110 | 110 | |
| 111 | 111 | $object = $property[0] == '$this' ? |
| 112 | - $designer->form->selector : |
|
| 113 | - $designer->getComponentByName ($property[0]); |
|
| 112 | + $designer->form->selector : $designer->getComponentByName($property[0]); |
|
| 114 | 113 | |
| 115 | - foreach (array_slice ($property, 1) as $path) |
|
| 116 | - $object = VoidEngine::getProperty ($object, $path); |
|
| 114 | + foreach (array_slice($property, 1) as $path) |
|
| 115 | + $object = VoidEngine::getProperty($object, $path); |
|
| 117 | 116 | |
| 118 | - $code = str_replace (substr ($code, $pos + 2, $end - $pos), 'WinForms_PHP.ZendProgram.getResource ("'. VoidEngine::exportObject ($object) .'")', $code); |
|
| 117 | + $code = str_replace(substr($code, $pos + 2, $end - $pos), 'WinForms_PHP.ZendProgram.getResource ("'.VoidEngine::exportObject($object).'")', $code); |
|
| 119 | 118 | } |
| 120 | 119 | |
| 121 | 120 | return $code; |
| 122 | 121 | } |
| 123 | 122 | |
| 124 | - public static function generateCode (array $references, bool $removeNamespaces = true): string |
|
| 123 | + public static function generateCode(array $references, bool $removeNamespaces = true): string |
|
| 125 | 124 | { |
| 126 | - return Builder::generateCode ($references, $removeNamespaces); |
|
| 125 | + return Builder::generateCode($references, $removeNamespaces); |
|
| 127 | 126 | } |
| 128 | 127 | |
| 129 | - public static function getReferences (string $file, bool $parseExtensions = true): array |
|
| 128 | + public static function getReferences(string $file, bool $parseExtensions = true): array |
|
| 130 | 129 | { |
| 131 | - return Builder::getReferences ($file, $parseExtensions); |
|
| 130 | + return Builder::getReferences($file, $parseExtensions); |
|
| 132 | 131 | } |
| 133 | 132 | } |
@@ -13,9 +13,10 @@ discard block |
||
| 13 | 13 | $eventsCode = ''; |
| 14 | 14 | $forms = []; |
| 15 | 15 | |
| 16 | - for ($i = 0; $i < 5; ++$i) |
|
| 17 | - if (!isset ($settings[$i]) || !strlen (trim ($settings[$i]))) |
|
| 16 | + for ($i = 0; $i < 5; ++$i) { |
|
| 17 | + if (!isset ($settings[$i]) || !strlen (trim ($settings[$i]))) |
|
| 18 | 18 | $settings[$i] = null; |
| 19 | + } |
|
| 19 | 20 | |
| 20 | 21 | $settings = array_slice ($settings, 0, 5); |
| 21 | 22 | |
@@ -26,10 +27,11 @@ discard block |
||
| 26 | 27 | |
| 27 | 28 | $forms[] = $item; |
| 28 | 29 | |
| 29 | - foreach ($designer->objects as $name => $objectType) |
|
| 30 | - if (isset (VoidStudioAPI::$events[$designer->getComponentByName ($name)]) && sizeof ($events = VoidStudioAPI::$events[$designer->getComponentByName ($name)]) > 0) |
|
| 30 | + foreach ($designer->objects as $name => $objectType) { |
|
| 31 | + if (isset (VoidStudioAPI::$events[$designer->getComponentByName ($name)]) && sizeof ($events = VoidStudioAPI::$events[$designer->getComponentByName ($name)]) > 0) |
|
| 31 | 32 | foreach ($events as $eventName => $event) |
| 32 | 33 | $eventsCode .= 'Events::setObjectEvent ($GLOBALS[\'__underConstruction\'][\''. $item .'\'][\''. $name .'\'], \''. $eventName .'\', function ($self, ...$args) { '. $event .' });'. "\n\t"; |
| 34 | + } |
|
| 33 | 35 | } |
| 34 | 36 | |
| 35 | 37 | dir_clean ($savePath); |
@@ -45,14 +47,17 @@ discard block |
||
| 45 | 47 | { |
| 46 | 48 | $module = trim (file_get_contents ($module)); |
| 47 | 49 | |
| 48 | - if (substr ($module, 0, 2) == '<?') |
|
| 49 | - $module = substr ($module, 2); |
|
| 50 | + if (substr ($module, 0, 2) == '<?') { |
|
| 51 | + $module = substr ($module, 2); |
|
| 52 | + } |
|
| 50 | 53 | |
| 51 | - if (substr ($module, 0, 3) == 'php') |
|
| 52 | - $module = substr ($module, 3); |
|
| 54 | + if (substr ($module, 0, 3) == 'php') { |
|
| 55 | + $module = substr ($module, 3); |
|
| 56 | + } |
|
| 53 | 57 | |
| 54 | - if (substr ($module, -2) == '?>') |
|
| 55 | - $module = substr ($module, 0, -2); |
|
| 58 | + if (substr ($module, -2) == '?>') { |
|
| 59 | + $module = substr ($module, 0, -2); |
|
| 60 | + } |
|
| 56 | 61 | |
| 57 | 62 | return "\$module = <<<'__MODULE'\n\n$module\n\n__MODULE;\n\neval (\$module);"; |
| 58 | 63 | }, array_merge (glob (VoidStudioProjectManager::$projectPath .'/modules/*.php'), $debug ? [APP_DIR .'/system/debug/DebugHook.php'] : []))), |
@@ -70,8 +75,9 @@ discard block |
||
| 70 | 75 | |
| 71 | 76 | $manager = new \Qero\PackagesManager\PackagesManager; |
| 72 | 77 | |
| 73 | - foreach ($modules as $package) |
|
| 74 | - $manager->installPackage ($package); |
|
| 78 | + foreach ($modules as $package) { |
|
| 79 | + $manager->installPackage ($package); |
|
| 80 | + } |
|
| 75 | 81 | |
| 76 | 82 | dir_copy (APP_DIR .'/Qero/qero-packages', $savePath .'/qero-packages'); |
| 77 | 83 | dir_delete (APP_DIR .'/Qero/qero-packages'); |
@@ -91,11 +97,10 @@ discard block |
||
| 91 | 97 | }, $errors)); |
| 92 | 98 | |
| 93 | 99 | messageBox ('Обнаружено '. $errorsCount .' ошибок', 'Ошибка компиляции', enum ('System.Windows.Forms.MessageBoxButtons.OK'), enum ('System.Windows.Forms.MessageBoxIcon.Error')); |
| 100 | + } elseif ($printSuccessCompile) { |
|
| 101 | + messageBox ('Проект успешно скомпилирован', 'Успешная компиляция', enum ('System.Windows.Forms.MessageBoxButtons.OK'), enum ('System.Windows.Forms.MessageBoxIcon.Information')); |
|
| 94 | 102 | } |
| 95 | 103 | |
| 96 | - elseif ($printSuccessCompile) |
|
| 97 | - messageBox ('Проект успешно скомпилирован', 'Успешная компиляция', enum ('System.Windows.Forms.MessageBoxButtons.OK'), enum ('System.Windows.Forms.MessageBoxIcon.Information')); |
|
| 98 | - |
|
| 99 | 104 | return $errors; |
| 100 | 105 | } |
| 101 | 106 | |
@@ -112,8 +117,9 @@ discard block |
||
| 112 | 117 | $designer->form->selector : |
| 113 | 118 | $designer->getComponentByName ($property[0]); |
| 114 | 119 | |
| 115 | - foreach (array_slice ($property, 1) as $path) |
|
| 116 | - $object = VoidEngine::getProperty ($object, $path); |
|
| 120 | + foreach (array_slice ($property, 1) as $path) { |
|
| 121 | + $object = VoidEngine::getProperty ($object, $path); |
|
| 122 | + } |
|
| 117 | 123 | |
| 118 | 124 | $code = str_replace (substr ($code, $pos + 2, $end - $pos), 'WinForms_PHP.ZendProgram.getResource ("'. VoidEngine::exportObject ($object) .'")', $code); |
| 119 | 125 | } |
@@ -7,44 +7,44 @@ |
||
| 7 | 7 | public WFObject $process; |
| 8 | 8 | protected int $lastTimestamp = 0; |
| 9 | 9 | |
| 10 | - public function __construct (WFObject $process) |
|
| 10 | + public function __construct(WFObject $process) |
|
| 11 | 11 | { |
| 12 | - if ($process->getType ()->toString () == 'System.Diagnostics.Process') |
|
| 12 | + if ($process->getType()->toString() == 'System.Diagnostics.Process') |
|
| 13 | 13 | $this->process = $process; |
| 14 | 14 | |
| 15 | - else throw new \Exception ('$process argument must be an "Process" object'); |
|
| 15 | + else throw new \Exception('$process argument must be an "Process" object'); |
|
| 16 | 16 | } |
| 17 | 17 | |
| 18 | - public function dump (string $savePath, string $properties = '', bool $waitForExit = true) |
|
| 18 | + public function dump(string $savePath, string $properties = '', bool $waitForExit = true) |
|
| 19 | 19 | { |
| 20 | - $process = run ('"'. APP_DIR .'/system/procdump/procdump.exe"', $properties .' '. $this->process->id .' "'. filepathNoExt ($savePath) .'"'); |
|
| 20 | + $process = run('"'.APP_DIR.'/system/procdump/procdump.exe"', $properties.' '.$this->process->id.' "'.filepathNoExt($savePath).'"'); |
|
| 21 | 21 | |
| 22 | 22 | if ($waitForExit) |
| 23 | 23 | while (!$process->hasExited) |
| 24 | - usleep (200); |
|
| 24 | + usleep(200); |
|
| 25 | 25 | } |
| 26 | 26 | |
| 27 | - public function debugRequest (string $command, array $arguments = []) |
|
| 27 | + public function debugRequest(string $command, array $arguments = []) |
|
| 28 | 28 | { |
| 29 | - file_put_contents (VoidStudioProjectManager::$projectPath .'/build/__debug_request', serialize ([ |
|
| 30 | - 'timestamp' => time (), |
|
| 29 | + file_put_contents(VoidStudioProjectManager::$projectPath.'/build/__debug_request', serialize([ |
|
| 30 | + 'timestamp' => time(), |
|
| 31 | 31 | 'command' => $command, |
| 32 | 32 | 'arguments' => $arguments |
| 33 | 33 | ])); |
| 34 | 34 | } |
| 35 | 35 | |
| 36 | - public function readDebugAnswer (bool $wait = false) |
|
| 36 | + public function readDebugAnswer(bool $wait = false) |
|
| 37 | 37 | { |
| 38 | - $file = VoidStudioProjectManager::$projectPath .'/build/__debug_answer'; |
|
| 38 | + $file = VoidStudioProjectManager::$projectPath.'/build/__debug_answer'; |
|
| 39 | 39 | |
| 40 | 40 | if ($wait) |
| 41 | - while (!file_exists ($file)) |
|
| 42 | - usleep (100); |
|
| 41 | + while (!file_exists($file)) |
|
| 42 | + usleep(100); |
|
| 43 | 43 | |
| 44 | - if (file_exists ($file)) |
|
| 44 | + if (file_exists($file)) |
|
| 45 | 45 | { |
| 46 | - $answer = unserialize (file_get_contents ($file)); |
|
| 47 | - unlink ($file); |
|
| 46 | + $answer = unserialize(file_get_contents($file)); |
|
| 47 | + unlink($file); |
|
| 48 | 48 | |
| 49 | 49 | if ($answer['timestamp'] > $this->lastTimestamp) |
| 50 | 50 | { |
@@ -9,19 +9,21 @@ discard block |
||
| 9 | 9 | |
| 10 | 10 | public function __construct (WFObject $process) |
| 11 | 11 | { |
| 12 | - if ($process->getType ()->toString () == 'System.Diagnostics.Process') |
|
| 13 | - $this->process = $process; |
|
| 14 | - |
|
| 15 | - else throw new \Exception ('$process argument must be an "Process" object'); |
|
| 12 | + if ($process->getType ()->toString () == 'System.Diagnostics.Process') { |
|
| 13 | + $this->process = $process; |
|
| 14 | + } else { |
|
| 15 | + throw new \Exception ('$process argument must be an "Process" object'); |
|
| 16 | + } |
|
| 16 | 17 | } |
| 17 | 18 | |
| 18 | 19 | public function dump (string $savePath, string $properties = '', bool $waitForExit = true) |
| 19 | 20 | { |
| 20 | 21 | $process = run ('"'. APP_DIR .'/system/procdump/procdump.exe"', $properties .' '. $this->process->id .' "'. filepathNoExt ($savePath) .'"'); |
| 21 | 22 | |
| 22 | - if ($waitForExit) |
|
| 23 | - while (!$process->hasExited) |
|
| 23 | + if ($waitForExit) { |
|
| 24 | + while (!$process->hasExited) |
|
| 24 | 25 | usleep (200); |
| 26 | + } |
|
| 25 | 27 | } |
| 26 | 28 | |
| 27 | 29 | public function debugRequest (string $command, array $arguments = []) |
@@ -37,9 +39,10 @@ discard block |
||
| 37 | 39 | { |
| 38 | 40 | $file = VoidStudioProjectManager::$projectPath .'/build/__debug_answer'; |
| 39 | 41 | |
| 40 | - if ($wait) |
|
| 41 | - while (!file_exists ($file)) |
|
| 42 | + if ($wait) { |
|
| 43 | + while (!file_exists ($file)) |
|
| 42 | 44 | usleep (100); |
| 45 | + } |
|
| 43 | 46 | |
| 44 | 47 | if (file_exists ($file)) |
| 45 | 48 | { |
@@ -8,58 +8,57 @@ |
||
| 8 | 8 | public static array $events = []; |
| 9 | 9 | public static $project; |
| 10 | 10 | |
| 11 | - public static function addObjects (string $group, array $objects) |
|
| 11 | + public static function addObjects(string $group, array $objects) |
|
| 12 | 12 | { |
| 13 | - self::$objects[$group] = array_merge |
|
| 14 | - ( |
|
| 13 | + self::$objects[$group] = array_merge( |
|
| 15 | 14 | self::$objects[$group] ?? [], |
| 16 | 15 | $objects |
| 17 | 16 | ); |
| 18 | 17 | } |
| 19 | 18 | |
| 20 | - public static function getObjects (string $group) |
|
| 19 | + public static function getObjects(string $group) |
|
| 21 | 20 | { |
| 22 | 21 | return isset (self::$objects[$group]) ? |
| 23 | 22 | self::$objects[$group] : false; |
| 24 | 23 | } |
| 25 | 24 | |
| 26 | - public static function openEventEditor (int $component, string $event, VoidDesigner $designer = null) |
|
| 25 | + public static function openEventEditor(int $component, string $event, VoidDesigner $designer = null) |
|
| 27 | 26 | { |
| 28 | - $objects = self::getObjects ('editor'); |
|
| 27 | + $objects = self::getObjects('editor'); |
|
| 29 | 28 | $form = $objects['MainForm']; |
| 30 | 29 | $editor = $objects['Editor']; |
| 31 | 30 | |
| 32 | 31 | $editor->helpStorage = [$component, $event]; |
| 33 | 32 | $editor->text = self::$events[$component][$event] ?? ''; |
| 34 | 33 | |
| 35 | - $form->caption = 'Событие "'. $event .'", объект "'. ($designer === null ? VoidEngine::getProperty ($component, 'Name') : $designer->getComponentName ($component)) .'"'; |
|
| 34 | + $form->caption = 'Событие "'.$event.'", объект "'.($designer === null ? VoidEngine::getProperty($component, 'Name') : $designer->getComponentName($component)).'"'; |
|
| 36 | 35 | |
| 37 | - $form->showDialog (); |
|
| 36 | + $form->showDialog(); |
|
| 38 | 37 | } |
| 39 | 38 | |
| 40 | - public static function stopProject () |
|
| 39 | + public static function stopProject() |
|
| 41 | 40 | { |
| 42 | 41 | if (self::$project instanceof WFObject && !self::$project->hasExited) |
| 43 | 42 | { |
| 44 | - self::$project->kill (); |
|
| 45 | - self::$project->waitForExit (); |
|
| 43 | + self::$project->kill(); |
|
| 44 | + self::$project->waitForExit(); |
|
| 46 | 45 | } |
| 47 | 46 | } |
| 48 | 47 | |
| 49 | - public static function startProject (TabControl $formsList, bool $debug = true): ?WFObject |
|
| 48 | + public static function startProject(TabControl $formsList, bool $debug = true): ?WFObject |
|
| 50 | 49 | { |
| 51 | - self::stopProject (); |
|
| 50 | + self::stopProject(); |
|
| 52 | 51 | |
| 53 | 52 | try |
| 54 | 53 | { |
| 55 | - VoidStudioBuilder::compileProject (VoidStudioProjectManager::$projectPath .'/build.exe', $formsList->items[0]->text, VoidStudioBuilder::getReferences (ENGINE_DIR .'/VoidEngine.php'), [], false, $debug); |
|
| 54 | + VoidStudioBuilder::compileProject(VoidStudioProjectManager::$projectPath.'/build.exe', $formsList->items[0]->text, VoidStudioBuilder::getReferences(ENGINE_DIR.'/VoidEngine.php'), [], false, $debug); |
|
| 56 | 55 | |
| 57 | - self::$project = run (VoidStudioProjectManager::$projectPath .'/build/build.exe'); |
|
| 56 | + self::$project = run(VoidStudioProjectManager::$projectPath.'/build/build.exe'); |
|
| 58 | 57 | } |
| 59 | 58 | |
| 60 | 59 | catch (\Throwable $e) |
| 61 | 60 | { |
| 62 | - messageBox ('Нельзя сохранить проект или произошла ошибка компиляции' ."\n\nПодробнее:\n\n". print_r ($e, true), 'Ошибка запуска проекта', enum ('System.Windows.Forms.MessageBoxButtons.OK'), enum ('System.Windows.Forms.MessageBoxIcon.Error')); |
|
| 61 | + messageBox('Нельзя сохранить проект или произошла ошибка компиляции'."\n\nПодробнее:\n\n".print_r($e, true), 'Ошибка запуска проекта', enum('System.Windows.Forms.MessageBoxButtons.OK'), enum('System.Windows.Forms.MessageBoxIcon.Error')); |
|
| 63 | 62 | |
| 64 | 63 | return null; |
| 65 | 64 | } |
@@ -55,9 +55,7 @@ |
||
| 55 | 55 | VoidStudioBuilder::compileProject (VoidStudioProjectManager::$projectPath .'/build.exe', $formsList->items[0]->text, VoidStudioBuilder::getReferences (ENGINE_DIR .'/VoidEngine.php'), [], false, $debug); |
| 56 | 56 | |
| 57 | 57 | self::$project = run (VoidStudioProjectManager::$projectPath .'/build/build.exe'); |
| 58 | - } |
|
| 59 | - |
|
| 60 | - catch (\Throwable $e) |
|
| 58 | + } catch (\Throwable $e) |
|
| 61 | 59 | { |
| 62 | 60 | messageBox ('Нельзя сохранить проект или произошла ошибка компиляции' ."\n\nПодробнее:\n\n". print_r ($e, true), 'Ошибка запуска проекта', enum ('System.Windows.Forms.MessageBoxButtons.OK'), enum ('System.Windows.Forms.MessageBoxIcon.Error')); |
| 63 | 61 | |
@@ -8,12 +8,12 @@ |
||
| 8 | 8 | $package = json_decode (@file_get_contents (dirname (__DIR__) .'/qero-packages/packages.json'), true); |
| 9 | 9 | |
| 10 | 10 | define ('VoidEngine\CORE_DIR', isset ($package['github:winforms-php/VoidFramework']['basefolder']) ? |
| 11 | - dirname (__DIR__) .'/qero-packages/winforms-php/VoidFramework/'. $package['github:winforms-php/VoidFramework']['basefolder'] .'/core' : __DIR__); |
|
| 11 | + dirname (__DIR__) .'/qero-packages/winforms-php/VoidFramework/'. $package['github:winforms-php/VoidFramework']['basefolder'] .'/core' : __DIR__); |
|
| 12 | 12 | |
| 13 | 13 | # Подгружаем PHP расширения |
| 14 | 14 | foreach (glob (CORE_DIR .'/ext/php_*.dll') as $ext) |
| 15 | - if (!extension_loaded (substr (basename ($ext), 4, -4))) |
|
| 16 | - load_extension ($ext); |
|
| 15 | + if (!extension_loaded (substr (basename ($ext), 4, -4))) |
|
| 16 | + load_extension ($ext); |
|
| 17 | 17 | |
| 18 | 18 | # Подгружаем Qero-пакеты |
| 19 | 19 | require __DIR__ .'/../qero-packages/autoload.php'; |
@@ -3,22 +3,22 @@ discard block |
||
| 3 | 3 | namespace VoidEngine; |
| 4 | 4 | |
| 5 | 5 | # Объявление констант |
| 6 | -const APP_DIR = __DIR__; |
|
| 6 | +const APP_DIR = __DIR__; |
|
| 7 | 7 | |
| 8 | -$package = json_decode (@file_get_contents (dirname (__DIR__) .'/qero-packages/packages.json'), true); |
|
| 8 | +$package = json_decode(@file_get_contents(dirname(__DIR__).'/qero-packages/packages.json'), true); |
|
| 9 | 9 | |
| 10 | -define ('VoidEngine\CORE_DIR', isset ($package['github:winforms-php/VoidFramework']['basefolder']) ? |
|
| 11 | - dirname (__DIR__) .'/qero-packages/winforms-php/VoidFramework/'. $package['github:winforms-php/VoidFramework']['basefolder'] .'/core' : __DIR__); |
|
| 10 | +define('VoidEngine\CORE_DIR', isset ($package['github:winforms-php/VoidFramework']['basefolder']) ? |
|
| 11 | + dirname (__DIR__).'/qero-packages/winforms-php/VoidFramework/'.$package['github:winforms-php/VoidFramework']['basefolder'].'/core' : __DIR__); |
|
| 12 | 12 | |
| 13 | 13 | # Подгружаем PHP расширения |
| 14 | -foreach (glob (CORE_DIR .'/ext/php_*.dll') as $ext) |
|
| 15 | - if (!extension_loaded (substr (basename ($ext), 4, -4))) |
|
| 16 | - load_extension ($ext); |
|
| 14 | +foreach (glob(CORE_DIR.'/ext/php_*.dll') as $ext) |
|
| 15 | + if (!extension_loaded(substr(basename($ext), 4, -4))) |
|
| 16 | + load_extension($ext); |
|
| 17 | 17 | |
| 18 | 18 | # Подгружаем Qero-пакеты |
| 19 | -require __DIR__ .'/../qero-packages/autoload.php'; |
|
| 19 | +require __DIR__.'/../qero-packages/autoload.php'; |
|
| 20 | 20 | |
| 21 | -chdir (APP_DIR); // Меняем стандартную директорию на директорию приложения |
|
| 21 | +chdir(APP_DIR); // Меняем стандартную директорию на директорию приложения |
|
| 22 | 22 | |
| 23 | 23 | # Подгружаем скрипты VoidStudio |
| 24 | 24 | require 'VoidStudio API.php'; |
@@ -31,4 +31,4 @@ discard block |
||
| 31 | 31 | require 'forms/diagnostic.php'; // Средство диагностики |
| 32 | 32 | require 'forms/about.php'; // О программе |
| 33 | 33 | |
| 34 | -$APPLICATION->run (VoidStudioAPI::getObjects ('main')['MainForm']); |
|
| 34 | +$APPLICATION->run(VoidStudioAPI::getObjects('main')['MainForm']); |
|
@@ -11,9 +11,10 @@ |
||
| 11 | 11 | dirname (__DIR__) .'/qero-packages/winforms-php/VoidFramework/'. $package['github:winforms-php/VoidFramework']['basefolder'] .'/core' : __DIR__); |
| 12 | 12 | |
| 13 | 13 | # Подгружаем PHP расширения |
| 14 | -foreach (glob (CORE_DIR .'/ext/php_*.dll') as $ext) |
|
| 14 | +foreach (glob (CORE_DIR .'/ext/php_*.dll') as $ext) { |
|
| 15 | 15 | if (!extension_loaded (substr (basename ($ext), 4, -4))) |
| 16 | 16 | load_extension ($ext); |
| 17 | +} |
|
| 17 | 18 | |
| 18 | 19 | # Подгружаем Qero-пакеты |
| 19 | 20 | require __DIR__ .'/../qero-packages/autoload.php'; |
@@ -51,11 +51,11 @@ |
||
| 51 | 51 | |
| 52 | 52 | try |
| 53 | 53 | { |
| 54 | - if (strpos ((new WFObject ('System.Net.WebClient'))->downloadString ('https://raw.githubusercontent.com/winforms-php/VoidStudio/master/bin/app/system/blacklist.lst'), sha1 (shell_exec ('wmic csproduct'))) !== false) |
|
| 55 | - messageBox ('Ваш компьютер добавлен в чёрный список проекта WinForms PHP. Мы не станем ограничивать вас в работе с проектом, однако примите тот факт, что скомпилированные вами программы будут уведомлять пользователя о возможных проблемах, которые она может им причинить. Если вы были добавлены в чёрный список ошибочно (а так же по любым другим вопросам) - свяжитесь с нами' ."\n\nС уважением, команда разработчиков проекта WinForms PHP\nvk.com/winforms", 'Предупреждение', enum ('System.Windows.Forms.MessageBoxButtons.OK'), enum ('System.Windows.Forms.MessageBoxIcon.Warning')); |
|
| 54 | + if (strpos((new WFObject('System.Net.WebClient'))->downloadString('https://raw.githubusercontent.com/winforms-php/VoidStudio/master/bin/app/system/blacklist.lst'), sha1(shell_exec('wmic csproduct'))) !== false) |
|
| 55 | + messageBox('Ваш компьютер добавлен в чёрный список проекта WinForms PHP. Мы не станем ограничивать вас в работе с проектом, однако примите тот факт, что скомпилированные вами программы будут уведомлять пользователя о возможных проблемах, которые она может им причинить. Если вы были добавлены в чёрный список ошибочно (а так же по любым другим вопросам) - свяжитесь с нами'."\n\nС уважением, команда разработчиков проекта WinForms PHP\nvk.com/winforms", 'Предупреждение', enum('System.Windows.Forms.MessageBoxButtons.OK'), enum('System.Windows.Forms.MessageBoxIcon.Warning')); |
|
| 56 | 56 | } |
| 57 | 57 | |
| 58 | 58 | catch (\Throwable $e) {} |
| 59 | 59 | |
| 60 | -if (date ('m/d') == '06/18') |
|
| 61 | - messageBox ("Привет, друзья!\nСегодня знаменательный день: день рождения проекта WinForms PHP!\nС момента его появления прошло уже ". (date ('Y') - 2018) ." лет!\n\nВот такие дела. Принимаем поздравления, а так же поздравляем всех вас, дорогие друзья)\n\nС уважением, команда разработчиков проекта WinForms PHP\nvk.com/winforms", 'Уведомление', enum ('System.Windows.Forms.MessageBoxButtons.OK'), enum ('System.Windows.Forms.MessageBoxIcon.Information')); |
|
| 60 | +if (date('m/d') == '06/18') |
|
| 61 | + messageBox("Привет, друзья!\nСегодня знаменательный день: день рождения проекта WinForms PHP!\nС момента его появления прошло уже ".(date('Y') - 2018)." лет!\n\nВот такие дела. Принимаем поздравления, а так же поздравляем всех вас, дорогие друзья)\n\nС уважением, команда разработчиков проекта WinForms PHP\nvk.com/winforms", 'Уведомление', enum('System.Windows.Forms.MessageBoxButtons.OK'), enum('System.Windows.Forms.MessageBoxIcon.Information')); |
|
@@ -51,11 +51,11 @@ |
||
| 51 | 51 | |
| 52 | 52 | try |
| 53 | 53 | { |
| 54 | - if (strpos ((new WFObject ('System.Net.WebClient'))->downloadString ('https://raw.githubusercontent.com/winforms-php/VoidStudio/master/bin/app/system/blacklist.lst'), sha1 (shell_exec ('wmic csproduct'))) !== false) |
|
| 55 | - messageBox ('Ваш компьютер добавлен в чёрный список проекта WinForms PHP. Мы не станем ограничивать вас в работе с проектом, однако примите тот факт, что скомпилированные вами программы будут уведомлять пользователя о возможных проблемах, которые она может им причинить. Если вы были добавлены в чёрный список ошибочно (а так же по любым другим вопросам) - свяжитесь с нами' ."\n\nС уважением, команда разработчиков проекта WinForms PHP\nvk.com/winforms", 'Предупреждение', enum ('System.Windows.Forms.MessageBoxButtons.OK'), enum ('System.Windows.Forms.MessageBoxIcon.Warning')); |
|
| 56 | -} |
|
| 57 | - |
|
| 58 | -catch (\Throwable $e) {} |
|
| 54 | + if (strpos ((new WFObject ('System.Net.WebClient'))->downloadString ('https://raw.githubusercontent.com/winforms-php/VoidStudio/master/bin/app/system/blacklist.lst'), sha1 (shell_exec ('wmic csproduct'))) !== false) { |
|
| 55 | + messageBox ('Ваш компьютер добавлен в чёрный список проекта WinForms PHP. Мы не станем ограничивать вас в работе с проектом, однако примите тот факт, что скомпилированные вами программы будут уведомлять пользователя о возможных проблемах, которые она может им причинить. Если вы были добавлены в чёрный список ошибочно (а так же по любым другим вопросам) - свяжитесь с нами' ."\n\nС уважением, команда разработчиков проекта WinForms PHP\nvk.com/winforms", 'Предупреждение', enum ('System.Windows.Forms.MessageBoxButtons.OK'), enum ('System.Windows.Forms.MessageBoxIcon.Warning')); |
|
| 56 | + } |
|
| 57 | + } catch (\Throwable $e) {} |
|
| 59 | 58 | |
| 60 | -if (date ('m/d') == '06/18') |
|
| 59 | +if (date ('m/d') == '06/18') { |
|
| 61 | 60 | messageBox ("Привет, друзья!\nСегодня знаменательный день: день рождения проекта WinForms PHP!\nС момента его появления прошло уже ". (date ('Y') - 2018) ." лет!\n\nВот такие дела. Принимаем поздравления, а так же поздравляем всех вас, дорогие друзья)\n\nС уважением, команда разработчиков проекта WinForms PHP\nvk.com/winforms", 'Уведомление', enum ('System.Windows.Forms.MessageBoxButtons.OK'), enum ('System.Windows.Forms.MessageBoxIcon.Information')); |
| 61 | +} |
|