首頁 php框架 ThinkPHP thinkphp使用方法是什麼

thinkphp使用方法是什麼

Aug 26, 2019 pm 03:15 PM
thinkphp 使用方法

thinkphp使用方法是什麼

一、專案部署

#1、虛擬主機部署/本機部署

#去掉public/index.php改到根目錄下/index.php。在網站根目錄下建立檔案index.php,內容如下

<?php
// 定义应用目录
define(&#39;APP_PATH&#39;, __DIR__ . &#39;/apps/&#39;);
// 加载框架引导文件
require  &#39;./thinkphp/start.php&#39;;
登入後複製

這樣基本上就可以了,這是最簡單的設定。

2、伺服器部署

伺服器部署專案文件入口public ,優點:只給外人看到public目錄下的文件,與public同級的文件,在外網是隱藏狀態的,如:thinkphp、apps、extend、tests、vendor。更簡單的意思是透過網域名稱是存取不到這些文件下內容的,但又不影響框架的使用。

二、建立模組(自動產生模組)

我的專案是部署在本機www/thinkphp 目錄下。在做之前,先要考慮清楚,你需要幾個模組來完成你的專案。

開始實例

1、建立三個模組 Common(公共模組),Home(前台模組),Admin(後台模組)。公共模組是必不可少的。

修改的情況下為public下的index.php,開啟是這樣子的

// 定义应用目录
define(&#39;APP_PATH&#39;, __DIR__ . &#39;/../application/&#39;);
// 加载框架引导文件
require __DIR__ . &#39;/../thinkphp/start.php&#39;;
登入後複製

在後面加上這兩句

$build = include &#39;../build.php&#39;;
// 运行自动生成
\think\Build::run($build);
登入後複製

build.php設定(自動生成目錄) 手冊參考:http://www.kancloud.cn/manual/thinkphp5/118021

在專案的根目錄有一個build.php文件,打開後看到是這樣的:

<?php
return [
    // 生成应用公共文件
    &#39;__file__&#39; => [&#39;common.php&#39;, &#39;config.php&#39;, &#39;database.php&#39;],
 
    // 定义demo模块的自动生成 (按照实际定义的文件名生成)
    &#39;demo&#39;     => [
        &#39;__file__&#39;   => [&#39;common.php&#39;],
        &#39;__dir__&#39;    => [&#39;behavior&#39;, &#39;controller&#39;, &#39;model&#39;, &#39;view&#39;],
        &#39;controller&#39; => [&#39;Index&#39;, &#39;Test&#39;, &#39;UserType&#39;],
        &#39;model&#39;      => [&#39;User&#39;, &#39;UserType&#39;],
        &#39;view&#39;       => [&#39;index/index&#39;],
    ],
    // 其他更多的模块定义
];
登入後複製

然後我們給我們需要的檔案名稱在這個地方加上,給的demo可以直接註解掉,如下:

<?php
return [
    // 生成应用公共文件
    &#39;__file__&#39; => [&#39;common.php&#39;, &#39;config.php&#39;, &#39;database.php&#39;],
    //公共模块目录
    &#39;common&#39; => [
        &#39;__file__&#39;   => [&#39;common.php&#39;],
        &#39;__dir__&#39;    => [&#39;controller&#39;, &#39;model&#39;,&#39;lang&#39;],
        &#39;controller&#39; => [&#39;Index&#39;],
        &#39;model&#39;      => [&#39;Base&#39;],
    ],
    // Index模块
    &#39;home&#39;     => [
        &#39;__file__&#39;   => [&#39;common.php&#39;],
        &#39;__dir__&#39;    => [&#39;behavior&#39;, &#39;controller&#39;, &#39;model&#39;, &#39;view&#39;,&#39;lang&#39;],
        &#39;controller&#39; => [&#39;Index&#39;],
        &#39;model&#39;      => [&#39;Test&#39;],
        &#39;view&#39;       => [&#39;index/index&#39;],
    ],
    // Admin 模块
    &#39;admin&#39;     => [
        &#39;__file__&#39;   => [&#39;common.php&#39;],
        &#39;__dir__&#39;    => [&#39;behavior&#39;, &#39;controller&#39;, &#39;model&#39;, &#39;view&#39;,&#39;lang&#39;],
        &#39;controller&#39; => [&#39;Index&#39;],
        &#39;model&#39;      => [&#39;Test&#39;],
        &#39;view&#39;       => [&#39;index/index&#39;],
    ], 
];
登入後複製

