Ejemplo n.º 1
0
 function Generator_Abstract()
 {
     FLEA::import(FLEA::getAppInfValue('scripts', 'appDir'));
     ob_start();
     $return = (include FLEA::getAppInfValue('scripts', 'appConfigFile'));
     ob_clean();
     if (isset($return['dbDSN'])) {
         FLEA::setAppInf('dbDSN', $return['dbDSN']);
     }
 }
Ejemplo n.º 2
0
 /**
  * 构造函数
  *
  * 负责根据用户的 session 设置载入语言文件
  *
  * @return Controller_OfficeBase
  */
 function Controller_ZobBase()
 {
     if (isset($_SESSION['LANG'])) {
         $lang = $_SESSION['LANG'];
         $languages = FLEA::getAppInf('languages');
         if (in_array($lang, $languages, true)) {
             FLEA::setAppInf('defaultLanguage', $lang);
         }
     }
     load_language('ui, exception');
 }
Ejemplo n.º 3
0
<?php

require 'FLEA.php';
$dbDSN = array('driver' => 'mysqlt', 'host' => 'localhost', 'login' => 'root', 'password' => '', 'database' => 'test');
FLEA::setAppInf('dbDSN', $dbDSN);
FLEA::setAppInf('internalCacheDir', 'D:/temp');
$dbo =& FLEA::getDBO();
$dbo->startTrans();
/**
 * 建立全部需要的权限
 */
$tablePermissions =& FLEA::getSingleton('FLEA_Acl_Table_Permissions');
/* @var $tablePermissions FLEA_Acl_Table_Permissions */
$permissions = array(array('name' => '/Project/Create'), array('name' => '/Project/View'), array('name' => '/Project/Edit'), array('name' => '/Project/Delete'), array('name' => '/Bug/Create'), array('name' => '/Bug/View'), array('name' => '/Bug/Edit'), array('name' => '/Bug/AddComment'), array('name' => '/Bug/SetFixed'), array('name' => '/Bug/SetClosed'), array('name' => '/Bug/Delete'));
$tablePermissions->createRowset($permissions);
$permissions = $tablePermissions->findAll();
FLEA::loadHelper('array');
$permissions = array_to_hashmap($permissions, 'name');
/**
 * 建立角色,并将权限绑定到角色上
 */
$tableRoles =& FLEA::getSingleton('FLEA_Acl_Table_Roles');
/* @var $tableRoles FLEA_Acl_Table_Roles */
$role = array('name' => 'ProjectManager', 'permissions' => array($permissions['/Project/Create'], $permissions['/Project/View'], $permissions['/Project/Edit'], $permissions['/Project/Delete'], $permissions['/Bug/Delete']));
$tableRoles->create($role);
$role = array('name' => 'Developer', 'permissions' => array($permissions['/Project/View'], $permissions['/Bug/View'], $permissions['/Bug/AddComment'], $permissions['/Bug/SetFixed'], $permissions['/Bug/Delete']));
$tableRoles->create($role);
$role = array('name' => 'Tester', 'permissions' => array($permissions['/Project/Create'], $permissions['/Bug/Create'], $permissions['/Bug/Edit'], $permissions['/Bug/View'], $permissions['/Bug/AddComment'], $permissions['/Bug/SetClosed']));
$tableRoles->create($role);
/**
 * 读取所有角色信息,并以角色名为索引
Ejemplo n.º 4
0
 /**
  * 执行指定的 Action 方法
  *
  * @param string $controllerName
  * @param string $actionName
  * @param string $controllerClass
  *
  * @return mixed
  */
 function _executeAction($controllerName, $actionName, $controllerClass)
 {
     $callback = FLEA::getAppInf('dispatcherFailedCallback');
     // 确定动作方法名
     $actionPrefix = FLEA::getAppInf('actionMethodPrefix');
     $actionMethod = $actionPrefix . $actionName . FLEA::getAppInf('actionMethodSuffix');
     $controller = null;
     $controllerClassFilename = null;
     do {
         // 载入控制对应的类定义
         if (!$this->_loadController($controllerClass)) {
             break;
         }
         // 构造控制器对象
         FLEA::setAppInf('FLEA.internal.currentControllerName', $controllerName);
         FLEA::setAppInf('FLEA.internal.currentActionName', $actionName);
         $controller =& new $controllerClass($controllerName);
         if (!method_exists($controller, $actionMethod)) {
             break;
         }
         if (method_exists($controller, '__setController')) {
             $controller->__setController($controllerName, $actionName);
         }
         if (method_exists($controller, '__setDispatcher')) {
             $controller->__setDispatcher($this);
         }
         // 调用 _beforeExecute() 方法
         if (method_exists($controller, '_beforeExecute')) {
             $controller->_beforeExecute($actionMethod);
         }
         // 执行 action 方法
         $ret = $controller->{$actionMethod}();
         // 调用 _afterExecute() 方法
         if (method_exists($controller, '_afterExecute')) {
             $controller->_afterExecute($actionMethod);
         }
         return $ret;
     } while (false);
     if ($callback) {
         // 检查是否调用应用程序设置的错误处理程序
         $args = array($controllerName, $actionName, $controllerClass);
         return call_user_func_array($callback, $args);
     }
     if (is_null($controller)) {
         FLEA::loadClass('FLEA_Exception_MissingController');
         __THROW(new FLEA_Exception_MissingController($controllerName, $actionName, $this->_requestBackup, $controllerClass, $actionMethod, $controllerClassFilename));
         return false;
     }
     FLEA::loadClass('FLEA_Exception_MissingAction');
     __THROW(new FLEA_Exception_MissingAction($controllerName, $actionName, $this->_requestBackup, $controllerClass, $actionMethod, $controllerClassFilename));
     return false;
 }
