Exemple #1
0
 public function errorHandler($errno, $errstr, $errfile, $errline, array $errcontext)
 {
     $error = compact("errno", "errstr", "errfile", "errline");
     if ((int) $errno & (E_ERROR | E_PARSE | E_CORE_ERROR | E_COMPILE_ERROR | E_WARNING)) {
         $this->trigger("error", $error);
     }
     log::error(var_export($error, 1));
 }
Exemple #2
0
 protected function onInStreamClose()
 {
     $this->inStream->off("close", [$this, "onInStreamClose"]);
     // If stream is closed, but no STOP event received
     if ($this->isProcOpen()) {
         $pid = $this->getPID();
         $sig = $this->getTermSig();
         $error = "Unexpected child death ({$pid}): " . ($sig ? "signaled {$sig}" : "unknown reason");
         log::error($error);
         $this->trigger("error", $error);
         $this->trigger("stop");
     }
 }
Exemple #3
0
 protected function log($msg)
 {
     $error = false;
     if ($msg instanceof \Exception) {
         $msg = sprintf("Exception (%d) %s in %s:%d", $msg->getCode(), $msg->getMessage(), $msg->getFile(), $msg->getLine());
         $error = true;
     }
     if (!$this->canLog) {
         echo "{$msg}\n";
         return;
     }
     if ($this->verbose) {
         echo "{$msg}\n";
     }
     $error ? log::error($msg) : log::info($msg);
 }
Exemple #4
0
 public function onData(Event $event)
 {
     $this->messages .= $data = $event->getData();
     $i = 0;
     while (false !== ($msg = $this->extractMessage())) {
         $i++;
         $eventObject = unserialize($msg);
         foreach ($this->listeners as $listener) {
             $listener->trigger($eventObject);
         }
     }
     if ($this->messages && !$i) {
         $msg = $this->messages;
         if (strlen($msg) < 100) {
             $msg = "0x" . bin2hex($msg);
         }
         log::error("Got broken message:\n{$msg}");
         log::error("last data: " . var_export($data, 1));
     }
 }
Exemple #5
0
#!/usr/bin/php
<?php 
$dir = dirname(dirname(__FILE__));
if (is_file("{$dir}/vendor/autoload.php")) {
    $autoloadFile = "{$dir}/vendor/autoload.php";
} else {
    $autoloadFile = dirname(dirname($dir)) . "/autoload.php";
}
include_once $autoloadFile;
if ($argc < 4) {
    echo "Wrong argument count";
    exit(1);
}
$requiredFiles = unserialize(base64_decode($argv[1]));
foreach ($requiredFiles as $requiredFile) {
    require $requiredFile;
}
$calleeEntity = unserialize(base64_decode($argv[2]));
$calleeMethod = unserialize(base64_decode($argv[3]));
$arguments = $argc > 4 ? unserialize(base64_decode($argv[4])) : [];
if (is_string($calleeEntity)) {
    $calleeEntity = new $calleeEntity();
}
$child = new \Phasty\Process\Child($calleeEntity);
try {
    call_user_func_array([$calleeEntity, $calleeMethod], $arguments);
} catch (\Exception $e) {
    $child->trigger("error", $e->getMessage());
    \Phasty\Log\File::error($e->getMessage());
}
Exemple #6
0
 protected function logByType($msg, $type)
 {
     if (!$this->canLog) {
         echo "{$msg}\n";
         return;
     }
     if ($this->verbose) {
         echo "{$msg}\n";
     }
     switch ($type) {
         case 'error':
             log::error($msg);
             break;
         case 'debug':
             log::debug($msg);
             break;
         default:
             log::info($msg);
     }
 }