thinkphp使用方法是什么

thinkphp使用方法是什么

一、项目部署

1、虚拟主机部署/本地部署

去掉public/index.php改到 根目录下/index.php。在网站根目录下建立文件index.php,内容如下

<?php// 定义应用目录define('APP_PATH', __DIR__ . '/apps/');// 加载框架引导文件require  './thinkphp/start.php';

这样基本上就可以了,这是最简单的配置。

立即学习“PHP免费学习笔记(深入)”;

2、服务器部署

服务器部署项目文件入口public ,优势:只给外人看到public目录下的文件,与public同级的文件,在外网是隐藏状态的,如:thinkphp、apps、extend、tests、vendor。更简单的意思就是通过域名是访问不到这些文件下内容的,但又不影响框架的使用。

二、创建模块(自动生成模块)

我的项目是部署在本地www/thinkphp 目录下。在做之前,先要考虑清楚,你需要几个模块来完成你的项目。

开始实例

1、创建三个模块 Common(公共模块),Home(前台模块),Admin(后台模块)。公共模块是必不可少的。

修改的情况下为public下的index.php,打开是这样子的

// 定义应用目录define('APP_PATH', __DIR__ . '/../application/');// 加载框架引导文件require __DIR__ . '/../thinkphp/start.php';

在后面加上这两句

$build = include '../build.php';// 运行自动生成thinkBuild::run($build);

build.php配置 (自动生成目录) 手册参考:http://www.kancloud.cn/manual/thinkphp5/118021

在项目的根目录有一个build.php文件,打开后看到是这样的:

 ['common.php', 'config.php', 'database.php'],     // 定义demo模块的自动生成 (按照实际定义的文件名生成)    'demo'     => [        '__file__'   => ['common.php'],        '__dir__'    => ['behavior', 'controller', 'model', 'view'],        'controller' => ['Index', 'Test', 'UserType'],        'model'      => ['User', 'UserType'],        'view'       => ['index/index'],    ],    // 其他更多的模块定义];

然后我们给我们需要的文件名在这个地方加上,给的demo可以直接注释掉,如下:

 ['common.php', 'config.php', 'database.php'],    //公共模块目录    'common' => [        '__file__'   => ['common.php'],        '__dir__'    => ['controller', 'model','lang'],        'controller' => ['Index'],        'model'      => ['Base'],    ],    // Index模块    'home'     => [        '__file__'   => ['common.php'],        '__dir__'    => ['behavior', 'controller', 'model', 'view','lang'],        'controller' => ['Index'],        'model'      => ['Test'],        'view'       => ['index/index'],    ],    // Admin 模块    'admin'     => [        '__file__'   => ['common.php'],        '__dir__'    => ['behavior', 'controller', 'model', 'view','lang'],        'controller' => ['Index'],        'model'      => ['Test'],        'view'       => ['index/index'],    ], ];

1)其中的SITE_PATH,与 RUNTIME_PATH后面都有用到,所有优先放在index.php里面方便后面调用。

2)这两个东西,要放一起使用

$build = include './build.php';// 运行自动生成thinkBuild::run($build);

相关推荐:《ThinkPHP教程》

三、创建基类

开干之前,得先设置好“基类”,为什么呢?打个比方,要访问会员中心相关的控制器,这类控制器是不是都要有一个“登录限制”,才让访问会员相关的控制器? 基类的作用就出来了。

1、创建三大基类

原始基类

位置:thinkphpappscommoncontrollerbase.php

作用:base模块下的内容,Index模块,和Admin模块都可以调用。

代码:

<?php/** * 原始基类 * */namespace appCommoncontroller;use  thinkController;class Base extends Controller{    public function _initialize()    {        parent::_initialize();        echo '原始基类';    }    public function test1(){        return 'test1';    }}

Index模块基类

位置:thinkphpappscommoncontrollerbase.php

作用:Index模块下的控制器,都要“继承基类”并且“调用基类”。

代码:

<?php/** * 前端基类 * */namespace appindexcontroller;use  appCommoncontrollerBase;class IndexBase extends  Base{    public function _initialize()    {        parent::_initialize();    }    public function index()    {            }}

Admin模块基类

位置:thinkphpappscommoncontrollerbase.php

作用:Admin模块下的控制器,都要“继承基类”并且“调用基类”。

代码:

/** * 后台首页 * */namespace appAdmincontroller;use appAdmincontrollerAdminBase;class Index extends AdminBase{    public function _initialize()    {        parent::_initialize();    }    public function index()    {        return $this->fetch();    }}

(User模块基类,如果有会员的话,这个也必须要创建的)

创建基类的主要目的,就是“继承”与“调用”。

四、设置模板路径

默认的模板路径在模块/view文件里面。如果你觉得这样不太方便管理,想要把他设置Template目录下,可以这样做。

模板参数 ,能够影响的它参数,是当前模块下config.php template->view_path参数。

实际操作

1、配置共享参数

在apps/config.php设置一些参数,方便在Index或Admin模块下config.php调用。

apps/config.php,增加一些参数。

'template'               => [// 模板路径        'view_path'    => 'template/',     // 就是这里/**     * 前台文件配置     * Author: MR.zhou     * */    'index' => [        // 模快名称        'model_name' =>'index',        // 默认模板文件名称        'default_template' => 'default',       // 这里可以切换模块下的默认模板名称    ],    /**     * 后台文件配置     * Author: MR.zhou     * */    'admin'=>[        // 模快名称        'model_name' =>'admin',        // 默认模板文件名称        'default_template' =>'default',        // 这里可以切换模块下的默认模板名称],

2、设置模板参数

index/config.php

'template'=> [    // 模板路径    'view_path'=> config('template.view_path').config('index.model_name').'/'.config('index.default_template').'/',],

admin/config.php

 [        // 模板路径        'view_path'    => config('template.view_path').config('admin.model_name').'/'.config('index.        default_template').'/',    ],];

扩展:

1.模板后缀view_suffix,它的影响

http://localhost/thinkphp/index/news/index/id/1212

http://localhost/thinkphp/index/news/index/id/1212.html

五、配置data文件夹

如果你看项目下的各种文件,有种乱七八糟的感觉的话,你就可以进行以下配置。

配置data文件夹的,整理各种文件,让看起来舒服些。

1、设置runtime文件夹

index.php

define('RUNTIME_PATH', __DIR__ . '/data/runtime/');

2、设置upload,存放上传图片、上传文件

3、设置static,存放jquery.js、bootstrap、一些效果插件什么的

// 视图输出字符串内容替换'view_replace_str'       => [    '__DATA__' => SITE_PATH.'data/',    // 上传文件路径    '__UPLOAD__' =>SITE_PATH.'data/upload/',    //  静态文件路径 (如bootshop,js,css)    '__STATIC__' =>SITE_PATH.'data/upload/',    ],

4、定义模板文件路径,方便调用模板下的css、js、images

'view_replace_str'       => [    // 模板文件路径    '__TEMPLATE__' => config('template.view_path').config('index.model_name').'/'.config('index.default_template')    .'/',    // 模板下的共享文件路径(css,js,images...)    '__PUBLIC__' => SITE_PATH.'/'.config('template.view_path').config('index.model_name').'/'.config('index.    default_template').'/public/',],

模板页引用:

thinkphp使用方法是什么

5、想放什么都可以,自己设置 

六、公共模块common的使用

法语写作助手 法语写作助手

法语助手旗下的AI智能写作平台,支持语法、拼写自动纠错,一键改写、润色你的法语作文。

法语写作助手 31 查看详情 法语写作助手

common模块属于公共模块,Thinkphp框架,默认就能调用。

实际用处:任何模块都可能用到的模型、控制、事件提取出来放到公共模块下。

1、公共事件 appscommoncommon.php

作用:一般存放密码加密、下拉框封装、读取某文件夹下文件

/** * 密码加密 * @param string $password * @param string $password_salt * @return string */function password($password, $password_salt){    return md5(md5($password) . md5($password_salt));}

2、公共配置 appscommonconfig.php

把Index模块、Admin模块公用的部分提取出来放到这里面,如:公用的模板路径

'template'               => [    // 模板路径    'view_path'    => 'template/',]

3、公共语言包 appscommonlangzh-cn.php

比如经常用到的词 提交成功、提交失败、执行成功、执行错误、添加成功、添加失败、修改成功、修改失败、删除成功、删除失败… 可以放到公共语言包,在Index模块、Admin模块都可以用的到。

 '执行成功',    'error'            => '执行失败',    'add_success'      => '添加成功',    'add_error'        => '添加失败',    'edit_success'     => '修改成功',    'edit_error'       => '修改失败',    'delete_success'   => '删除成功',    'delete_error'     => '删除失败',];

php页面调用:$lang = lang(‘success’)

html页面调用:{:lang(‘success’)}

4、公共控制器 appscommoncommon.php

跟上面差不多个意思 Index模块、Admin模块都能用到的放这里。

5、公共模块 appscommoncommon.php

跟上面差不多个意思 Index模块、Admin模块都能用到的放这里。

七、设置错误页面①

设置网站的错误提示页面,也是一个很重要的环节。

1、空操作

在当前控制器里面增加_empty操作

public function _empty(){    $this->error('方法不存在');}Public function index(){       }

测试方法:

正常:

http://localhost/thinkphp/index/index/index

错误: 会提示“方法不存在”

http://localhost/thinkphp/index/index/df

2、空控制器

在模块下建立Error控制器,

位置: index/error.php 相关参数:empty_controller

代码:

<?php/** * 前端首页 * */namespace appindexcontroller;use appindexcontroller;class Error extends IndexBase{    public function index(){        echo '访问的控制器不存在';    }}

测试:http://localhost/thinkphp/index/inde3dfx/index

3、异常错误抛出

能够影响它的是,当前模块下的配置文件。如果当前配置文件无效,则会自动锁定公共模块下的配置参数。

相关参数:exception_tmpl,error_message

// 异常页面的模板文件'exception_tmpl'=> THINK_PATH . 'tpl' . DS . 'think_exception.tpl',

八、设置错误页面②

完美的去设置错误页面

1、准备一个错误页面 error.html,位置:thinkphptemplateindexdefaulterror.html ,准备把前段所有的错误提示都指向这里。

2、空操作指向

在appsindexcontrollerIndexbase.php,“基类”里面设置_empty。

<?php/** * 前端基类 * */namespace appindexcontroller;use  appCommoncontrollerBase;class IndexBase extends  Base{    public function _initialize()    {        parent::_initialize();    }    /**     * 空操作 跳转     * */    public function _empty(){        //abort();             exception();     //  这两种方法都可以    }}

3、空控制器指向

在appsindexcontrollerError.php

<?php/** * 空控制器跳转 * */namespace appindexcontroller;use appindexcontroller;class Error extends IndexBase{    public function index(){        abort();    }}

4、异常错误指向 

在 index/config.php exception_tmpl 参数

'exception_tmpl'         => THINK_PATH . 'tpl' . DS . 'think_exception.tpl', //'exception_tmpl' =>'E:/wamp/www/thinkphp/template/index/default/error.html',

注意:地址一定要绝对路径。

拓展,

401,404,500等错误页面自定义

相关参数:http_exception_template

手册地址:http://www.kancloud.cn/manual/thinkphp5/163256

代码:

config.php

'http_exception_template'    =>  [        // 定义404错误的重定向页面地址        404 =>  ROOT_PATH.config('template.view_path').config('index.model_name').'/'.config        ('index.default_template').'/404.html',        // 还可以定义其它的HTTP status        401 =>  ROOT_PATH.config('template.view_path').config('index.model_name').'/'.config        ('index.default_template').'/401.html',    ],

控制器调用

abort(404,’错误信息’)

error.html,404.html 页面代码,可以参考thinkphpthinkphptplthink_exception.tpl

九、路由别名Route

主要作用:隐藏自己的真实路由名称

Route.php

方法一:

<?phpuse thinkRoute;Route::alias('home','index/index');Route::alias('admin','admin/index');

方法二:

 [        'name' => 'w+',    ],    '[hello]'     => [        ':id'   => ['index/hello', ['method' => 'get'], ['id' => 'd+']],        ':name' => ['index/hello', ['method' => 'post']],    ],    '__alias__' =>  [        'home'  =>  'index/index',       'admin'=> 'admin/index'    ],];

http://localhost/thinkphp/index.php/home/test 同等与http://localhost/thinkphp/index.php/index/index/test

http://localhost/thinkphp/index.php/admin/edit/ 同等与http://localhost/thinkphp/index.php/admin/index/edit

注释:别名 => ‘模型/控制器’ ( 别名等于模块+控制器)

十、路由设置,隐藏indx.php

网站根目录下.htaccess

Options +FollowSymlinks -MultiviewsRewriteEngine onRewriteCond %{REQUEST_FILENAME} !-dRewriteCond %{REQUEST_FILENAME} !-fRewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]

以上就是thinkphp使用方法是什么的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/365639.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月6日 05:06:48
下一篇 2025年11月6日 05:11:41

相关推荐

  • 粘性定位怎么用

    粘性定位怎么用,需要具体代码示例 在前端开发中,粘性定位是一种常用的布局技术,可以将元素固定在页面的某个位置,当页面滚动时,该元素将会保持在固定位置不动,给用户带来更好的视觉体验。本文将介绍粘性定位的用法,并提供具体的代码示例。 一、CSS实现粘性定位CSS的position属性可以用来实现粘性定位…

    2025年12月24日 好文分享
    000
  • 使用绝对定位来定位元素参数的方法介绍

    如何使用绝对定位的参数进行定位? 随着网页设计的发展,对元素位置的精确控制成为了设计师和开发者追求的目标。而绝对定位(Absolute Positioning)提供了一种让元素根据其父元素进行定位的方法。在这篇文章中,我将向大家介绍如何使用绝对定位的参数进行定位,并提供一些具体的代码示例。 理解绝对…

    2025年12月24日
    000
  • 在CI框架中如何引入外部CSS样式表?

    CI框架中如何使用外部CSS样式,需要具体代码示例 引言:CI(CodeIgniter) 是一个轻量级的PHP开发框架,被广泛用于构建Web应用程序。在开发Web应用程序时,外部CSS样式起着至关重要的作用,可以帮助我们美化页面、提升用户体验。本文将介绍在CI框架中如何使用外部CSS样式,并提供具体…

    2025年12月24日
    000
  • 学习CSS框架必不可少:从基础开始掌握CSS框架的使用方法

    初学者必备:从零开始学习CSS框架的使用方法,需要具体代码示例 引言:随着Web设计和开发的快速发展,CSS框架已经成为每个前端工程师必备的工具。使用CSS框架可以大大提高开发效率,简化页面布局和样式的编写,同时还能够让网站呈现出更加统一和美观的外观。本文将介绍如何从零开始学习CSS框架的使用方法,…

    2025年12月24日
    000
  • 深入剖析CSS高级选择器的应用技巧

    深入探讨CSS高级选择器的使用方法,需要具体代码示例 CSS作为一种样式表语言,不仅可以用来美化网页的外观,还可以让我们更好地对网页元素进行控制和选择。在CSS中,除了基础的选择器(如元素选择器、类选择器和ID选择器)外,还有一些高级选择器,可以根据更复杂的条件来选择特定的元素。本文将深入探讨CSS…

    2025年12月24日
    000
  • 掌握id选择器的语法使用方法

    学习id选择器的语法使用方法,需要具体代码示例 在学习CSS(层叠样式表)时,了解和掌握选择器的语法和使用方法是非常重要的。其中,id选择器是一种常用的选择器,它允许我们通过给HTML元素添加id属性,通过该属性来选择特定的元素并对其应用样式。 首先,让我们来了解一下id选择器的语法。在CSS中,使…

    2025年12月24日 好文分享
    000
  • CSS行内元素与块级元素的使用场景和方法详解

    CSS行内元素和块级元素详解:探索它们的应用场景和使用方法 在CSS中,元素可以根据其显示特性分为两种类型:行内元素和块级元素。对于网页开发者来说,理解这两个概念非常重要,因为它们的不同特性决定了它们的应用场景和使用方法。 行内元素行内元素是指在网页中只占据一行的元素。常见的行内元素有、、、等。行内…

    2025年12月24日
    000
  • css中的float属性的一些使用方法

    本篇文章给大家带来的内容是关于css中的float属性的一些使用方法,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 在CSS浮动中,元素浮动后将自动转为块级元素,可以移动到当前行的左侧或右侧,切记没有浮动到中间的概念,所以记住只会浮动到两侧。 float:left float:ri…

    2025年12月24日
    000
  • CSS中zoom属性或overflow:auto的使用方法

    这次给大家带来CSS中zoom属性或overflow:auto的使用方法,使用CSS中zoom属性或overflow:auto的注意事项有哪些,下面就是实战案例,一起来看一下。 前言 其实在CSS中的Zoom这个属性一般不为人知,甚至有些CSS手册中都查询不到。其实Zoom属性是IE浏览器的专有属性…

    好文分享 2025年12月24日
    000
  • CSS3的linear-gradient线性渐变使用方法

    这次给大家带来CSS3的linear-gradient线性渐变使用方法,使用CSS3的linear-gradient线性渐变注意事项有哪些,下面就是实战案例,一起来看一下。 在商城项目中,购物车是一个很重要的功能。其中最常见的是购物车中对库存的“+-”操作,包括抢购后面有很多算法。但是作为前端来说,…

    2025年12月24日
    000
  • 详解css中border-image的使用方法

    border-image-source 属性设置边框的图片的路径[none | ] p { border: 20px solid #000; border-image-source: url(border.png);} border-image-slice 属性图片边框向内偏移[ | ](1,4) …

    2025年12月23日
    000
  • 怎么运行.html.tpl_运行.html.tpl文件步骤【指南】

    .html.tpl文件需通过后端模板引擎解析,不能直接运行;首先搭建PHP环境,安装Smarty等模板引擎,配置模板与编译目录,编写PHP脚本加载.tpl文件并分配数据,最后通过访问PHP文件触发渲染,浏览器查看最终HTML。 运行 `.html.tpl` 文件并不是直接像普通 HTML 文件那样在…

    2025年12月23日
    000
  • ThinkPHP5整合Vue异步组件报错:如何解决Module parse failed?

    tinkphp 5 框架整合 vue 引入异步组件引发的报错 在使用 TinkPHP 5 框架时,引入 Vue 异步组件可能会遇到报错。常见的报错信息如下: Module parse failed: Unexpected character ‘<' (1:2)You may need…

    好文分享 2025年12月22日
    000
  • ThinkPHP5框架中Vue异步组件报错如何解决?

    thinkphp5框架下vue异步组件报错的解决方案 在ThinkPHP5框架中集成Vue.js并使用异步组件时,可能会遇到诸如”Vue warn… invalid component definition” 或 “Failed to resolve …

    2025年12月22日
    200
  • ThinkPHP5框架下Vue异步组件报错TypeError: $$_IMPORT_STATE is not defined怎么办?

    thinkphp5框架与vue异步组件冲突解决方案 在ThinkPHP5框架中使用Vue异步组件时,可能会遇到TypeError: $$_IMPORT_STATE is not defined错误。本文提供解决方案。 问题描述: 使用ThinkPHP5框架引入Vue异步组件时,出现TypeError…

    2025年12月22日
    000
  • ThinkPHP5中Vue组件异步加载报错:“Unexpected token ‘export’”如何解决?

    thinkphp5框架下vue异步组件加载错误:“unexpected token ‘export’”的解决方案 在ThinkPHP5框架中使用Vue.js异步加载组件时,可能会遇到SyntaxError: Unexpected token ‘export’错误。此错误通常源…

    2025年12月22日
    000
  • ThinkPHP5框架中使用Vue异步组件报错:如何解决“Failed to resolve component”问题?

    tinkphp 5 框架中使用 vue 引入异步组件遇到的问题 在 TinkPHP 5 框架中使用 Vue 时,引入了异步组件后出现报错,错误信息如下: 问题背景 异步组件是指在需要时才加载的 Vue 组件。它提高了页面性能,因为只会在需要时加载组件代码。在 TinkPHP 5 中,使用异步组件有以…

    好文分享 2025年12月22日
    000
  • ThinkPHP5中如何正确引入Vue异步组件并解决兼容性问题?

    thinkphp5框架下vue异步组件的引入与兼容性处理 在ThinkPHP5框架中集成Vue异步组件时,可能会遇到模块加载冲突,导致报错:“Failed to resolve import “component-name” because it has been treat…

    2025年12月22日
    000
  • ThinkPHP:如何根据会员等级展示专属内容?

    thinkphp:不同会员等级展现专属内容 在实际应用中,常常需要根据用户的不同会员等级展示不同的内容,ThinkPHP提供了灵活的方式实现这一需求。 首先,在控制器中获取当前用户的会员等级,例如: use thinkfacadeView;use thinkfacadeAuth;class Inde…

    2025年12月22日
    000
  • ThinkPHP 如何实现会员等级差异化内容展示?

    thinkphp中实现会员等级差异化展示 在特定情况下,需要让不同会员等级看到不同的内容。在ThinkPHP中,我们可以通过控制器和视图文件的结合来实现这一目的。 1. 控制器处理 在控制器中,我们可以获取当前用户的会员等级,然后根据等级决定渲染哪个视图文件。 use thinkfacadeView…

    2025年12月22日
    100

发表回复

登录后才能评论
关注微信