Phalanger не может найти мои php классы
После этого вопроса я нашел хороший (актуальный) пример для подражания здесь. Я успешно получил библиотеки PHP.Core, работающие в VS, но все еще не могу найти мои классы php.
Учебник достаточно прост, однако
dynamic phpObj = globals.@class.PhpClass();
никогда не находит мой класс php. Я попытался с файлом примера default.php (имя класса: PhpClass) и с моими собственными классами php, которые похожи, но имеют другое имя.
Что мне здесь не хватает? Я попробовал вариант
Свойства проекта> Упаковать / опубликовать в Интернете> Элементы для развертывания> все файлы в проекте
но это не помогло. В настоящее время у меня есть php классы прямо под проектом, как показано ниже
Ошибка, которую я получаю, просто говорит, что не может найти класс:
Использование ILSpy здесь является основным фрагментом кода для CurrentContext
result = (((ScriptContext)CallContext.GetData("PhpNet:ScriptContext")) ?? ScriptContext.CreateDefaultScriptContext());
Эта строка кода используется для поиска классов php (AFAIK).
1 ответ
Вы должны сначала включить ваши php-файлы в контекст PHP... В Web App, чтобы правильно "симулировать" жизненный цикл 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
}