文档章节

CodeIgniter框架学习

b
 belllee
发布于 2017/02/15 21:45
字数 1137
阅读 22
收藏 0
点赞 0
评论 0

公司最近要做一个SCM系统。--供应链管理(Supply chain management,SCM)之前项目就想用PHP,但是没时间学习,这次正好既有时间,项目又简单,可以试试PHP了。

框架的选择:

初期只做简单的生产任务管理,只是需要一些表格展示,加上新手。所以选择的框架,简单易用即可。开始考虑的有Yii和CodeIgniter。分别下载到本地后试用了一下。最后选择了CI。考虑原因如下

1、相对来说CI使用更简单,解压缩后直接使用即可。

2、CI代码结构更清晰,加载数据和视图都很清晰。

3、url显示上Yii的模式不太习惯,还是CI的模式更传统清晰一点。

4、CI的方法不用默认加Action,感觉Yii默认前后缀太罗嗦了。

5、CI没有自带的CRDU工具,但是网上找到了grocery CRUD,比Yii的Gii更方便

安装:

CI下载后即可使用,简单配置一下配置文件(application/config/database.php)即可使用。主要是数据库信息。

grocery CRUD下载后解压缩,覆盖到CI根目录即可。

grocery CRUD的使用:

1、支持多语言,默认有中文,但是有些地方有错误,需要自己修改一下。\assets\grocery_crud\languages\chinese.php。可以在配置文件中指定protected $default_theme= 'datatables';    (\application\libraries\grocery_crud.php)

2、默认提供了两种模板datatables和flexigrid。可以在配置文件中指定。protected $language= 'chinese';

3、原始的grocery CRUD(1.3.3)不支持视图,简单排查了一下,发现代码自动给edit和delete生成url链接时会取表的主键,而视图则没有主键。此处发生异常application\libraries\grocery_crud.php  1438行。暂时规避办法:增加主键判断if($data->primary_key != null && $data->primary_key != false),不为false时再生成url。同时controller代码里屏蔽一下操作$this->grocery_crud->unset_operations();这样使用视图时就不能增删改了。实际使用视图也应该是不能增删改才对。

4、复杂的查询可以通过扩展grocery_CRUD_Model来实现。然后控制器里指定该model。参考:http://www.grocerycrud.com/documentation/options_functions/set_model

5、联查的时候比较爽,指定关系后,新建和修改时,关联的字段自动生成dropdown。参考http://www.grocerycrud.com/documentation/options_functions/set_relation

6、指定列里增加操作,可以使用add_action来自定义操作。http://www.grocerycrud.com/examples/add_action_example

7、界面录入中文一直失败,开始以为是代码有问题。最后发现是Mysql的表设置有问题。代码和mysql都设置成utf8.确认mysql保存中文支持后,就没有问题了。

8、application\libraries\grocery_crud.php  1429行 可以修改默认表格的显示行数。$data->default_per_page,

9、默认最大显示字符是20,可以在配置文件(application\config\grocery_crud.php )里修改$config['grocery_crud_character_limiter']= 200;

10、表格,新建,编辑的样式可以在(\assets\grocery_crud\themes\模板\views)view文件里修改。

11、表格中默认值的处理,可采用自定义显示的方式来实现。

$crud->callback_field('userid',array($this,'userid_callback')); 
function userid_callback()
{
	return '<input type="text" maxlength="50" value="12345678" name="userid" style="width:500px" readonly>';
}

12、列宽的设置,可以利用callback_field(add和edit)和callback_column(list)来指定

权限管理:

CI没有自带的权限管理模块,就找了一个权限管理组件tank_auth,参考:http://codeigniter.org.cn/forums/thread-9586-1-1.html  http://konyukhov.com/soft/tank_auth/

解压缩后复制到CI根目录。修改CI配置文件application\config\config\config.php.其中$config['encryption_key'](32位加密Key)和$config['sess_use_database']= TRUE;两个配置。然后访问登录页面index.php/auth/login就可以注册了。

邮件验证不需要和验证码太复杂暂时关闭了。application\config\config\tank_auth.php配置文件修改一下配置

