示例#1
0
 /**
  * Checks if there is enough memory and time left on the Server.
  *
  * @return bool
  *   Boolean to show if we have enough left.
  *   TRUE = all is OK.
  *   FALSE = we have a problem.
  */
 public function checkEmergencyBreak()
 {
     if (!$this->enabled) {
         // Tell them, everything is OK!
         return true;
     }
     if (self::$allIsOk === false) {
         // This has failed before!
         // No need to check again!
         return false;
     }
     // Check Runtime.
     if ($this->timer + $this->maxRuntime <= time()) {
         // This is taking longer than expected.
         $this->storage->messages->addMessage('Emergency break due to extensive run time!');
         \Krexx::editSettings();
         \Krexx::disable();
         self::$allIsOk = false;
         return false;
     }
     // Still here ? Commence with the memory check.
     // We will only check, if we were able to determine a memory limit
     // in the first place.
     if ($this->serverMemoryLimit > 2) {
         $usage = memory_get_usage();
         $left = $this->serverMemoryLimit - $usage;
         // Is more left than is configured?
         if ($left < $this->minMemoryLeft * 1024 * 1024) {
             $this->storage->messages->addMessage('Emergency break due to extensive memory usage!');
             // Show settings to give the dev to repair the situation.
             \Krexx::editSettings();
             \Krexx::disable();
             self::$allIsOk = false;
             return false;
         }
     }
     // Still here? Everything must be good  :-)
     return true;
 }
示例#2
0
 /**
  * Includes all needed files and sets some internal values.
  */
 public static function bootstrapKrexx()
 {
     $krexxDir = dirname(__FILE__) . DIRECTORY_SEPARATOR;
     include_once $krexxDir . 'src/service/view/Help.php';
     include_once $krexxDir . 'src/service/view/Render.php';
     include_once $krexxDir . 'src/service/view/Messages.php';
     include_once $krexxDir . 'src/service/config/Model.php';
     include_once $krexxDir . 'src/service/config/Fallback.php';
     include_once $krexxDir . 'src/service/config/Security.php';
     include_once $krexxDir . 'src/service/config/Config.php';
     include_once $krexxDir . 'src/service/misc/Codegen.php';
     include_once $krexxDir . 'src/service/misc/Chunks.php';
     include_once $krexxDir . 'src/service/misc/Shutdown.php';
     include_once $krexxDir . 'src/service/Storage.php';
     include_once $krexxDir . 'src/service/flow/Recursion.php';
     include_once $krexxDir . 'src/service/flow/Emergency.php';
     include_once $krexxDir . 'src/analysis/Flection.php';
     include_once $krexxDir . 'src/analysis/Routing.php';
     include_once $krexxDir . 'src/analysis/Model.php';
     include_once $krexxDir . 'src/analysis/callback/AbstractCallback.php';
     include_once $krexxDir . 'src/analysis/callback/analyse/BacktraceStep.php';
     include_once $krexxDir . 'src/analysis/callback/analyse/ConfigSection.php';
     include_once $krexxDir . 'src/analysis/callback/analyse/Debug.php';
     include_once $krexxDir . 'src/analysis/callback/analyse/Objects.php';
     include_once $krexxDir . 'src/analysis/callback/iterate/ThroughArray.php';
     include_once $krexxDir . 'src/analysis/callback/iterate/ThroughConfig.php';
     include_once $krexxDir . 'src/analysis/callback/iterate/ThroughConstants.php';
     include_once $krexxDir . 'src/analysis/callback/iterate/ThroughMethodAnalysis.php';
     include_once $krexxDir . 'src/analysis/callback/iterate/ThroughMethods.php';
     include_once $krexxDir . 'src/analysis/callback/iterate/ThroughProperties.php';
     include_once $krexxDir . 'src/analysis/callback/iterate/ThroughGetter.php';
     include_once $krexxDir . 'src/analysis/caller/AbstractCaller.php';
     include_once $krexxDir . 'src/analysis/caller/Php.php';
     include_once $krexxDir . 'src/errorhandler/Error.php';
     include_once $krexxDir . 'src/errorhandler/Fatal.php';
     include_once $krexxDir . 'src/controller/Internals.php';
     include_once $krexxDir . 'src/controller/OutputActions.php';
     // Create a new storage where we sotre all our classes.
     self::$storage = new Storage($krexxDir);
 }