首次安装完tp5,运行http://127.0.0.1/tp5/public/index.php
结果如下:
如何输出hello world呢,我们该从何处入手呢?
首先,我们打开public目录下的index.php文件,只有两行代码:
// 定义应用目录 define('APP_PATH', __DIR__ . '/../application/'); // 加载框架引导文件 require __DIR__ . '/../thinkphp/start.php';
这两行代码暂时不要动,真正需要改写的文件是application\index\controller\Index.php,见下图:
打开这个文件,会发现这些代码:
<?php
namespace app\index\controller;
class Index
{
public function index()
{
return '<style type="text/css">*{ padding: 0; margin: 0; } .think_default_text{ padding: 4px 48px;} a{color:#2E5CD5;cursor: pointer;text-decoration: none} a:hover{text-decoration:underline; } body{ background: #fff; font-family: "Century Gothic","Microsoft yahei"; color: #333;font-size:18px} h1{ font-size: 100px; font-weight: normal; margin-bottom: 12px; } p{ line-height: 1.6em; font-size: 42px }</style><div style="padding: 24px 48px;"> <h1>:)</h1><p> ThinkPHP V5<br/><span style="font-size:30px">十年磨一剑 - 为API开发设计的高性能框架</span></p><span style="font-size:22px;">[ V5.0 版本由 <a href="http://www.qiniu.com" target="qiniu">七牛云</a> 独家赞助发布 ]</span></div><script type="text/javascript" src="https://tajs.qq.com/stats?sId=9347272" charset="UTF-8"></script><script type="text/javascript" src="https://e.topthink.com/Public/static/client.js"></script><think id="ad_bd568ce7058a1091"></think>';
}
}
这里定义了一个Index类,我们把代码改写如下:
<?php
namespace app\index\controller;
class Index
{
public function index()
{
echo 'hello world';
}
}
运行结果就会变成hello world
我们讲解TP5的运行原理,当输入 http://127.0.0.1/tp5/public/index.php,程序会运行index模块中的index控制器的index方法。
在TP5中的配置文件中,指定了默认的模块、控制器和方法,见application目录下的config.php文件,找到以下代码:
// +----------------------------------------------------------------------
// | 模块设置
// +----------------------------------------------------------------------
// 默认模块名
'default_module' => 'index',
// 禁止访问模块
'deny_module_list' => ['common'],
// 默认控制器名
'default_controller' => 'Index',
// 默认操作名
'default_action' => 'index',
// 默认验证器
'default_validate' => '',
// 默认的空控制器名
'empty_controller' => 'Error',
// 操作方法后缀
'action_suffix' => '',
// 自动搜索控制器
'controller_auto_search' => false,
其中default_module,default_controller,default_action 已经设置好默认的模块、控制器和方法,当我们输入的url中缺少这些时,就会使用默认值。
输入http://127.0.0.1/tp5/public/index.php 和输入 http://127.0.0.1/tp5/public/index.php/index/index/index 结果是一样的。
我们在index控制器添加一个方法,见下面代码:
<?php
namespace app\index\controller;
class Index
{
public function index()
{
echo 'hello world';
}
public function show()
{
echo '欢迎学习TP5';
}
}
在浏览器输入http://127.0.0.1/tp5/public/index.php/index/index/show
运行结果: