codeigniter3项目实践,项目目录和公共配置文件

来源:互联网 发布:铁路抢票软件 编辑:程序博客网 时间:2024/06/06 19:23

近来做过一些中小型项目,用的轻量级codeigniter3,逐渐总结出一些经验,分享出来,希望对大家有所帮助。


一、 项目目录

之前我也百度+雅虎了一大堆国内国外的资料,最终结合了laravel的一些目录思路。整理出如下的项目结构。比如我项目名、域名是abc

config (公共配置目录)

shell (shell脚本目录,存放一些项目的定时脚本,可无)

storage (文件缓存目录)

system (ci系统目录,这个不需要多介绍了)

upload (文件上传目录) upload.abc.com

web_admin (系统后台)  admin.abc.com

web_www      (www前台) www.abc.com

web_wechat (微信端) wx.abc.com

……

总之web_开头的是一个子项目对应一个目录。其实也建议和二级域名相对应。

每个子项目下都新建一个public目录,里面放index.php和.htaccess(apapche才有)

每个子项目的二级域名,都配置对应的public目录(这是学习的laravel),如admin.ab.com配置网站根目录是web_admin/public/

优点是:1、整个public的目录,相当于只有index.php暴露出去,很安全。

2、如果是系统后台,不需要前端工程师参与的,public可以新建任意的css、image、js等目录,很方便访问。

3、如果是前后端分离的开发方式,也让前端工程师很方便整合,这个public目录除了一个index.php文件,其他都是给前端用,很简洁。


继续细化每个子目录:

config目录

1、config/config.php  公共的域名配置文件

比如我通常用

$config['site_name'] = 'XXX管理系统';$config['author'] = '周润发';$config['version'] = 'V1.1';$config['url_admin'] = 'http://admin.abc.com/';$config['url_www'] = 'http://www.abc.com/';$config['url_wechat'] = 'http://wx.abc.com/';$config['url_upload'] = 'http://upload.ai.com/';$config['dir_base'] = 'D:\\web\\abc\\'; //正式服务器用服务器上的目录$config['dir_upload'] = $config['dir_base'] . 'upload\\';
可以根据喜好自己配置

2、config/databases.php 数据配置文件

$db['default'] = array(    'dsn'=> '',    'hostname' => '127.0.0.1',    'username' => 'root',    'password' => '123456',    'database' => 'abc',    'dbdriver' => 'mysqli',    'dbprefix' => 'ai_',    'pconnect' => FALSE,    'db_debug' => (ENVIRONMENT !== 'production'),    'cache_on' => FALSE,    'cachedir' => '',    'char_set' => 'utf8',    'dbcollat' => 'utf8_general_ci',    'swap_pre' => '',    'encrypt' => FALSE,    'compress' => FALSE,    'stricton' => FALSE,    'failover' => array(),    'save_queries' => TRUE);
不用多说了,总之就是把数据配置文件独立出来,成为公共的,方便统一管理,而不用每个子项目去分别配置自己的database.php

3、其他公共配置,如config/wechat.php

$config['appid']  = 'wxXXXXX'; // 必填$config['appsecret'] = 'XXXXXXXXXXXXXX'; // 必填$config['token']  = 'XXXXX';$config['url']  = 'http://wx.abc.com/wechat/callback';//微信的回调,根据自己的项目对应写$config['encodingaeskey'] = 'XXXXXXX';$config['WECHAT_TPL_MESSAGE'] = array(    'welcome' => 'XXXXXX',//一些模版消息,这里不详细举例了,自己根据项目情况添加


各个子项目的config/config.php改动

比如web_admin/config/config.php

<?php//引入公共的站点配置文件require '../../config/config.php';$config['site_name'] = 'XXX后台管理系统';//……?>


web_admin/config/database.php

使用

require '../../config/database.php';

优点是1、公共的配置文件独立管理

2、 .gitignore直接排除整个config目录


storage目录

storage/cache 缓存

storage/logs 自己记录的一些日志

storage/sessions  如果是文件session的存储方式


累了,打盘LOL,就休息了,下一篇接着介绍。


原创粉丝点击