예제 #1
0
파일: index.php 프로젝트: jzxyouok/phprs
 * $Id: index.php 525 2015-11-20 10:46:46Z yangmin.cao $
 * @author caoyangmin
 * @brief 入口
 */
use caoym\util\Logger;
use caoym\util\IoCFactory;
use caoym\util\exceptions\BadRequest;
use caoym\util\exceptions\NotFound;
use caoym\util\ClassLoader;
use caoym\util\exceptions\Forbidden;
ini_set('display_errors', 0);
ini_set('date.timezone', 'Asia/Shanghai');
$project_path = __DIR__;
$lib_path = $project_path . '/../lib/';
require_once $lib_path . '/caoym/AutoLoad.php';
ClassLoader::addInclude($project_path . '/apis/');
//Logger::$writer = Logger::$to_void; //日志不输出
//CLI调试时模拟请求
$_SERVER['REQUEST_METHOD'] = 'GET';
$_SERVER['REQUEST_URI'] = '/hw';
//依赖注入工厂, 通过此工厂创建的类自动注入配置中指定的属性(如果有的话)
//设置配置文件的替换字典, 如果配置文件中有用{}符号标记的变量, 配置文件加载时{}将被替换成指定的值
$factory = new IoCFactory($project_path . '/conf.json', array('lib_path' => $lib_path, 'app_root' => $project_path));
//创建路由器,第二个参数可选,表示用指定的属性列表覆盖配置文件中定义的属性列表
//对于RouterWithCache, 其属性url_begin用于指定路由的从哪一级开始匹配
//RouterWithCache创建时自动扫描其属性api_path指定的目录下的所有PHP文件(不扫描子目录),然后创建Router对象
//Router记录路由规则及对应的实现方法,Router将被缓存,当api_path目录下已加载的php文件修改时,缓存失效
//每次处理请求,api的实现类将被重新创建
$router = $factory->create('caoym\\phprs\\RouterWithCache');
$err = null;
$protocol = isset($_SERVER['SERVER_PROTOCOL']) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.0';
예제 #2
0
파일: AutoLoad.php 프로젝트: jzxyouok/phprs
<?php

/***************************************************************************
 *
 * Copyright (c) 2013 . All Rights Reserved
 *
 **************************************************************************/
/**
 * $Id: AutoLoad.php 56761 2014-12-08 05:17:37Z caoyangmin $
 * @author caoyangmin(caoyangmin@gmail.com)
 * @brief AutoLoad
 */
namespace caoym;

require __DIR__ . '/util/ClassLoader.php';
require __DIR__ . '/util/AutoClassLoader.php';
use caoym\util\ClassLoader;
ClassLoader::addInclude(dirname(__DIR__));
spl_autoload_register(array(__NAMESPACE__ . '\\util\\ClassLoader', 'autoLoad'));