2022-12-06 11:15来源:m.sf1369.com作者:宇宇
有没有更详细点的报错啊,怎么不用TP自带的模板引擎,要不你贴出具体点的代码看一下
下载框架
进入官网下载ThinkPHP ,这里选择 ThinkPHP3.1.3完整版。解压后目录为
把压缩包放在Web目录下面,所以我们需要在php的服务器软件xampp的htdocs目录下面建一个空文件夹hlm(项目名称自己随便取),然后在该文件夹下面再新建一个文件夹ThinkPHP,把目录里面的文件全部放在ThinkPHP里面。再新建一个Public文件夹存项目公共
的文件,如JS和CSS文件等。再新建一个项目文件夹home作为主要工程目录。
搭建本地项目
在项目目录下面新建,index.php文件
<?php
//定义项目名称
define('APP_NAME','home');
//定义项目路径
define('APP_PATH','./home/');
//开启调试模式
define('APP_DEBUG',true);
//加载框架入口文件
require'./ThinkPHP/ThinkPHP.php';
?>
开启apache服务器,访问网址 localhost://hlm出现如下界面
这个时候网站下面会自动生成目录,如下图所示:
配置路由
目前用到的目录是Lib下面的Action目录,存放类似于Java的Struts框架的Action。还有模板目录Tpl,下面存放的都是html文件,配合模板引擎用于前端显示。(在搭建环境的时候,有smarty模板引擎等开发经验和MVC框架的使用经验,可能更有助于理解)。然后在Action文件夹下面,新建一个AccountAction.class.php。命名规则为:模块名+class.php
<?php
class AccountAction extends Action
{
public function login(){
$this->display('login');
}
}
在Tpl目录下面放文件login.html用于显示。访问localhost/index.php/hlm/Account/login会跳转到login.html页面
这个是由于ThinkPHP采用了Pathinfo模式,控制器(模块)/动作采用在服务器新建文件.htacess,添加如下内容,可以重写路由,前提
是apache服务器下的httpd.conf的这一行注释去掉
LoadModulerewrite_module modules/mod_rewrite.so
<IfModulemod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
</IfModule>
配置好重写规则,正则表达式^(.*)$ 匹配任意字符,=> index,php。意思是任意地址访问的实际地址是index.php,而网页上面不会显示,这个方法经常用于实现伪静态,意思是说将这个反过来,网页的地址看起来是个静态的地址*.html,实际上跳转到其他的地址上。
伪静态的好处是SEO友好,更容易让搜索引擎搜索到。
现在我们可以通过localhost/hlm/Account/login来访问了。
ThinkPHP还支持路由功能,路由功能意思也很简单,就是和配置.htaccess文件重写路由一样,控制页面跳转,显示地址和实际跳转地址不一样。左边是显示地址,右边是实际跳转地址。配置方法是在Conf文件夹的config.php文件中添加以下语句。
<?php
return array(
//'配置项'=>'配置值'
'URL_ROUTE_RULES'=>array(
'login$' => 'Account/login'
),);
?>
现在我们可以通过url为localhost/hlm/login来访问
后面添加$符号代表不模糊匹配,意思是login1不算匹配,只有完全一样才匹配。
重写路由我理解的好处是能够简化url访问链接。