Exemplo n.º 1
0
 public function go()
 {
     $is_parent = true;
     foreach ($this->servers as $server) {
         $app = new $server[0]();
         foreach (array_reverse($server[1]) as $mw_name) {
             $mw_class = 'MFS\\AppServer\\Middleware\\' . $mw_name . '\\' . $mw_name;
             $app = new $mw_class($app);
         }
         $handler = new \MFS\AppServer\DaemonicHandler($server[3], $server[2], 'Socket');
         for ($i = 0; $i < $server[4]; $i++) {
             $pid = pcntl_fork();
             if ($pid == -1) {
                 die('could not fork');
             } elseif ($pid === 0) {
                 // we are the child
                 $is_parent = false;
                 try {
                     $handler->serve($app);
                 } catch (\Exception $e) {
                 }
                 die;
             } else {
                 // parent-process, just continue
             }
         }
     }
     if ($is_parent) {
         // should be called one time for each child?
         pcntl_wait($status);
         //Protect against Zombie children
     }
 }
<?php

require 'AppServer/autoload.php';
use MFS\AppServer\Apps\FileServe\FileServe as file_server;
use MFS\AppServer\Middleware\PHP_Compat\PHP_Compat as aip_php_compat;
use MFS\AppServer\Middleware\Logger\Logger as aip_logger;
use MFS\AppServer\Middleware\Session\Session as aip_session;
require __DIR__ . '/appserv_app.php';
try {
    $app = new aip_php_compat(new aip_session(new midgardmvc_appserv_app()));
    $_midcom_root = realpath(__DIR__ . '/../..') . '/';
    $map = new \MFS\AppServer\Middleware\URLMap\URLMap(array('/' => $app, '/favicon.ico' => function ($ctx) {
        return array(404, array(), '');
    }, '/midcom-static/midgardmvc_core' => new file_server($_midcom_root . 'midgardmvc_core/static', 4000000), '/midcom-static/midgardmvc_helper_forms' => new file_server($_midcom_root . 'midgardmvc_helper_forms/static'), '/midcom-static/midgardmvc_admin_asgard' => new file_server($_midcom_root . 'midgardmvc_admin/static')));
    $handler = new \MFS\AppServer\DaemonicHandler('tcp://127.0.0.1:8080', 'HTTP');
    $handler->serve(new aip_logger($map, STDOUT));
} catch (Exception $e) {
    echo $e;
}
<?php

require 'AiP/autoload.php';
require __DIR__ . '/appserv_runner_app.php';
try {
    $handler = new \MFS\AppServer\DaemonicHandler('tcp://127.0.0.1:8001', 'HTTP');
    $handler->serve(new midgardmvc_appserv_runner_app());
} catch (Exception $e) {
    echo $e;
}
Exemplo n.º 4
0
Ak::setStaticVar('AppServer.SessionHandler', new AkAppServerFunctionHandler());
Ak::setStaticVar('AppServer.HeadersHandler', new AkAppServerFunctionHandler());
Ak::setStaticVar('AppServer.PutsHandler', new AkAppServerFunctionHandler());
$_headers = array();
$_puts = '';
$_status = 200;
$counter = 0;
$app = new \MFS\AppServer\Middleware\URLMap\URLMap(array('/' => function ($context = null) {
    global $counter, $_headers, $_puts, $_status;
    $counter++;
    $_puts = '';
    $_status = 200;
    //AkConfig::setOption('Request.remote_ip', AK_REMOTE_IP);
    ob_start();
    $_headers = array('Server', 'Akelos (via AppServer)');
    $Dispatcher = new AkDispatcher();
    $Response = $Dispatcher->dispatchAppServer($context);
    if (count($_headers) == 2) {
        foreach ((array) $Response->getHeaders() as $k => $v) {
            $_headers[] = $k;
            $_headers[] = $v;
        }
    }
    $extra_content = ob_get_clean();
    return array($_status, $_headers, (empty($_puts) && is_string($Response->body) ? $Response->body : $_puts) . $extra_content);
}));
echo "Akelos dev server listening at 127.0.0.1:" . $_SERVER['SERVER_PORT'] . "\n\n";
$handler = new \MFS\AppServer\DaemonicHandler('tcp://127.0.0.1:' . $_SERVER['SERVER_PORT'], 'HTTP');
// serving app
$handler->serve($app);
echo "\nBye!\n";