Beispiel #1
0
 /**
  * 运行框架
  */
 public static function run()
 {
     try {
         self::init();
         Hook::init(BASE_PATH);
         Hook::listen('appBegin');
         Hook::listen('routeParseUrl', array(Config::get('REWRITE_RULE'), Config::get('REWRITE_ON')));
         //default route
         if (!defined('APP_NAME') || !defined('CONTROLLER_NAME') || !defined('ACTION_NAME')) {
             Route::parseUrl(Config::get('REWRITE_RULE'), Config::get('REWRITE_ON'));
         }
         //execute action
         $controller = '\\app\\' . APP_NAME . '\\controller\\' . CONTROLLER_NAME . 'Controller';
         $action = ACTION_NAME;
         if (!class_exists($controller)) {
             throw new \Exception("Controller '{$controller}' not found", 404);
         }
         $obj = new $controller();
         if (!method_exists($obj, $action)) {
             throw new \Exception("Action '{$controller}::{$action}()' not found", 404);
         }
         Hook::listen('actionBefore', array($obj, $action));
         $obj->{$action}();
         Hook::listen('actionAfter', array($obj, $action));
     } catch (\Exception $e) {
         Hook::listen('appError', array($e));
     }
     Hook::listen('appEnd');
 }
Beispiel #2
0
/* config */
$dbUrl = getenv('DB_URL');
if ($dbUrl) {
    $config->parse($dbUrl);
} else {
    $config->set('dbType', 'sqlite');
    $config->set('dbHost', ':memory:');
}
/* database */
Db::construct($config);
Db::init();
/* installer */
$installer = new Installer($config);
$installer->init();
$installer->rawDrop();
$installer->rawCreate();
$installer->insertData(['adminName' => 'Test', 'adminUser' => 'test', 'adminPassword' => 'test', 'adminEmail' => '*****@*****.**']);
/* test user */
Db::forTablePrefix('users')->whereIdIs(1)->findOne()->set(['password' => 'test', 'description' => 'test', 'language' => 'en'])->save();
/* test module */
if (is_dir('modules/TestDummy')) {
    $testDummy = new Modules\TestDummy\TestDummy();
    $testDummy->install();
}
/* language */
$language = Language::getInstance();
$language->init();
/* hook */
Hook::construct($registry);
Hook::init();
Beispiel #3
0
<?php

namespace Redaxscript;

/* include as needed */
include_once 'includes/Autoloader.php';
include_once 'stubs/hook_function.php';
include_once 'stubs/hook_method.php';
include_once 'TestCase.php';
/* init */
Autoloader::init();
Request::init();
/* set config */
Config::set('type', 'mysql');
Config::set('host', 'redaxscript.com');
Config::set('name', 'd01ae38a');
Config::set('user', 'd01ae38a');
Config::set('password', 'travis');
/* registry and config */
$registry = Registry::getInstance();
$config = Config::getInstance();
/* database and hook */
Db::init($config);
Hook::init($registry);
/* language */
$language = Language::getInstance();
$language::init('en');
Beispiel #4
0
Hook::init('init[].node_content', function () {
    if (!cache('node__content_field')) {
        Yii::import("application.modules.node.models.NodeContent");
        Yii::import("application.modules.node.models.NodeField");
        $rows = NodeContent::model()->findAll(array('order' => 'sort desc,id desc'));
        if ($rows) {
            foreach ($rows as $v) {
                $data[$v->id] = $v->name;
                $data2[$v->id] = array($v->name, $v->discription);
                $id = $v->id;
                foreach ($v->fields as $f) {
                    $field[$id]['id'] = $f->id;
                    $field[$id]['name'] = $f->name;
                    $field[$id]['type'] = $f->type;
                    $field[$id]['widget'] = $f->widget;
                    $field_table[$v->name][$f->name] = $f;
                    $d[$v->name]['id'] = 'id';
                    $d[$v->name]['vid'] = 'vid';
                    $d[$v->name]['display'] = 'display';
                    $d[$v->name]['uid'] = 'uid';
                    $d[$v->name]['uuid'] = 'uuid';
                    $d[$v->name]['language_id'] = 'language_id';
                    $d[$v->name]['created'] = 'created';
                    $d[$v->name]['updated'] = 'updated';
                    $d[$v->name][$f->name] = $f->name;
                }
            }
            cache('node__content', $data);
            cache('node__contentfull', $data2);
            cache('node__field', $field);
            cache('node__content_field', $d);
            cache('node__field_table', $field_table);
        }
    }
});
Beispiel #5
0
 /**
  * 对字段加载HOOK,改变relation 的值
  */
 function hook()
 {
     Hook::init('model.NodeField_afterSave', function ($model) {
         CDB()->update('node_field', array('relation' => "attachments." . $model->name), 'id=:id', array(':id' => $model->id));
     });
 }