主页 > 程序语言 > thinkphp中smarty加载问题!

thinkphp中smarty加载问题!

2022-12-06 11:15来源:m.sf1369.com作者:宇宇

有没有更详细点的报错啊,怎么不用TP自带的模板引擎,要不你贴出具体点的代码看一下

如何搭建thinkphp学习开发环境

下载框架

进入官网下载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访问链接。

相关推荐

哪些编程语言是函数式的

程序语言 2024-01-14

VB编程的函数详解

程序语言 2024-01-02

c语言扑克牌问题

程序语言 2023-12-28

iphone语言与地区有什么用?

程序语言 2023-12-19

C语言程序,怎么使用,

程序语言 2023-12-17

把word嵌入到C#程序中

程序语言 2023-11-26

HTML是不是编程语言?

程序语言 2023-11-17