非常教程

Codeigniter 3参考手册

用户指南:教程 | User guide: Tutorial

静态页面 | Static pages

注:本教程假设您下载了CodeIgniter和安装了框架在您的开发环境中。

你要做的第一件事就是建立一个控制器处理静态页面。控制器只是一个帮助委派工作的类。它是您的web应用程序的胶水。

例如,当调用:

http://example.com/news/latest/10

我们可以想象有一个名为“新闻”的控制器。在新闻上调用的方法将是“最新的”。新闻方法的工作可以是抓取10个新闻项目,并在页面上呈现它们。在MVC中,您经常会看到与之匹配的URL模式:

[http://example.com/[controller-class]/[controller-method]/[arguments](about:blank#)]

随着URL方案变得更加复杂,这可能会发生变化。但就目前而言,这是我们需要知道的全部。

使用以下代码在application / controllers / Pages.php中创建一个文件。

<?php
class Pages extends CI_Controller {

        public function view($page = 'home')
        {
        }
}

您已创建一个名为的类Pages,并使用一个接受一个名为的参数的视图方法$page。本Pages类扩展CI_Controller类。这意味着新的页面类可以访问CI_Controller类(system / core / Controller.php)中定义的方法和变量。

控制器是什么将成为每个请求的中心到Web应用程序。在非常技术性的CodeIgniter讨论中,它可能被称为超级对象。像任何php类一样,您可以在您的控制器中将其称为$this。参考$this你将如何加载库,视图,并通常命令框架。

现在您已经创建了第一个方法,现在可以制作一些基本的页面模板。我们将创建两个充当页面页脚和页眉的“视图”(页面模板)。

应用程序/视图/模板/Header.php并添加以下代码:

<html>
        <head>
                <title>CodeIgniter Tutorial</title>
        </head>
        <body>

                <h1><?php echo $title; ?></h1>

标题包含加载主视图之前要显示的基本HTML代码以及标题。它还将输出$title变量,稍后我们将在控制器中定义该变量。现在,在应用程序/视图/模板/footer.php其中包括以下代码:

                <em>&copy; 2015</em>
        </body>
</html>

向控制器添加逻辑

之前,您使用view()方法。该方法接受一个参数,该参数是要加载的页面的名称。静态页面模板将位于申请/浏览/网页/目录。

在该目录中,创建两个名为home.phpabout.php的文件。在这些文件中,键入一些文本 - 任何你想要的 - 并保存它们。如果你喜欢特别的非原创,请尝试“Hello World!”。

为了加载这些页面,您必须检查请求的页面是否实际存在:

public function view($page = 'home')
{
        if ( ! file_exists(APPPATH.'views/pages/'.$page.'.php'))
        {
                // Whoops, we don't have a page for that!
                show_404();
        }

        $data['title'] = ucfirst($page); // Capitalize the first letter

        $this->load->view('templates/header', $data);
        $this->load->view('pages/'.$page, $data);
        $this->load->view('templates/footer', $data);
}

现在,当页面确实存在时,它将被加载,包括页眉和页脚,并显示给用户。如果该页不存在,则会显示“404页未找到”错误。

此方法的第一行检查页面是否实际存在。PHP本机file_exists()函数用于检查文件是否位于预期的位置。show_404()是一个内置的CodeIgniter函数,它呈现默认错误页。

在标头模板中,$title变量用于自定义页面标题。标题的值是在此方法中定义的,但是它不是将值赋值给变量,而是分配给$data阵列。

最后要做的事情是按显示视图的顺序加载视图。中的第二个参数。view()方法用于向视图传递值。中的每个值。$data数组分配给具有其键名的变量。所以$data['title']在控制器中等效于$title在视野中。

选路

控制器现在正在运行!将您的浏览器指向[your-site-url]index.php/pages/view您的页面。当你访问index.php/pages/view/about你会看到关于页面,再次包括页眉和页脚。

使用自定义路由规则,您可以将任何URI映射到任何控制器和方法,并打破常规约定:http://example.com/[controller-class]/[controller-method]/[arguments]

我们就这么做吧。打开位于application/config/routeres.php并添加以下两行。中设置任何元素的所有其他代码。$route阵列。

$route['default_controller'] = 'pages/view';
$route['(:any)'] = 'pages/view/$1';

CodeIgniter从上到下读取其路由规则,并将请求路由到第一个匹配规则。每个规则是一个正则表达式(左侧)映射到一个控制器和方法名称用斜杠(右侧)分隔。当请求进入时,CodeIgniter会查找第一个匹配项,并可能使用参数调用相应的控制器和方法。

有关路由的更多信息可以在URI路由中找到。文献资料...

这里,第二条规则$routes数组匹配任何使用通配符字符串请求(:any).并将参数传递给view()方法Pages上课。

现在访问index.php/about。它是否正确路由到view()页面控制器中的方法?真棒!

Codeigniter 3

CodeIgniter 是一个PHP MVC框架,特点是超轻量级、有数据加密、有灵活URI路由等。对于 PHP 程序员来说,它小巧但功能强大。

主页 https://codeigniter.com/
源码 https://github.com/bcit-ci/CodeIgniter
版本 3
发布版本 3.1.5