Gene\Application 是gene框架的启动方法类,使用该类下的方法初始化一个应用、加载全局配置、路由定义、设置类加载器、启动应用等。
对于gene应用,初始化一个项目时可以通过设置一个项目名称来标志一个应用. 在其他框架里面通常根据目录区别不同的项目,在gene框架里面放弃了这种方式,通过设置自定义的项目标志来区别不同的应用,如此:同一根目录下的入口文件理论上支持任意的项目了。
参数 | 类型 | 是否必填 | 注释 |
---|---|---|---|
appName | String | 否 | 项目标志:默认当前目录 |
返回值: Gene\Application实例化对象本身。
//实例化一个demo应用
$app = new Gene\Application('demo');
加载指定配置文件,由于配置文件加载后保存到进程内存中了,不需要每次请求都加载。因此,系统默认10秒后检测配置文件是否修改,如果修改了,就会重新加载配置文件到进程内存。
参数 | 类型 | 是否必填 | 注释 |
---|---|---|---|
fileName | String | 是 | 配置文件名称 |
filePath | String | 否 | 配置文件目录:默认autoload方法指定目录 |
time | int | 否 | 加载检测时间:默认10秒 |
返回值: Gene\Application实例化对象本身。
//实例化一个demo应用
$app = new Gene\Application('demo');
//加载路由文件
$app->load("router.ini.php")
//加载配置文件
->load("config.ini.php");
设置类自动加载,可以自定义加载函数。
参数 | 类型 | 是否必填 | 注释 |
---|---|---|---|
path | String | 是 | app项目路径 |
loadCallBack | String | 否 | 自定义加载回调函数:默认框架load方法处理 |
返回值: gene_application实例化对象本身。
define('APP_ROOT', __dir__ . '/app');
//实例化一个demo应用
$app = new Gene\Application('demo');
//设置项目路径
$app->autoload(APP_ROOT);
设置运行异常模式
参数 | 类型 | 是否必填 | 注释 |
---|---|---|---|
error | int | 否 | 是否将error转为exception:默认0不启用,1 为启用 |
exception | int | 否 | 是否获取exception后处理:默认0不启用,1 为启用 |
返回值: Gene\Application实例化对象本身。
$app = new Gene\Application();
$app
->load("router.ini.php")
->load("config.ini.php")
->setMode(1,1)
设置模版自定义路径、模版后缀
参数 | 类型 | 是否必填 | 注释 |
---|---|---|---|
path | int | 否 | 路径:默认app/Views |
ext | int | 否 | 自定义后缀:默认.php |
返回值: Gene\Application实例化对象本身。
$app = new Gene\Application();
$app
->load("router.ini.php")
->load("config.ini.php")
->setView(null, '.htm')
设置是否处理异常
参数 | 类型 | 是否必填 | 注释 |
---|---|---|---|
error | int | 否 | 是否将error转为exception:默认0为不启用,1为启用 |
errorCallBack | String | 否 | 错误处理回调:默认框架处理 |
返回值: Gene\Application实例化对象本身。
$app = new Gene\Application();
$app
->load("router.ini.php")
->load("config.ini.php")
->error(1)
设置是否处理异常
参数 | 类型 | 是否必填 | 注释 |
---|---|---|---|
exception | int | 否 | 是否获取exception后处理:默认0为不启用,1为启用 |
exCallBack | String | 否 | 异常处理回调:默认框架处理 |
返回值: Gene\Application实例化对象本身。
$app = new Gene\Application();
$app
->load("router.ini.php")
->load("config.ini.php")
->exception(1)
该方法执行后会运行整个应用。默认web应用可以不传参数,如果是cli方式下访问或者执行任务,则需要传递参数。
参数 | 类型 | 是否必填 | 注释 |
---|---|---|---|
method | String | 否 | 请求方式(默认自动取访问方式:get、post等) |
path | String | 否 | 请求路径(默认自动取访问路径:比如/admin/login) |
返回值: Gene\Application实例化对象本身。
//实例化一个demo应用
$app = new Gene\Application('demo');
//加载路由文件
$app->load("router.ini.php")
//加载配置文件
->load("config.ini.php");
->run();
//实例化一个demo应用
$app = new Gene\Application('demo');
//加载路由文件
$app->load("router.ini.php")
//加载配置文件
->load("config.ini.php");
->run('get', '/admin/task')
获取当前访问的方式,可选值为get,post,put,patch,delete,trace,connect,options,head等。
无
返回值: String。
//获取访问方式
$method = Gene\Application::getMethod();
获取当前访问的Path,比如:/search/test/1.html。
无
返回值: String。
//获取访问路径
$path = Gene\Application::getPath();
获取当前访问的路由定义,比如path:/search/test/1.html,其路由定义为:/search/:name/:p.html。
无
返回值: String。
//获取路由定义
$path = Gene\Application::getRouterUri();
获取当前访问的路由定义的模块,比如path:/admin/user/add/1.html,其路由定义为:/:m/user/add/:id.html。
无
返回值: String。
//获取路由定义
$path = Gene\Application::getModule();
获取当前访问的路由定义的控制器,比如path:/user/add/1.html,其路由定义为:/:c/add/:id.html。
无
返回值: String。
//获取路由定义
$path = Gene\Application::getController();
获取当前访问的路由定义的操作,比如path:/user/add/1.html,其路由定义为:/user/:a/:id.html。
无
返回值: String。
//获取路由定义
$path = Gene\Application::getAction();
获取运行环境(定义在php.ini)。
参数 | 类型 | 是否必填 | 注释 |
---|---|---|---|
type | int | 否 | 设置运行环境变量值:可选 0、1 |
返回值: int。
//获取配置
echo Gene\Application::setEnvironment(1);
获取运行环境(定义在php.ini)。
无
返回值: int。
//获取配置
echo Gene\Application::getEnvironment();
获取配置变量。在配置文件里面写入的配置变量,可以通过这个方法获取。
参数 | 类型 | 是否必填 | 注释 |
---|---|---|---|
keyName | String | 是 | 变量名称 |
返回值: String or int or boolean or array。
//获取配置
$config = (array) Gene\Application::config($name);
取当前路由参数。
比喻路由定义:/search/:name/:p.html,那么urlParams返回数组为:array('name'=>'','p'=>'');
参数 | 类型 | 是否必填 | 注释 |
---|---|---|---|
keyName | String | 否 | 变量名称:不传key返回整个数组 |
返回值: mixed|array。
//获取url路由变量
$params = Gene\Application::params();