示例#1
0
 protected static function factory($class)
 {
     if (!self::$instance) {
         self::$instance = new $class();
     }
     return self::$instance;
 }
示例#2
0
function partial($partial, $variables = array())
{
    $backtrace = debug_backtrace();
    $view_directory = dirname($backtrace[0]['file']) . '/';
    $controller = basename($view_directory, '/');
    $app = basename(dirname($view_directory));
    if (!($partial_path = moojon_paths::get_partial_path($app, $controller, $partial))) {
        throw new moojon_exception("Unknown partial ({$partial})");
    }
    moojon_runner::partial($partial_path, $variables);
}
示例#3
0
 public final function render()
 {
     if (!$this->controller) {
         $this->set_controller();
     }
     $return = moojon_runner::render(moojon_paths::get_view_path(self::get_app_name($this), self::get_controller_name($this->controller), $this->controller->get_view()), $this->controller, $this->uri);
     $layout = $this->get_layout();
     if ($layout !== false) {
         $return = str_replace('YIELD', $return, moojon_runner::render(moojon_paths::get_layout_path($layout), $this->controller), $this->uri);
     }
     return $return;
 }
 protected function run(moojon_exception $exception)
 {
     switch (UI) {
         case 'CGI':
             $app = moojon_runner::app_from_uri(moojon_config::get('exception_app') . '/' . moojon_config::get('exception_controller') . '/' . moojon_config::get('exception_action'));
             if (ENVIRONMENT != 'development' && moojon_config::get('exception_mail')) {
                 $mailer = new moojon_mailer();
                 $mailer->set_from(moojon_config::get('from_mail_email'), moojon_config::get('from_mail_name'));
                 $mailer->set_to(moojon_config::get('webmaster_mail_email'), moojon_config::get('webmaster_mail_name'));
                 $mailer->set_subject(moojon_config::get('exception_mail_subject'));
                 $mailer->set_html($exception);
                 $mailer->send();
             }
             echo $app->render();
             break;
         case 'CLI':
             echo $this->exception;
             break;
     }
 }
示例#5
0
 private static function render_view($route)
 {
     return moojon_runner::render_app($route);
 }
示例#6
0
文件: moojon.php 项目: steview/moojon
<?php

require_once MOOJON_DIRECTORY . '/classes/moojon.base.class.php';
require_once MOOJON_DIRECTORY . '/classes/moojon.singleton.class.php';
require_once MOOJON_DIRECTORY . '/classes/moojon.singleton.immutable.collection.class.php';
require_once MOOJON_DIRECTORY . '/classes/moojon.singleton.mutable.collection.class.php';
require_once MOOJON_DIRECTORY . '/classes/moojon.runner.class.php';
moojon_runner::fetch();