setApplicationDir() 공개 정적인 메소드

设置应用路径
public static setApplicationDir ( array $dir )
$dir array
예제 #1
0
<?php

//应用入口
use Cml\Cml;
//定义项目根目录
define('CML_PROJECT_PATH', dirname(__DIR__));
//载入composer自动加载文件
$loader = (require CML_PROJECT_PATH . DIRECTORY_SEPARATOR . 'vendor/autoload.php');
//配置目录组成
Cml::setApplicationDir(['secure_src' => CML_PROJECT_PATH . DIRECTORY_SEPARATOR . 'proj3e5f9e47cd31239b6fd43a772c5a75b4', 'app_config_path_name' => 'Config', 'app_lang_path_name' => 'Lang', 'app_view_path_name' => 'View', 'app_controller_path_name' => 'Controller', 'app_static_path_name' => 'Resource']);
//根据上面配置的目录,配置其它目录
Cml::setApplicationDir(['apps_path' => Cml::getApplicationDir('secure_src') . '/Application', 'global_config_path' => Cml::getApplicationDir('secure_src') . '/' . Cml::getApplicationDir('app_config_path_name'), 'global_lang_path' => Cml::getApplicationDir('secure_src') . '/' . Cml::getApplicationDir('app_lang_path_name'), 'global_store_path' => Cml::getApplicationDir('secure_src') . '/Store', 'runtime_cache_path' => Cml::getApplicationDir('secure_src') . '/Store' . DIRECTORY_SEPARATOR . 'Cache', 'runtime_logs_path' => Cml::getApplicationDir('secure_src') . '/Store' . DIRECTORY_SEPARATOR . 'Logs']);
$loader->setPsr4('', Cml::getApplicationDir('apps_path'));
//注入服务并运行应用
//要注意的是这边只是做绑定并没有真正实例化
Cml::runApp(function () {
    /*********注意**********
     * 框架只要求php5.4+即可。但是下面用了php5.5的语法::class,
     * 如果php版本不支持::class的语法直接把相应的xxx::class改成字符串即可。
     * 如\Cml\ErrorOrException::class直接改成'\Cml\ErrorOrException'
     ***********************/
    //必须绑定。系统错误及异常捕获机制 如果想使用第三方的服务只要简单封装一个服务。实现\Cml\Interfaces\ErrorOrException接口即可
    Cml::getContainer()->singleton('cml_error_or_exception', \Cml\ErrorOrException::class);
    //Cml::getContainer()->singleton('cml_error_or_exception', \Cml\Service\Whoops::class);//Whoops封装服务使用前请安装Whoops. composer require filp/whoops
    //必须绑定。环境解析。自带的服务实现development/product/cli三种。可以根据需要实现更多的环境
    Cml::getContainer()->singleton('cml_environment', \Cml\Service\Environment::class);
    //必须绑定。系统日志驱动 内置\Cml\Logger\File::class|\Cml\Logger\Redis::class两种.
    //自定义服务实现\Cml\Interfaces\Logger接口即可或继承\Cml\Logger\Base再按需重载
    Cml::getContainer()->singleton('cml_log', \Cml\Logger\File::class);
    //必须绑定。路由
    //框架自带的路由支持restful分格的路由、路由分组。 在未声明/未匹配到路由规则时会按url映射到文件的方式来执行相应的控制器方法。具体参考 http://doc.cmlphp.com/devintro/route/readme.html。