<?php

require '../../FLEA.php';
$dbDSN = array('driver' => 'mysqlt', 'host' => 'localhost', 'login' => 'root', 'password' => 'phpwind.net', 'database' => 'acl');
FLEA::setAppInf('dbDSN', $dbDSN);
FLEA::setAppInf('internalCacheDir', 'D:/usr/www/rbac/_Cache');
$dbo =& FLEA::getDBO();
$dbo->startTrans();
/**
 * 建立全部需要的权限
 */
$tablePermissions =& FLEA::getSingleton('FLEA_Acl_Table_Permissions');
/* @var $tablePermissions FLEA_Acl_Table_Permissions */
$permissions = array(array('name' => '/Project/Create'), array('name' => '/Project/View'), array('name' => '/Project/Edit'), array('name' => '/Project/Delete'), array('name' => '/Bug/Create'), array('name' => '/Bug/View'), array('name' => '/Bug/Edit'), array('name' => '/Bug/AddComment'), array('name' => '/Bug/SetFixed'), array('name' => '/Bug/SetClosed'), array('name' => '/Bug/Delete'));
$tablePermissions->createRowset($permissions);
$permissions = $tablePermissions->findAll();
FLEA::loadHelper('array');
$permissions = array_to_hashmap($permissions, 'name');
/**
 * 建立角色,并将权限绑定到角色上
 */
$tableRoles =& FLEA::getSingleton('FLEA_Acl_Table_Roles');
/* @var $tableRoles FLEA_Acl_Table_Roles */
$role = array('name' => 'ProjectManager', 'permissions' => array($permissions['/Project/Create'], $permissions['/Project/View'], $permissions['/Project/Edit'], $permissions['/Project/Delete'], $permissions['/Bug/Delete']));
$tableRoles->create($role);
$role = array('name' => 'Developer', 'permissions' => array($permissions['/Project/View'], $permissions['/Bug/View'], $permissions['/Bug/AddComment'], $permissions['/Bug/SetFixed'], $permissions['/Bug/Delete']));
$tableRoles->create($role);
$role = array('name' => 'Tester', 'permissions' => array($permissions['/Project/Create'], $permissions['/Bug/Create'], $permissions['/Bug/Edit'], $permissions['/Bug/View'], $permissions['/Bug/AddComment'], $permissions['/Bug/SetClosed']));
$tableRoles->create($role);
/**
 * 读取所有角色信息,并以角色名为索引
/**
 * 修改设置值(已经过时,用 FLEA::setAppInf() 代替)
 *
 * @param string $option
 * @param mixed $data
 * @deprecated
 */
function set_app_inf($option, $data = null)
{
    FLEA::setAppInf($option, $data);
}
Ejemplo n.º 7
0
<?php

define('ROOT_DIR', dirname(__FILE__));
require ROOT_DIR . '/Libs/FLEA/FLEA.php';
require ROOT_DIR . '/Libs/Config/sys_env.php';
FLEA::loadAppInf(ROOT_DIR . '/Libs/Config/FLEA_CONFIG.php');
//如果ACT文件存在 则加载 否则使用默认ACT文件
if (file_exists(ROOT_DIR . '/_Cache/ACT.php')) {
    FLEA::setAppInf('defaultControllerACTFile', ROOT_DIR . '/_Cache/ACT.php');
}
FLEA::import(ROOT_DIR . '/App');
//FLEA::loadClass('Sys_Core');
FLEA::runMVC();
/**
 * 无法找到控制器时的错误处理
 *
 */
function onDispatcherFailedCallback($controller, $action)
{
    echo "你所访问的控制器" . $controller . "中" . $action . "方法不存在";
    //redirect(url(null, null, array('requestUri' => $_SERVER['REQUEST_URI'])));
}
/**
 * 权限认证失败时的错误处理
 *
 */
function onAuthFailedCallback($controller, $action)
{
    $sessionKey = FLEA::getAppInf('RBACSessionKey');
    $username = $_SESSION[$sessionKey]['USERNAME'];
    if (empty($username)) {
Ejemplo n.º 8
0
 *
 * @copyright Copyright (c) 2005 - 2008 QeeYuan China Inc. (http://www.qeeyuan.com)
 * @author 起源科技 (www.qeeyuan.com)
 * @package Example
 * @subpackage Smarty
 * @version $Id: index.php 972 2007-10-09 20:56:54Z qeeyuan $
 */
/**
 * 首先引入 FleaPHP 的库文件,并会做一些基本的处理
 */
define('NO_LEGACY_FLEAPHP', true);
require './FLEA/FLEA.php';
require './config.inc.php';
/**
 * 指定数据库连接设置,TableDataGateway 会自动取出 dbDSN 设置来连接数据库。
 * FLEA::loadAppInf() 会用开发者指定的应用程序设置覆盖 FleaPHP 提供的默认设置。
 * 开发者可以使用 FLEA::getAppInf() 取出任意应用程序设置。
 */
/**
 * 要使用 Smarty,必须做两项准备工作
 *
 * 1、设置应用程序的 view 选项为 FLEA_View_Smarty;
 * 2、设置应用程序的 viewConfig 选项为数组,数组中必须包含
 *    smartyDir 选项,指示 Smarty 模版引擎源代码所在目录。
 *
 * 如果需要在构造 FLEA_View_Smarty 时就初始化 Smarty 模版引擎的设置,
 * 直接放置在 viewConfig 选项数组中即可。
 */
FLEA::setAppInf('urlMode', URL_PATHINFO);
FLEA::import(APP_DIR);
FLEA::runMVC();