Использование netutilities (NetPhp) для загрузки в пользовательскую DLL

Во-первых, я нашел эти удивительные уроки:

о / содержание / netphp

о / блог / netphp-пользователь-гид

ан / блог / PHP-ком класс затраты внутрисетевой-PHP

Я думаю, что часть проблемы с моей путаницей заключается в том, что информация разбита на 3+ руководства, а некоторые разделы конфликтуют.

Что работает для меня:

IMG: успешно зарегистрирован netutilities.dll

IMG: проверено с помощью OLE / COM Object Viewer

Композитор установлен.

Проблемы):

$dumper = new \NetPhp\Core\TypeDumper(); // PHP Fatal error:  Uncaught Error: Class 'NetPhp\Core\TypeDumper' not found

$runtime = new \NetPhp\Core\NetPhpRuntime(); //PHP Fatal error:  Uncaught Error: Class 'NetPhp\Core\NetPhpRuntime' not found

Но класс NetManager работает.

$manager = new \NetPhp\Core\NetManager();
var_dump($manager); //object(NetPhp\Core\NetManager)#7288 (1) { ["assemblies":"NetPhp\Core\NetManager":private]=> array(0) { } }

$dllPath = 'C:\\inetpub\\wwwroot\\lib\\FillmoreConstruction.dll';

$assembly = $manager->RegisterAssembly($dllPath, 'FillmoreConstruction');
//var_dump($assembly); //NULL

$class = $manager->RegisterClass('FillmoreConstruction', 'FillmoreConstruction.Location', 'Location');
//var_dump($class); //NULL

Пока я не попробую эту строку:

$m = $manager->Create('FillmoreConstruction', 'Location');
//PHP Fatal error:  Uncaught com_exception: Failed to create COM object `netutilities.MagicWrapper':  in C:\inetpub\wwwroot\vendor\drupalonwindows\netphp\src\Core\ComProxy.php:67
Stack trace:
#0 C:\inetpub\wwwroot\vendor\drupalonwindows\netphp\src\Core\ComProxy.php(67): com->com('netutilities.Ma...')
#1 C:\inetpub\wwwroot\vendor\drupalonwindows\netphp\src\Core\MagicWrapper.php(139): NetPhp\Core\ComProxy->_InstantiateCOM('netutilities.Ma...')
#2 C:\inetpub\wwwroot\vendor\drupalonwindows\netphp\src\Core\MagicWrapper.php(25): NetPhp\Core\MagicWrapper->LoadMagicWrapper()
#3 C:\inetpub\wwwroot\vendor\drupalonwindows\netphp\src\Core\NetManager.php(41): NetPhp\Core\MagicWrapper::GetFromType(Object(NetPhp\Core\ResolvedClass))

Что-то, что я заметил, когда я запускаю php из командной строки, я получаю это:

Неверная библиотека

Вопросы):

  1. Почему работает только 1 из 3 указанных классов?
  2. Каков правильный путь логики при регистрации DLL? Я думаю, что я запутался и перепутал между пространством имен, именем класса, именем сборки, методами и тем, как именно их все ввести. (Я собрал исходный код и могу проверить / изменить все, что нужно).
  3. Какая правильная запись в composer.json? Я нашел противоречивые записи в руководствах.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector