静态页面 | Static pages (User guide: Tutorial) – Codeigniter 3 中文开发手册

作者: Arvin Chen 分类: php 来源: Break易站(www.breakyizhan.com)
  •   Codeigniter 3 中文开发手册

    静态页面 | Static pages (User guide: Tutorial) - Codeigniter 3 中文开发手册

    注:本教程假设您下载了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>© 2015</em>
            </body>
    </html>

    向控制器添加逻辑

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

    在该目录中,创建两个名为home.php和about.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 中文开发手册
  •   本文标题:静态页面 | Static pages (User guide: Tutorial) – Codeigniter 3 中文开发手册 - Break易站
    转载请保留页面地址:https://www.breakyizhan.com/php/36097.html
      微信返利机器人
      免费:淘宝,京东,拼多多优惠券
      腾讯,爱奇艺,优酷的VIP视频免费解析,免费看
      即刻扫描二维码,添加微信机器人!

    发表笔记

    电子邮件地址不会被公开。 必填项已用*标注