1)其中的SITE_PATH,與RUNTIME_PATH後面都有用到,所有優先放在index.php裡面方便後面呼叫。

2)這兩個東西,要放一起使用

$build = include &#39;./build.php&#39;;
// 运行自动生成
\think\Build::run($build);
登入後複製

相關推薦:《ThinkPHP教程

三、創建基類別

開乾之前,得先設定好“基底類別”,為什麼呢?打個比方,要訪問會員中心相關的控制器,這類控制器是不是都要有一個“登入限制”,才讓訪問會員相關的控制器?基類的作用就出來了。

1、建立三大基底類別

原始基底類別

位置:thinkphp\apps\common\controller\base.php

作用:base模組下的內容,Index模組,和Admin模組都可以呼叫。

程式碼:

<?php
/**
 * 原始基类
 * */
namespace app\Common\controller;
use  think\Controller;
class Base extends Controller{
    public function _initialize()
    {
        parent::_initialize();
        echo &#39;原始基类&#39;;
    }
    public function test1(){
        return &#39;test1&#39;;
    }
}
登入後複製

Index模組基底類別

位置:thinkphp\apps\common\controller\base.php

作用:Index模組下的控制器,都要「繼承基底類別」並且「呼叫基底類別」。

程式碼:

<?php
/**
 * 前端基类
 * */
namespace app\index\controller;
use  app\Common\controller\Base;
class IndexBase extends  Base
{
    public function _initialize()
    {
        parent::_initialize();
    }
    public function index()
    {        
    }
}
登入後複製

Admin模組基類別

位置:thinkphp\apps\common\controller\base.php

作用:Admin模組下的控制器,都要「繼承基底類別」並且「呼叫基底類別」。

程式碼:

/**
 * 后台首页
 * */
namespace app\Admin\controller;
use app\Admin\controller\AdminBase;
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,增加一些參數。

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

2、設定模板參數

index/config.php

&#39;template&#39;=> [
    // 模板路径
    &#39;view_path&#39;=> config(&#39;template.view_path&#39;).config(&#39;index.model_name&#39;).&#39;/&#39;.config(&#39;index.default_template&#39;).&#39;/&#39;,
],
登入後複製

admin/config.php

<?php
//配置文件
return [
    // 模板配置
    &#39;template&#39;               => [
        // 模板路径
        &#39;view_path&#39;    => config(&#39;template.view_path&#39;).config(&#39;admin.model_name&#39;).&#39;/&#39;.config(&#39;index.
        default_template&#39;).&#39;/&#39;,
    ],
];
登入後複製

