Search in sources :

Example 11 with CompileScope

use of php.runtime.env.CompileScope in project jphp by jphp-compiler.

the class WebServerController method get.

@RequestMapping
public void get(OutputStream stream, HttpServletRequest request, HttpServletResponse response) throws Throwable {
    PWebServer webServer = webServerMap.get(serverId);
    Environment environment = webServer.getEnvironment();
    CompileScope scope = environment.getScope();
    Environment requestEnvironment;
    if (!webServer.isIsolated()) {
        requestEnvironment = new Environment(environment);
    } else {
        if (webServer.isHotReload()) {
            scope = new CompileScope(scope);
        }
        requestEnvironment = new Environment(scope);
    }
    requestEnvironment.getDefaultBuffer().setOutput(stream);
    if (webServer.isImportAutoloaders()) {
        for (SplClassLoader loader : environment.getClassLoaders()) {
            requestEnvironment.registerAutoloader(loader.forEnvironment(requestEnvironment), false);
        }
    }
    Invoker onRequest = webServer.getOnRequest().forEnvironment(requestEnvironment);
    PWebRequest webRequest = new PWebRequest(requestEnvironment, request);
    PWebResponse webResponse = new PWebResponse(requestEnvironment, response);
    requestEnvironment.setUserValue(webServer);
    requestEnvironment.setUserValue(webRequest);
    requestEnvironment.setUserValue(webResponse);
    try {
        onRequest.call(ObjectMemory.valueOf(webRequest), ObjectMemory.valueOf(webResponse));
    } catch (Throwable throwable) {
        Environment.catchThrowable(throwable, requestEnvironment);
    } finally {
        requestEnvironment.doFinal();
    }
}
Also used : PWebServer(org.develnext.jphp.ext.webserver.classes.PWebServer) CompileScope(php.runtime.env.CompileScope) SplClassLoader(php.runtime.env.SplClassLoader) Invoker(php.runtime.invoke.Invoker) Environment(php.runtime.env.Environment) PWebRequest(org.develnext.jphp.ext.webserver.classes.PWebRequest) PWebResponse(org.develnext.jphp.ext.webserver.classes.PWebResponse) RequestMapping(org.springframework.web.bind.annotation.RequestMapping)

Aggregations

CompileScope (php.runtime.env.CompileScope)11 ZendExtension (org.develnext.jphp.zend.ext.ZendExtension)3 Environment (php.runtime.env.Environment)3 IOException (java.io.IOException)1 DebugTick (org.develnext.jphp.debug.impl.DebugTick)1 Debugger (org.develnext.jphp.debug.impl.Debugger)1 DebuggerException (org.develnext.jphp.debug.impl.DebuggerException)1 JsoupExtension (org.develnext.jphp.ext.jsoup.JsoupExtension)1 SqlExtension (org.develnext.jphp.ext.sql.SqlExtension)1 WebServerExtension (org.develnext.jphp.ext.webserver.WebServerExtension)1 PWebRequest (org.develnext.jphp.ext.webserver.classes.PWebRequest)1 PWebResponse (org.develnext.jphp.ext.webserver.classes.PWebResponse)1 PWebServer (org.develnext.jphp.ext.webserver.classes.PWebServer)1 RequestMapping (org.springframework.web.bind.annotation.RequestMapping)1 SplClassLoader (php.runtime.env.SplClassLoader)1 ProgramShutdownHandler (php.runtime.env.handler.ProgramShutdownHandler)1 Invoker (php.runtime.invoke.Invoker)1