用YIIFramework的库开发
- ....
- Yii::createWebApplication($config); //没有run
Yii::import(class1,true),在将class1类文件路径存储时,同时include该文件
注意:你也可以将配置文件分为多个文件, // 例如: db.php, params.php等等 。Yii::import('db',true); main.php
- <?php
- // 取消下行的注释,来定义一个路径别名
- // Yii::setPathOfAlias('local','path/to/local-folder');
- // 这是 Web 应用配置的主体部分。任何可写的
- // CWebApplication 属性可以在这里配置。
- return array(
- // protected 目录的基础路径
- // 使用 Yii::app()->basePath 来访问
- 'basePath'=>dirname(__FILE__).DIRECTORY_SEPARATOR.'..',
- // 应用的名字
- // 使用 Yii::app()->name 来访问
- 'name'=>'My website',
- //路径别名
- // 可以是应用内部的路径,也可以是外部资源
- 'aliases'=>array(
- 'myExternalFramework'=>dirname(__FILE__).DIRECTORY_SEPARATOR.'..'.DIRECTORY_SEPARATOR.'..'.DIRECTORY_SEPARATOR.'myexternalframework'
- ),
- //维护程序时,这样子所有的请求转发到一个地方
- 'catchAllRequest'=>array('site/all'),
- //如何在应用程序处理请求之前执行一段操作?当然这个function方法要存在index.php
- 'onBeginRequest' => 'function',
- //building on above for a controller in the external
- //framework you can use the controller map to map the
- //controller path
- 'controllerMap'=>array('myController'=>'myExternalFramework.controllers.MyController'),
- // 默认的 controller
- 'defaultController'=>'site',
- // 用户语言(for Locale)
- 'language'=>'es',
- //信息和视图的语言
- 'sourceLanguage'=>'es',
- 'timeZone'=>'Asia/Shanghai',
- 'theme'=>'school',
- // 使用的字符集
- 'charset'=>'utf-8',
- // 预载入的应用组件
- 'preload'=>array('log'),
- // 自动载入的类
- 'import'=>array(
- 'application.models.*',
- 'application.components.*',
- ),
- // 可以使用 Yii::app()->params['paramName'] 访问的应用级别的参数
- 'params'=>array(
- 'adminEmail'=>'info@example.com',
- ),
- // 注意:你也可以将配置文件分为多个文件,
- // 例如: db.php, params.php 等等。
- // 你可以这样做:
- // 'params'=>require(dirname(__FILE__).'/params.php'),
- // 在 params.php 中你需要返回这个数组:
- // return array('adminEmail'=>'info@example.com');
- // 应用组件的配置
- 'components'=>array(
- // assets, 参考www.yiiframework.com/doc/api/CAssetManager
- 'assetManager'=>array(
- // 改变磁盘上的路径
- 'basePath'=>dirname(__FILE__).'/../../assets/',
- // 改变url
- 'baseUrl'=>'/web/assets/'
- ),
- 'errorHandler'=>array(// 用 'site/error' action 处理错误
- 'errorAction'=>'site/error',
- ),
- // 记录
- 'log'=>array(
- // 记录器的类
- 'class'=>'CLogRouter',
- // 在哪里存储日志
- 'routes'=>array(
- array(
- // 保存到文件中,其他选项是可用的
- 'class'=>'CFileLogRoute',
- // 什么内容保存到文件中? error 和 warning, info 和 trace 可以增加到这里
- 'levels'=>'error, warning',
- ),
- ),
- ),
- // 用户
- 'user'=>array(
- // 启用 cookie-based 验证
- 'allowAutoLogin'=>true,
- // 设置需要验证时用户被转到的 url
- // 使用 null 出现 43 HTTP 错误
- 'loginUrl'=>null,
- // 设置一个类的名字,
- // 这个类扩展自 CWebUser 并且保存在
- // protected/components/<classname> 中。
- 'class' => 'WebUser',
- ),
- // 数据库
- 'db'=>require(dirname(__FILE__).DIRECTORY_SEPARATOR.'db.php'),
- // 缓存
- 'cache'=>array(
- 'class'=>'A cache class, like: system.caching.CApcCache',
- ),
- 'session' => array( // memcache session cache
- 'class' =>'CCacheHttpSession',
- 'autoStart' => 1,
- 'sessionName' => 'frontend',
- 'cookieParams' => array('lifetime'=>'3600','path'=>'/','domain'=>'.test.com','httponly'=>'1'),
- 'cookieMode' => 'only',
- ),
- // url
- 'urlManager'=>array(
- // URL 格式。必须是 'path' 或 'get'。
- // path: index.php/controller/action/attribute/value
- // get: index.php?r=controller/action&attribute=value
- 'urlFormat'=>'path',
- // 显示为www.example.com/index.php/controller/action
- // 或www.example.com/controller/action
- 'showScriptName' => true,
- // 转向指定的 url 到你想要的 controller 的规则
- // 查阅www.yiiframework.com/doc/guide/topics.url
- 'rules'=>array(
- //www.example.com/home代替www.example.com/site/index
- 'home'=>'site/index',
- 'post/<id:\d+>'=>'post/show',
- ),
- ),
- // 你可以使用 scriptMap 来配置脚本来自哪里。
- //If you use the split configurations for development and production you can
- // have different maps in each and then just load the file and it'll
- // load the appropriate file depending on the configuration your running.
- // 对于一个生产环境的配置,如下
- 'clientScript'=>array(
- 'scriptMap'=>array(
- 'register.js'=>'site.min.js',
- 'login.js'=>'site.min.js',
- ),
- ),
- // 对于一个开发环境,可以这样做
- 'clientScript'=>array(
- 'scriptMap'=>array(
- 'register.js'=>'register.js',
- 'login.js'=>'login.js',
- ),
- ),
- ),
- );
params.php
- <?php
- return array(
- 'adminEmail'=>'info@example.com',
- 'pagesize'=>'100',
- 'pager'=>array(
- 'class'=>'PagerWidget',
- 'maxButtonCount'=>8,
- 'firstPageLabel'=>'首页',
- 'lastPageLabel'=>'末页',
- 'nextPageLabel'=>'下一页',
- 'prevPageLabel'=>'上一页',
- 'header'=>'',
- 'cssFile'=>false,
- ),
- );
index.php
配置环境常量,不同环境调用不同配置文件和调试级别。
- /**
- * 应用程序环境,可选:development,test,production,
- */
- defined('APP_ENV') or define('APP_ENV','development');
- // change the following paths if necessary
- if (APP_ENV == 'production') {
- error_reporting(0);
- $yii=dirname(__FILE__).'/../yii-svn/framework/yiilite.php';
- defined('YII_TRACE_LEVEL') or define('YII_TRACE_LEVEL',1);
- } else {
- ini_set('error_reporting',E_ALL);
- ini_set('display_errors',1);
- $yii=dirname(__FILE__).'/../yii-svn/framework/yii.php';
- // remove the following lines when in production mode
- defined('YII_DEBUG') or define('YII_DEBUG',true);
- // specify how many levels of call stack should be shown in each log message
- defined('YII_TRACE_LEVEL') or define('YII_TRACE_LEVEL',3);
- }
- $config=dirname(__FILE__).'/protected/config/'.APP_ENV.'.php';
- require_once($yii);
- Yii::createWebApplication($config)->run();
development.php
开启weblog,profile,数据库性能显示,数据库查询参数记录,GII
- <?php
- return CMap::mergeArray(
- require(dirname(__FILE__).'/main.php'),
- array(
- 'components'=>array(
- // uncomment the following to use a MySQL database
- 'db'=>require(dirname(__FILE__).'/db.php'),
- 'log'=>array(
- 'class'=>'CLogRouter',
- 'routes'=>array(
- array(
- 'class'=>'CFileLogRoute',
- 'levels'=>'error, warning',
- ),
- array(
- 'class'=>'CProfileLogRoute',
- ),
- array(
- 'class'=>'CWebLogRoute',
- ),
- ),
- ),
- ),
- 'modules'=>array(
- // uncomment the following to enable the Gii tool
- 'gii'=>array(
- 'class'=>'system.gii.GiiModule',
- 'password'=>'sa',
- // If removed, Gii defaults to localhost only. Edit carefully to taste.
- 'ipFilters'=>array('127.0.0.1','::1'),
- ),
- ),
- )
- );
production.php
开启数据库结构缓存,开启CEAcceleratorCache,关闭错误显示
- <?php
- return CMap::mergeArray(
- require(dirname(__FILE__).'/main.php'),
- array(
- 'components'=>array(
- // uncomment the following to use a MySQL database
- 'db'=>require(dirname(__FILE__).'/db.php'),
- 'log'=>array(
- 'class'=>'CLogRouter',
- 'routes'=>array(
- array(
- 'class'=>'CFileLogRoute',
- 'levels'=>'error, warning',
- )
- ),
- ),
- 'cache'=>array(
- 'class'=>'system.caching.CEAcceleratorCache',
- ),
- ),
- )
- );