擴充:

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(&#39;RUNTIME_PATH&#39;, __DIR__ . &#39;/data/runtime/&#39;);
登入後複製
###2、設定upload,存放上傳圖片、上傳檔案#######3、設定static,存放jquery.js、bootstrap、一些效果插件什麼的###
// 视图输出字符串内容替换
&#39;view_replace_str&#39;       => [
    &#39;__DATA__&#39; => SITE_PATH.&#39;data/&#39;,
    // 上传文件路径
    &#39;__UPLOAD__&#39; =>SITE_PATH.&#39;data/upload/&#39;,
    //  静态文件路径 (如bootshop,js,css)
    &#39;__STATIC__&#39; =>SITE_PATH.&#39;data/upload/&#39;,    
],
登入後複製
###4、定義範本檔案路徑,方便呼叫範本下的css、js、images###
&#39;view_replace_str&#39;       => [
    // 模板文件路径
    &#39;__TEMPLATE__&#39; => config(&#39;template.view_path&#39;).config(&#39;index.model_name&#39;).&#39;/&#39;.config(&#39;index.default_template&#39;)
    .&#39;/&#39;,
    // 模板下的共享文件路径(css,js,images...)
    &#39;__PUBLIC__&#39; => SITE_PATH.&#39;/&#39;.config(&#39;template.view_path&#39;).config(&#39;index.model_name&#39;).&#39;/&#39;.config(&#39;index.
    default_template&#39;).&#39;/public/&#39;,
],
登入後複製
###範本頁引用:###
<script src=__PUBLIC__js/jqueyr.js”>
<link href=”__PUBLIC__css/style.css”>
<img src="__PUBLIC__images/1.png">
登入後複製
###5、想放什麼都可以,自己設定 #########六、公共模組common的使用#########common模組屬於公共模組,Thinkphp框架,預設就能調用。 ######實際用處:任何模組都可能用到的模型、控制、事件提取出來放到公共模組下。 ######1、公共事件apps\common\common.php######作用:一般存放密碼加密、下拉方塊封裝、讀取某資料夾下檔案###
/**
 * 密码加密
 * @param string $password
 * @param string $password_salt
 * @return string
 */
function password($password, $password_salt){
    return md5(md5($password) . md5($password_salt));
}
登入後複製
###2、公用配置apps\common\config.php######把Index模組、Admin模組公用的部分提取出來放到這裡面,如:公用的模板路徑###
&#39;template&#39;               => [
    // 模板路径
    &#39;view_path&#39;    => &#39;template/&#39;,
]
登入後複製
###3、公共語言包apps \common\lang\zh-cn.php#####

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

<?php
/**
 * 全局语言包
 * zh-cn
 * */
return [
    &#39;success&#39;          => &#39;执行成功&#39;,
    &#39;error&#39;            => &#39;执行失败&#39;,
    &#39;add_success&#39;      => &#39;添加成功&#39;,
    &#39;add_error&#39;        => &#39;添加失败&#39;,
    &#39;edit_success&#39;     => &#39;修改成功&#39;,
    &#39;edit_error&#39;       => &#39;修改失败&#39;,
    &#39;delete_success&#39;   => &#39;删除成功&#39;,
    &#39;delete_error&#39;     => &#39;删除失败&#39;,
];
登入後複製

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

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

4、公共控制器 apps\common\common.php

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

5、公共模块 apps\common\common.php

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

七、设置错误页面①

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

1、空操作

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