$config['captcha_registration'] = FALSE;
$config['email_activation'] = FALSE;

到这里用户注册和登录都OK了。接下来就是如何使用用户权限了。参考资料:http://www.cnblogs.com/jiji262/archive/2012/06/15/2551066.html

登录成功后默认返回主页,当然你也可以切换到其他页面。在application\controllers\auth.php 71行,指定跳转的页面

如果需要对全县模块进行扩展,可以修改application\libraries\tank_auth.php。比如我们需要对账户进行分级管理。我就扩展了一个get_user_authority()方法。

日志:

CI提供了日志记录功能,但是默认的配置是关闭的,需要修改配置打开。application\config\config\config.php文件中的日志记录级别$config['log_threshold'] = 4;以及index.php文件中设置环境类型,来设置日志define('ENVIRONMENT', 'development');


© 著作权归作者所有

共有 人打赏支持
b
粉丝 0
博文 80
码字总数 14299
作品 0
浦东
程序员
使用CodeIgniter框架搭建RESTful API服务

使用CodeIgniter框架搭建RESTful API服务 发表于 2014-07-12 | 分类于 翻译笔记 | 6条评论 在2011年8月的时候,我写了一篇博客《使用CodeIgniter框架搭建RESTful API服务》,介绍了RESTful的...

thinkyoung ⋅ 2015/08/07 ⋅ 0

Windows10环境下Codelgniter安装及配置说明

CodeIgniter ,简称CI,是一套给 PHP 网站开发者使用的应用程序开发框架和工具包。 它的目标是让你能够更快速的开发,它提供了日常任务中所需的大量类库, 以及简单的接口和逻辑结构。通过减...

Yuanmes ⋅ 05/02 ⋅ 0

CodeIgniter中运用composer安装依赖包

基本信息 + CodeIgniter 版本:3.1.8+ Nginx: Tengine/2.1.2 (nginx/1.6.2)+ MySQL: Ver 14.14 Distrib 5.6.33, for Linux (x86_64) using EditLine wrapper+ PHP: 5.6.30+ Zend Engine ......

冷三叔 ⋅ 04/28 ⋅ 0

Laradock 7.0.2 发布,Docker 的 PHP 本地开发环境

Laradock 7.0.2 已发布,更新内容如下: 更新 Kibana 版本以匹配 Elasticsearch 的版本; 修复 php 5.6 drush “Segmentation fault” 报错; 修复 php 7.0 swoole 构建失败。 更多细节可查阅...

王练 ⋅ 06/20 ⋅ 0

CodeIgniter的伪静态配置

基本信息 + CodeIgniter 版本:3.1.8+ Nginx: Tengine/2.1.2 (nginx/1.6.2)+ MySQL: Ver 14.14 Distrib 5.6.33, for Linux (x86_64) using EditLine wrapper+ PHP: 5.6.30+ Zend Engine ......

冷三叔 ⋅ 04/28 ⋅ 0

PHP 开源网站管理系统 - POSCMS

POSCMS 介绍 PHP 开源网站管理系统(PhpOpenSourceCMS,简称POSCMS)以开放、开源、灵活为产品理念,基于 PHP+MYSQL+CI 框架开发的开源 Web 内容管理系统,程序完美兼容 PHP7 ,并在 PHP7 基...

天睿云计算 ⋅ 2017/05/19 ⋅ 1

POSCMS V3.2.18 发布,跨平台网站内容管理系统

POSCMS V3.2.18 已发布,PHP开源内容管理系统(PhpOpenSourceCMS简称POSCMS)是Php+Mysql开发的一款开源的跨平台网站内容管理系统。POSCMS系统基于CodeIgniter框架,具有良好扩展性和管理性。...

天睿云计算 ⋅ 04/24 ⋅ 0

php基于thinkphp、smarty\CodeIgniter构建的开源的淘宝客cms程序下载

现在有很多开源的淘宝客软件cms,很多人不知道,所以,提供该服务,完全开源,比市面上的加密的好很多, 这些开源的淘宝客程序代码写的都非常简约,适合学习观摩,所以,收集了一些优秀的开源...

616921521 ⋅ 05/30 ⋅ 0

