codeigniter 1.7和最新版本之间是否存在重大差异


Is there a major difference between codeigniter 1.7 and the latest version?

基本上,我今天开始学习codeigniter,并买了一本关于这个主题的书。这本书参考了1.7版,我正在使用的版本是2.1版。

书中有一个控制器的例子,看起来是这样的:

<?php
class Start extends CI_Controller {
var    $base;
var    $css;

    function Start(){ 
        parent::CI_Controller();
        $this->base = $this->config->item('base_url');
    $this->css = $this->config->item('css');      
        }            
function hello($name)
{
$data['css'] = $this->css;
$data['base'] = $this->base;
$data['mytitle'] = 'Welcome to this site';
$data['mytext'] = "Hello, $name, now we're getting dynamic!";
    $this->load->view('testview', $data);
   }  
}

然而,只有当我删除以下功能时,它才会起作用:

function Start(){ 
        parent::CI_Controller();
        $this->base = $this->config->item('base_url');
    $this->css = $this->config->item('css');      
        }

有人知道为什么吗?如果是,我该如何从配置中调用我的css文件。

编辑:视图:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Web Test Site</title>
<link rel="stylesheet" type="text/css" href="<?php echo $base . "/" . $css; ?>">
</head>
<body>
<h1><?php echo $mytitle; ?></h1>
<p class='test'> <?php echo $mytext; ?> </p>
</body>
</html>

任何帮助都将不胜感激。谢谢

有很多更改-如果您不想知道确切的内容,您应该查看更改日志。

在不知道你的书告诉你要做什么的情况下,我只能给你一些指导,让你的代码工作。

首先,当在CI2.1中创建控制器时,您应该使用PHP5 OOP样式编写它,而不是像您在示例中所做的那样使用PHP4 OOP样式。

一个简单的例子:

<?php
class Start extends CI_Controller {
    public function index()
    {
        echo 'Hello World!';
    }
}
?>

现在,这是你的基本控制器,它只会回应"你好,世界!"当访问CCD_ 1时
如果你需要做一些事情,在使用index()方法之前获取配置变量或加载一些模型/库,你应该创建一个__construct()方法,该方法在Start控制器安装时调用。此__construct()方法需要从CI_Controller(从中扩展的父级)调用构造。您可以通过在自己的构造方法中键入parent::__construct();来实现这一点:

<?php
class Start extends CI_Controller {
    public function __construct()
    {
      parent::__construct();
      //call models, variables, whatever here
    }
    public function index()
    {
        echo 'Hello World!';
    }
}
?>

这基本上就是你需要知道的关于让你的控制器工作。

我不知道"从配置中调用你的css文件"是什么意思-我不知道css配置项包含什么,也不知道这本书希望你用它做什么。