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

近来做过一些中小型项目,用的轻量级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,就休息了,下一篇接着介绍。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值