4.3 KiB
Hello, World
差不多每个框架提供的教程实例都会包括 Hello,World 这样的例子,于是我们也遵循这样的传统!
下面我们将要创建一个非常非常基础的 Hello,World,然后我们将它慢慢扩展符合 MVC 架构的样例。
基础框架
首先,我们先要创建一个控制器,让 Kohana 可用于处理请求。
在 application 目录下创建 application/classes/controller/hello.php
文件并敲入下面代码:
<?php defined('SYSPATH') OR die('No Direct Script Access');
Class Controller_Hello extends Controller
{
function action_index()
{
echo 'hello, world!';
}
}
接着,让我们讲解一下上面的代码:
<?php defined('SYSPATH') OR die('No Direct Script Access');
- 首先你应该知道代码开头是 PHP 的开始标签(如果你不知道请先好好学习 PHP)。紧跟着它后面的是一段检测代码,以它来确保此文件是由 Kohana 来加载的。它会阻止访问者由 URL 上面直接访问本文件。
Class Controller_Hello extends Controller
- 这行代码是声明我们的控制器,每个控制器类都必须使用
Controller_
作为前缀,下划线的作用是划定文件夹路径下的控制器(详情请参见 约定和样式)。每个控制器都必须继承基控制器Controller
类,它提供了一个控制器的标准结构。 function action_index()
- 这里在我们的控制器定义了一个 "index" 动作。如果用户没有指定动作,那么 Kohana 默认调用这个动作。(详情请参见路由,URLs 和链接)
echo 'hello, world!';
- 这行就是输出 Hello world 的语句!
现在,打开浏览器敲入 http://localhost/index.php/hello 你将会看到:
继续增强
我们在上一节所做的是创建一个非常基础的 Kohana 应用是多么的容易。(实际上它太基本了以至于你可能不会再敲一次!)
如果你曾经听说过的 MVC 或者你可能已经意识到在控制器中输出内容是严格遵循 MVC 原则的。
使用 MVC 框架编程的正确方法是使用_视图_来处理程序的显示,而且最好是使用控制器来做 – 控制请求的流量!
让我们略微的改造原始的代码:
<?php defined('SYSPATH') OR die('No Direct Script Access');
Class Controller_Hello extends Controller_Template
{
public $template = 'site';
function action_index()
{
$this->template->message = 'hello, world!';
}
}
extends Controller_Template
- 现在我们继承了模板控制器(Template Controller),使用它可以更加方便在控制器中使用视图。
public $template = 'site';
- 模板控制器需要知道你想要使用什么模板文件。它会自动加载这个变量中定义的视图并返回一个视图对象。
$this->template->message = 'hello, world!';
$this->template
是我们站点模板的视图对象引用。这里我们分配一个名为 "message" 的变量其值为 "hello, world!" 到视图中。
现在让我们尝试运行代码...
出于某种原因 Kohana 会抛出一个不稳定的而没有正常显示我们期望的信息。
如果我们仔细查看错误信息,我们可以发现 View 库无法找到我们设定的模板文件,这可能是我们还没有创建它 – doh!(译注:doh 表达当发现事情朝坏的、不随人意的方向发展或某人说了傻话、做了蠢事时的情绪低落)
马上开始创建视图文件 application/views/site.php
:
<html>
<head>
<title>We've got a message for you!</title>
<style type="text/css">
body {font-family: Georgia;}
h1 {font-style: italic;}
</style>
</head>
<body>
<h1><?php echo $message; ?></h1>
<p>We just wanted to say it! :)</p>
</body>
</html>
再次刷新刚才的错误页面,怎么样看到正确的结果了吧:
第三阶段 – 成果!
在本教程中你已经学会如何创建和使用控制器,以及使用视图分离逻辑来显示视图。
这绝对是一个非常基本教程来介绍如何使用 Kohana 工作,且它根本就不会影响你的潜力使用它来开发应用。