CodeIgniter 学习笔记

来源:互联网 发布:dbc物品数据库 编辑:程序博客网 时间:2024/05/02 14:30

想充分全面了解CodeIgniter的请自行阅读官方文档。本文章是使用CI时候的一些小技巧总结。


先简单介绍下CI,是一个极其轻量级的php framework。这个可以个YII比较下。php的framework 有一个最大的特点,MVC的层次很清晰,使用后会让你对Model, view, controller有更好的认识。


URL格式的更改: 去掉index.php, 在CI更目录下创建.htaccess文件,写入以下代码。记住要在apache里打开rewrite模块。

RewriteEngine on 
RewriteCond $1 !^(index\.php|images|css|javascript|robots\.txt|user_guide) 
RewriteRule ^(.*)$ /ci/index.php/$1 [L]

如果服务器是IIS的话,相对应的规则会有变化,加载方式也有所不同,下面只写出规则:

[ISAPI_Rewrite]
RewriteRule ^/(index.php|css|images|javascript|robots\.txt|upload)(.*)$ $0 [I,L]//$0 在这里表示原来的字符串。
RewriteRule ^/(.*)$ /index.php\?/$1 [I,L]  // $1 表示(.*)里面的内容,在IIS中最好把起始符^和结束符$写上去,在IIS6中可能会出现问题,IIS7上则没什么问题。


载入CSS,JS文件路径: 在CI下面使用相对路径不是很靠谱,所以需要用base_url函数来帮助组成绝对路径。由于base_url函数会涉及整个网站,所以建议在application的config文件夹下的autoload.php文件里面把url加到autoload['helper']里面。

<link href="<?=base_url('/css/header.css')?>" rel="stylesheet" type="text/css"/>
<link href="<?=base_url()?>/css/header.css" rel="stylesheet" type="text/css"/>


Controller载入Controller: 由于MVC设计的关系,controller每个都是独立的,所以在CI中是不能直接load的。当然你可以使用include方法根据路径强行load,但这违背了MVC的设计原理。这里有种方式,建立一个helper文件,把所有的函数扔到helper里面去,然后在里面可以用$CI =&get_instance();得到实例,进行加载,然后就可以使用controller了。最后只要在另一个controller里面load helper,然后使用里面的函数就达到了load controller的功能。


setcookie,虽然跟CI关系不大,但是还是有必要提一下的,它定义的cookie只正对当前目录。从php manual查到函数定义,如果要是作用域变为整个site,可以把第四个参数$path设为'/',如果想对cookie的作用域进行限制,则只要改变$path和$domain就行了,顺带提下最后个参数$httponly 是定义是否能在js端获取cookie。

bool setcookie ( string $name [, string $value [, int $expire = 0 [, string $path [, string $domain [,bool $secure = false [, bool $httponly = false ]]]]]] )

(至于session的话,只要加上session_start,然后对$_SESSION进行操作,可以无视作用域的问题)


未完待续。。。

原创粉丝点击