CodeIgniter学习之一(2011-09-18 12:38)
CodeIgniter框架相对于ZF而言身材苗条了很多,是个轻量级的框架。
优点
支持PHP4.3.2以上版本,尤其是国内很多空间服务商那里卖的大多是PHP4的空间。
开发&部署很容易,下载CodeIgniter解压到网站目录,访问你的URL会惊奇的发现网站已经可以访问了,虽然它只是一个DEMO页,框架为我们提供了一种快速开发的可能,这样就可以把所有心思放在业务逻辑上,设计Model,添加编写Control,然后在View里展示,一切就这么简单。
上手快,花费一个晚上阅读CodeIgniter手册,基本就可以进行工作了。
很灵活,框架提供了各种类库,能提供很多常用的基本功能,而且我们可以很方便的进行扩展。
体积小,速度快,整个框架核心部分只有5个文件,轻装上阵,当然跑的快^_^
缺点
有吗?有,但是这不会妨碍你喜欢这个框架的理由,框架中提供的类库有些确实简单了点,框架也没有提供像ZendFramework那样的丰富扩展,另外CodeIgniter的缓存做的确实不咋地,不建议使用,如果真的想要缓存,还是建议使用第三方的,比如MemCache,APC等。
和所有大部框架一样,CodeIgniter也实现了MVC模型,Model-View-Controller。最重要的就是Conroller,是整个系统的灵魂,所有数据的出入都要通过它来传递,起到了承上启下的作用。
控制器Controller
在CodeIgniter中创建控制器,在application/controllers路径下添加一个Demo.php,并添加下面的代码
class Demo extends Controller {
function Demo()
{
parent::Controller();
}
function index()
{
echo 'Hello world!';
}
}
?>
现在就可以访问“http://yoururl/index.php/demo/index”,页面将显示”Hello world!”,这里demo为控制器的名字,index为action的名字。在CodeIgniter中,默认Action为”index”,当默认控制器后面没有跟具体的action时,会默认载入‘index’ Action。
当你需要将Controller放置到子目录的时候,例如:application/controllers/admin/demo.php,那麽你访问你该控制器的时候可以这样:http://yoururl/index.php/admin/demo
在controller/下创建一个控制器文件index.php,文件中的代码如下
class Index extends Controller {
//构造函数
function Index()
{
parent::Controller();
$this->load->view('index');
}
}
?>
在application/views路径下添加”index.php”,在里面随便添加一些内容。
访问“http://yoururl/index.php/index/”奇迹出现了,View里的内容重复的输出两次,将代码改为如下就正常了:
class Index extends Controller {
//构造函数
function __construct()
{
parent::Controller();
}
//构造函数
function Index()
{
$this->load->view('index');
}
}
?>
至于导致这种情况的原因,是这样,首先在类实例化时,PHP执行了构造函数,执行了一次load->view,而随后框架调用了默认Action “index”,所以导致了输出两次,按照PHP5的方法将构造函数改为__construct则不会出现这种问题,或者不要把控制器命名为”index”。
小提示:PHP5中保留了对PHP4面向对象的兼容,包括构造函数,这里两个构造函数:Index和__construct,PHP5里会先执行__construct,当__construct不存在时执行Index,而PHP4中不会执行__construct。
作者:grev | 浏览:(579) | 评论:(0)