betway必威-betway必威官方网站
做最好的网站

betway必威官方网站:thinkphp项目部署到Linux服务器

最近一个项目部署到Linux服务器上去的时候,发现某些模板竟然会报错说“模板不存在:/Application/Admin/....”

1.thinphp环境搭建

本文实例讲述了thinkphp模板用法和内容输出。分享给大家供大家参考。具体分析如下:

检查了服务器上的文件,并没有缺少文件,再次上传文件到服务器,还是报错。莫名其妙,怀疑是代码问题。

一、将thinkphp文件拿出来,对我们有用的是cof和library,其他对开发都没有作用。

一、模板的用法

仔细检查后,发现是模板的文件名问题

在thinkphp/library/think文件夹中几个重要的文件

模板文件夹下[TPL] /与模块名同名的文件夹[Index]/ 与方法名同名的文件[index].html模板文件夹下[TPL]/[分组文件夹/] /与模块名同名的文件夹[Index]/与方法名同名的文件[index].html模板文件夹下[TPL]/[分组文件夹/][模板主题文件夹/] /与模块名同名的文件夹[Index]/与方法名同名的文件[index].html此处的区别在于上级文件目录的设计不同,有的分组设计与应用关系,在分组设计模板时可以再分主题文件夹。更换模板文件的后缀名复制代码 代码如下:'TMPL_TEMPLATE_SUFFIX'=>'.html',//更改模板文件后缀名

用过TP的都知道:thinkphp会在$this->display()的时候,会自动获取方法名作为模板的文件名,比如一个getUserInfo方法对用着getuserinfo.html的模板文件。

1、App.class.php 框架的核心文件

b、如何处理模板目录层次太深的问题,可以在Tpl文件夹中建立一个 模板名_方法名.html 例如: Index_index.html

对控制器里的方法,我用驼峰命名法,而view层里的模板名,也是用了驼峰命名法。比如getUserInfo方法对应了getUserInfo.html的模板文件,但是!thinkphp在$this->display()的时候,读取方法名作为模板名,读出来的方法名是小写的,也就是要求模板名为getuserinfo.html。

2、think.class.php 每次请求都要执行的类

1'修改模板文件目录层次复制代码 代码如下:'TMPL_FILE_DEPR'=>'_',//修改模板文件目录层次,此处的_是对应模板文件名中的下划线。

在Windows下不区分文件名大小写,Linux会区分,所以报错了。

3、controller.class.php 控制器的父类

2、在里面写模板文件,就可使用新建立的模板文件了

解决办法:要么改模板文件名为小写,要么$this->display。

4、Model.class.php  模型的父类

c、模板主题,就是类似于QQ空间的主题,可以动态的选择模板主题文件。复制代码 代码如下:'DEFAULT_THEME'=>'your',//设置默认模板主题需要在TPL下面新建一个your文件夹作为模板主题文件夹,再建立Index文件夹,建立index.html

细节决定成败,希望这篇文章可以真正的帮助大家,谢谢大家的阅读。

5、view.class.php视图的父类

如何动态修改模板主题?

 

1、在后台准备一个功能,修改config.php文件中的默认模板项

二、真实开发中主要的是生成application,生成方法:

2、通过url传递 t=主题 参数可以修改不同的模板复制代码 代码如下:'DEFAULT_THEME'=>'your',//设置默认模板主题'TMPL_DETECT_THEME'=>true,//自动侦测模板主题'THEME_LIST'=>'your,my',//支持的模板主题列表访问方法localhost/thinkphp/index.php/Index/index?t=youlocalhost/thinkphp/index.php/Index/index/t/you模板主题不用一定要关闭

在thinkphp外面新建一个index.php代码如下

二、输出模板内容

<?php
echo "<mata charset='utf-8'/>";
define("APP_DEBUG",true);//开启调试模式
define("APP_PATH","./Application/");//app_path默认写法 第二个参数./目录名Application或Home
require"./ThinkPHP/ThinkPHP.php";//使用一下ThinkPHP.php
?>

1.display中没有参数复制代码 代码如下:$this->display();//默认调用方法相同的模板文件2.可以带参数复制代码 代码如下:$this->display;$this->display;$this->display;$this->display;//注意,仅仅需要在Tpl下有Public文件夹以及其中的error.html即可,不需要一定有Public模块,只要有这个文件夹就可以了$this->display;//需要开启主题支持$this->display;

3、创建控制器

希望本文所述对大家的ThinkPHP框架程序设计有所帮助。

1.控制器存在Controller文件夹内

2、命名规范:控制器的名称 Controller.class.php

3、 类名和文件名称要一致

4、类名要用驼峰方法即帕斯卡命名法:

       1、帕斯卡命名法:首字母大写 UserName

           2、骆驼命名法:user_name  

5、尽量区分大小写

6、thinkphp默认的编码UTF-8

7、如果地址没有写控制器则默认调用index控制器,如果没有写方法,则默认为index方法

 

原有的控制器代码如下 

<?php
// 本类由系统自动生成,仅供测试用途
namespace HomeController;//由于前面application已经命名了所以命名就是home下的controller
use ThinkController;   //应用think文件夹下的controller类
betway必威官方网站,class IndexController extends Controller {
public function index(){

$this->display("./Application/Home/index.html");//可以不写,也可以写绝对路径
}
public function show(){

$this->display();//不写的话就是一个控制器对应一个文件夹,一个方法对应一个文件,
}
}

新建控制器GoodController

 

本文由betway必威发布于编程开发,转载请注明出处:betway必威官方网站:thinkphp项目部署到Linux服务器

TAG标签: betway必威
Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。