Yaf 中使用 Larvael Eloquent ORM

本教程示例代码见:https://github.com/creazy412/yaf2eloquentorm 背景介绍 Yaf 是鸟哥(Laruence)在俩年前写的一个PHP扩展的MVC框架. 开发Yaf的目的是为了解决使用框架带来的性能下降的经...

老K8 ⋅ 05/31 ⋅ 0

php-Codeigniter使用redis

1、安装redis 首先计算机上必须已经装了redis服务(redis数据库)并运行,详见另一篇文章:http://blog.csdn.net/wzj0808/article/details/54891178 2、安装phpredis <1>下载 项目地址:htt...

梦梦阁 ⋅ 06/06 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Java NIO之字符集

1 字符集和编解码的概念 首先,解释一下什么是字符集。顾名思义,就是字符的集合。它的初衷是把现实世界的符号映射为计算机可以理解的字节。比如我创造一个字符集,叫做sex字符集,就包含两个...

士别三日 ⋅ 28分钟前 ⋅ 0

Spring Bean基础

1、Bean之间引用 <!--如果Bean配置在同一个XML文件中,使用local引用--><ref bean="someBean"/><!--如果Bean配置在不同的XML文件中,使用ref引用--><ref local="someBean"/> 其实两种......

霍淇滨 ⋅ 33分钟前 ⋅ 0

05、基于Consul+Upsync+Nginx实现动态负载均衡

1、Consul环境搭建 下载consul_0.7.5_linux_amd64.zip到/usr/local/src目录 cd /usr/local/srcwget https://releases.hashicorp.com/consul/0.7.5/consul_0.7.5_linux_amd64.zip 解压consu......

北岩 ⋅ 36分钟前 ⋅ 0

Webpack 4 api 了解与使用

webpack 最近升级到了 v4.5+版 01 官方不再支持 node4 以下版本 官方不再支持 node4 以下版本官方不再支持 node4 以下的版本,所以如果你的node版本太低,先开始升级node吧!话说node10 ...

NDweb ⋅ 46分钟前 ⋅ 0

使用nodeJs安装Vue-cli

Vue脚手架就是一个Vue框架开发环境 脚手架的意思是帮你快速开始一个vue的项目,也就是给你一套vue的结构,包含基础的依赖库,只需要 npm install就可以安装,让我们不需要为了编辑或者一些其...

木筏笔歆 ⋅ 今天 ⋅ 0

【微信小程序开发实战】0x00.开发前准备工作

写在开始 本人资深后端码农一枚,近期项目需求,接触到了微信小程序,将学习过程整理成文分享给小伙伴们,由于是边学边整理难免有表述不对的地方,望大家及时指正,感谢。 本人微信号: dream...

dreamans ⋅ 今天 ⋅ 0

linux redis的安装和php7下安装redis扩展

安装redis服务器 (1)下载安装包: $ wget http://download.redis.io/releases/redis-2.8.17.tar.gz (2)编译程序: $ tar xzf redis-2.8.17.tar.gz $ cd redis-2.8.17 $ make $ cd src &&......

concat ⋅ 今天 ⋅ 0

Guava EventBus源码解析

一、EventBus使用场景示例 Guava EventBus是事件发布/订阅框架,采用观察者模式,通过解耦发布者和订阅者简化事件(消息)的传递。这有点像简化版的MQ,除去了Broker,由EventBus托管了订阅&...

SaintTinyBoy ⋅ 今天 ⋅ 0

http怎么做自动跳转https

Apache 版本 如果需要整站跳转,则在网站的配置文件的<Directory>标签内,键入以下内容: RewriteEngine on RewriteCond %{SERVER_PORT} !^443$ RewriteRule ^(.*)?$ https://%{SERVER_NAME......

Helios51 ⋅ 今天 ⋅ 0

Python爬虫,抓取淘宝商品评论内容

作为一个资深吃货,网购各种零食是很频繁的,但是能否在浩瀚的商品库中找到合适的东西,就只能参考评论了!今天给大家分享用python做个抓取淘宝商品评论的小爬虫! 思路 我们就拿“德州扒鸡”...

python玩家 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部