1. 程式人生 > >[thinkPHP5專案實戰_06]引入前臺頁面

[thinkPHP5專案實戰_06]引入前臺頁面

一個網站的前端分一般分為前臺和後臺兩個部分,下面說明一下如何在tp5中引入前臺頁面。

tp5中訪問的是模組下的控制器,通過控制器獲取檢視下的頁面(模板佈局),輸出替換引導頁面載入靜態檔案(css,js,image

1.前臺資源佈置

project  應用部署目錄
├─application           應用目錄(可設定)
│  ├─common             公共模組目錄(可更改)
│  ├─index              模組目錄(可更改)
│  │  ├─config.php      模組配置檔案
│  │  ├─common.php      模組函式檔案
│  │  ├─controller      控制器目錄
│  │  ├─model           模型目錄
│  │  ├─view            檢視目錄
│  │  └─ ...            更多類庫目錄
│  ├─command.php        命令列工具配置檔案
│  ├─common.php         應用公共(函式)檔案
│  ├─config.php         應用(公共)配置檔案
│  ├─database.php       資料庫配置檔案
│  ├─tags.php           應用行為擴充套件定義檔案
│  └─route.php          路由配置檔案
├─extend                擴充套件類庫目錄(可定義)
├─public                WEB 部署目錄(對外訪問目錄)
│  ├─static             靜態資源存放目錄(css,js,image)
│  ├─index.php          應用入口檔案
│  ├─router.php         快速測試檔案
│  └─.htaccess          用於 apache 的重寫
├─runtime               應用的執行時目錄(可寫,可設定)
├─vendor                第三方類庫目錄(Composer)
├─thinkphp              框架系統目錄
│  ├─lang               語言包目錄
│  ├─library            框架核心類庫目錄
│  │  ├─think           Think 類庫包目錄
│  │  └─traits          系統 Traits 目錄
│  ├─tpl                系統模板目錄
│  ├─.htaccess          用於 apache 的重寫
│  ├─.travis.yml        CI 定義檔案
│  ├─base.php           基礎定義檔案
│  ├─composer.json      composer 定義檔案
│  ├─console.php        控制檯入口檔案
│  ├─convention.php     慣例配置檔案
│  ├─helper.php         助手函式檔案(可選)
│  ├─LICENSE.txt        授權說明檔案
│  ├─phpunit.xml        單元測試配置檔案
│  ├─README.md          README 檔案
│  └─start.php          框架引導檔案
├─build.php             自動生成定義檔案(參考)
├─composer.json         composer 定義檔案
├─LICENSE.txt           授權說明檔案
├─README.md             README 檔案
├─think                 命令列入口檔案
1.1模板檢視的首頁存放位置

根據tp5的目錄介紹,前端檔案的檢視位於application的模組下面的view資料夾下。

application資料夾下預設已經有了一個index模組,可以拿來直接使用。

渲染模板最常用的是使用\think\View類的fetch方法:

fetch('[模板檔案]'[,'模板變數(陣列)'])

當fetch中不帶任何引數的時候,預設訪問規則為:

當前模組/預設檢視目錄/當前控制器(小寫)/當前操作(小寫).html
假如當前控制器為Index下面的index類的話,fetch獲取的就是view中的Index下面的index.html檔案其中html字尾會自動加上;

因此,在該index資料夾下新建一個view資料夾,然後新建一個Index控制器資料夾,將前臺的首頁index.html拷貝過來:


1.2前臺靜態資源存放位置

根據tp5的目錄介紹,前端的靜態資源(css,js,image)存放於puclic/static資料夾下,

因此,在static資料夾中新建一個index資料夾,將index.html引入的檔案拷貝過去。


2.模板渲染和輸出替換

前臺檔案佈置完成後,http://localhost/tp5/public/index.php/index/index訪問的還是tp5的預設頁面,因此需要將該頁面替換成index.html頁面。

開啟檢視所在的模組index下的controller下的index.php檔案,該檔案即為http://localhost/tp5/public/index.php/index/index訪問的位置,

模板渲染使用到了fetch()方法,需要在index.php中引入並在Index類進行繼承:

<?php
namespace app\index\controller;
use think\Controller;
class Index extends Controller
{
    public function index()
    {
        return $this->fetch();
    }
}
儲存後開啟瀏覽器輸入http://localhost/tp5/public/index.php/index/index

得到了index.html的頁面,其中頁面載入的靜態檔案均未找到位置,因此需要重新定位

開啟application下的config.php檔案,在分頁配置下面新增:

//輸出替換
    'view_replace_str' => [
        '__PUBLIC__'=>'/tp5/public', //將__PUBLIC__指向tp5下面的public
        '__ROOT__' => '/',
    ]
將__PUBLIC__指向根目錄下的public資料夾,再開啟index.html檔案,將在引入的檔案前面新增字首__PUBLIC__/static/index,

例如原來index.html和css資料夾同一個目錄下,在index.html引入css方式為:

<link rel="stylesheet" type="text/css" href="css/demo.css">
則現在的引入方式該為:
<link rel="stylesheet" type="text/css" href="__PUBLIC__/static/index/css/demo.css">
儲存後再次開啟瀏覽器訪問tp5預設目錄,完整的前臺檢視: