После этого вопроса я нашел хороший (современный) пример, чтобы следовать здесь . Я успешно получил библиотеки PHP.Core, работающие в VS, но все еще испытывающие проблемы с поиском моих php-классов.
Учебник достаточно прост, однако
dynamic phpObj = globals.@class.PhpClass();
никогда не находит мой php-класс. Я попытался с примером файла default.php (classname: PhpClass) и с моими собственными php-классами, которые похожи, но имеют другое имя.
Что мне здесь не хватает? Я попробовал вариант
Свойства проекта> Пакет / Публикация Web> Элементы для развертывания> все файлы в проекте
но это не помогло. В настоящее время у меня есть классы php только по проекту, как показано ниже
Ошибка, которую я получаю, просто говорит, что он не может найти класс:
Использование ILSpy здесь является основным фрагментом кода для CurrentContext
result = (((ScriptContext)CallContext.GetData("PhpNet:ScriptContext")) ?? ScriptContext.CreateDefaultScriptContext());
Это строка кода, которая используется для поиска php-классов (AFAIK).
Сначала вы должны включить ваши php-файлы в контекст PHP … В веб-приложении, чтобы правильно имитировать жизненный цикл php, выполните следующие действия:
using (var request_context = RequestContext.Initialize(ApplicationContext.Default, HttpContext.Current)) { var context = request_context.ScriptContext; context.Include("default.php", false); // now the declarations declared by default.php are available in context. // do anything with PHP objects here }