public function _empty(){
    $this->error(&#39;方法不存在&#39;);
}
Public function index(){       
}
登入後複製

测试方法:

正常:

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

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

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

2、空控制器

在模块下建立Error控制器,

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

代码:

<?php
/**
 * 前端首页
 * */
namespace app\index\controller;
use app\index\controller;
class Error extends IndexBase
{
    public function index(){
        echo &#39;访问的控制器不存在&#39;;
    }
}
登入後複製

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

3、异常错误抛出

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

相关参数:exception_tmpl,error_message

// 异常页面的模板文件
&#39;exception_tmpl&#39;=> THINK_PATH . &#39;tpl&#39; . DS . &#39;think_exception.tpl&#39;,
登入後複製

八、设置错误页面②

完美的去设置错误页面

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

2、空操作指向

在apps\index\controller\Indexbase.php,“基类”里面设置_empty。

<?php
/**
 * 前端基类
 * */
namespace app\index\controller;
use  app\Common\controller\Base;
class IndexBase extends  Base
{
    public function _initialize()
    {
        parent::_initialize();
    }
    /**
     * 空操作 跳转
     * */
    public function _empty(){
        //abort();     
        exception();     //  这两种方法都可以
    }
}
登入後複製

3、空控制器指向

在apps\index\controller\Error.php

<?php
/**
 * 空控制器跳转
 * */
namespace app\index\controller;
use app\index\controller;
class Error extends IndexBase
{
    public function index(){
        abort();
    }
}
登入後複製

4、异常错误指向

在 index/config.php exception_tmpl 参数

&#39;exception_tmpl&#39;         => THINK_PATH . &#39;tpl&#39; . DS . &#39;think_exception.tpl&#39;,
 //&#39;exception_tmpl&#39; =>&#39;E:/wamp/www/thinkphp/template/index/default/error.html&#39;,
登入後複製

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

拓展,

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

相关参数:http_exception_template

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

代码:

config.php

&#39;http_exception_template&#39;    =>  [
        // 定义404错误的重定向页面地址
        404 =>  ROOT_PATH.config(&#39;template.view_path&#39;).config(&#39;index.model_name&#39;).&#39;/&#39;.config
        (&#39;index.default_template&#39;).&#39;/404.html&#39;,
        // 还可以定义其它的HTTP status
        401 =>  ROOT_PATH.config(&#39;template.view_path&#39;).config(&#39;index.model_name&#39;).&#39;/&#39;.config
        (&#39;index.default_template&#39;).&#39;/401.html&#39;,
    ],
登入後複製

控制器调用

abort(404,'错误信息')

error.html,404.html 页面代码,可以参考thinkphp\thinkphp\tpl\think_exception.tpl

九、路由别名Route

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

Route.php

方法一:

<?php
use think\Route;
Route::alias(&#39;home&#39;,&#39;index/index&#39;);
Route::alias(&#39;admin&#39;,&#39;admin/index&#39;);
登入後複製

方法二:

<?php
return [
    &#39;__pattern__&#39; => [
        &#39;name&#39; => &#39;\w+&#39;,
    ],
    &#39;[hello]&#39;     => [
        &#39;:id&#39;   => [&#39;index/hello&#39;, [&#39;method&#39; => &#39;get&#39;], [&#39;id&#39; => &#39;\d+&#39;]],
        &#39;:name&#39; => [&#39;index/hello&#39;, [&#39;method&#39; => &#39;post&#39;]],
    ],
    &#39;__alias__&#39; =>  [
        &#39;home&#39;  =>  &#39;index/index&#39;,
       &#39;admin&#39;=> &#39;admin/index&#39;
    ],
];
登入後複製

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

<IfModule mod_rewrite.c>
Options +FollowSymlinks -Multiviews
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
</IfModule>
登入後複製

以上是thinkphp使用方法是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

DirectX修復工具怎麼用? DirectX修復工具詳細使用方法 DirectX修復工具怎麼用? DirectX修復工具詳細使用方法 Mar 15, 2024 am 08:31 AM

  DirectX修復工具是專業的系統工具,主要功能是偵測目前系統的DirectX狀態,如果發現異常就可以直接修復。可能還有很多用戶不清楚DirectX修復工具怎麼用吧,以下就來看看詳細教學。  1、使用修復工具軟體進行修復檢測。  2、如果修復完成後提示C++元件有異常的問題,請點選取消按鈕,然後點選工具選單列。  3、點選選項按鈕,選擇擴展,點選開始擴展按鈕。  4、擴展完成後再重新進行檢測修復即可。  5、如果修復工具操作完成後仍未解決問題,可以嘗試卸載重新安裝報錯的程序。

thinkphp專案怎麼運行 thinkphp專案怎麼運行 Apr 09, 2024 pm 05:33 PM

執行 ThinkPHP 專案需要:安裝 Composer;使用 Composer 建立專案;進入專案目錄,執行 php bin/console serve;造訪 http://localhost:8000 查看歡迎頁面。

thinkphp有幾個版本 thinkphp有幾個版本 Apr 09, 2024 pm 06:09 PM

ThinkPHP 擁有多個版本,針對不同 PHP 版本而設計。主要版本包括 3.2、5.0、5.1 和 6.0,而次要版本用於修復 bug 和提供新功能。目前最新穩定版本為 ThinkPHP 6.0.16。在選擇版本時,需考慮 PHP 版本、功能需求和社群支援。建議使用最新穩定版本以獲得最佳性能和支援。

HTTP 525狀態碼介紹:探究其定義與應用 HTTP 525狀態碼介紹:探究其定義與應用 Feb 18, 2024 pm 10:12 PM

HTTP525狀態碼簡介:了解其定義與使用方法HTTP(HypertextTransferProtocol)525狀態碼是指伺服器在SSL握手過程中發生錯誤,導致無法建立安全連線。在傳輸層安全性(TLS)握手期間發生錯誤時,伺服器將傳回此狀態碼。此狀態碼屬於伺服器錯誤類別,通常表示伺服器配置或設定問題。當客戶端嘗試透過HTTPS連接到伺服器時,伺服器無

百度網盤怎麼用-百度網盤的使用方法 百度網盤怎麼用-百度網盤的使用方法 Mar 04, 2024 pm 09:28 PM

有很多朋友還不知道百度網盤怎麼用,所以下面小編就講解了百度網盤的使用方法,有需要的小伙伴趕緊來看一下吧,相信對大家一定會有所幫助哦。第一步:安裝好百度網盤後直接登入(如圖);第二步:接著可依頁面提示選擇「我的分享」與「傳輸清單」(如圖);第三步:在「好友分享」裡可以把圖片和檔案直接分享給好友(如圖所示);第四步:接著選擇「分享」後可勾選電腦檔案或是網盤檔案(如圖所示);第五步:然後就可以尋找好友(如圖所示);第六步:還可以在「功能寶箱」中尋找自己需要的功能(如圖所示)。上面就是小編為大

thinkphp怎麼運行 thinkphp怎麼運行 Apr 09, 2024 pm 05:39 PM

ThinkPHP Framework 的本機運作步驟:下載並解壓縮 ThinkPHP Framework 到本機目錄。建立虛擬主機(可選),指向 ThinkPHP 根目錄。配置資料庫連線參數。啟動 Web 伺服器。初始化 ThinkPHP 應用程式。存取 ThinkPHP 應用程式 URL 運行。

快速學會複製和貼上操作 快速學會複製和貼上操作 Feb 18, 2024 pm 03:25 PM

複製貼上快捷鍵使用方法複製貼上是我們在日常使用電腦時經常會遇到的操作。為了提高工作效率,熟練複製貼上快捷鍵是非常重要的。本文將介紹一些常用的複製貼上快捷鍵使用方法,幫助讀者更方便地進行複製貼上操作。複製快速鍵:Ctrl+CCtrl+C是複製的快速鍵,按住Ctrl鍵然後再按C鍵,即可將選取的文字、檔案、圖片等內容複製到剪貼簿。要使用該快捷鍵,

KMS啟動工具是什麼? KMS啟動工具怎麼用? KMS啟動工具使用方法? KMS啟動工具是什麼? KMS啟動工具怎麼用? KMS啟動工具使用方法? Mar 18, 2024 am 11:07 AM

KMS啟動工具是一種用來啟動微軟Windows和Office產品的軟體工具。 KMS是KeyManagementService的縮寫,即金鑰管理服務。 KMS啟動工具透過模擬KMS伺服器的功能,使得電腦可以連接到這個虛擬的KMS伺服器,從而實現對Windows和Office產品的啟動。 KMS激活工具體積小巧,功能強大,可以一鍵永久激活,無需聯網狀態就可以激活任何版本的window系統和任何版本的Office軟體,是目前最成功的且經常更新的Windows激活工具,今天小編就跟大家介紹一下kms激活工

See all articles