成人怡红院-成人怡红院视频在线观看-成人影视大全-成人影院203nnxyz-美女毛片在线看-美女免费黄

站長資訊網
最全最豐富的資訊網站

小白筆記之簡單快速搭建ThinkPHP5并使用

下面thinkphp框架教程欄目將給大家講解ThinkPHP5 的簡單搭建和使用,希望對需要的朋友有所幫助!

0X01 Thinkphp 的安裝

我這里選擇的是使用 windows 下的 composer 進行安裝,收下首先下載 composer 這個工具,安裝完成以后進入我們想要創建項目的文件夾輸入下面的命令

composer create-project topthink/think tp5 dev-master --prefer-dist

這樣就會在當前目錄下形成一個 名為 tp5 的文件夾,這個文件夾中存放的就是 thinkphp5 的基本的框架

0X02 重點目錄結構及文件介紹

1.目錄結構

application : 應用目錄,我們的模型視圖控制器都會放在這個文件夾下,這是我們開發的主陣地

public : 這個是我們項目的入口文件,thinkphp 是一個單一入口的框架

thinkphp : 框架的核心目錄

2.關鍵文件

application/config.php 項目配置文件,開啟 debug 調試模式(在開發中)

application/database.php 數據庫配置文件

public/index.php 項目入口文件,定義了應用目錄的位置以及包含框架啟動文件來啟動框架

0X03 配置虛擬主機

1.httpd.conf 中判斷下面是否被注釋,如果被注釋請取消注釋

(1)Include conf/vhosts.conf (2)LoadModule vhost_alias_module modules/mod_vhost_alias.so

2.刪除 vhost.conf 中原有的默認內容,添加如下內容

<VirtualHost *:80>  DocumentRoot "E:phpstudyPHPTutorialWWWtp5public"   ServerName localhost    <Directory "E:phpstudyPHPTutorialWWWtp5public">   Options FollowSymLinks ExecCGI   AllowOverride All   Order allow,deny   Allow from all   Require all granted  </Directory> </VirtualHost>

3.配置 URL 重寫

http.conf 中解開下面的注釋

LoadModule rewrite_module modules/mod_rewrite.so

并在虛擬主機配置中寫上

AllowOverride All

注意:如果使用 phpstudy 的話,官方默認的 .htaccess 是不可以的,需要修改成下面這個樣子

<IfModule mod_rewrite.c>  RewriteEngine on   RewriteCond %{REQUEST_FILENAME} !-d  RewriteCond %{REQUEST_FILENAME} !-f  RewriteRule ^(.*)$ index.php [L,E=PATH_INFO:$1] </IfModule>

0X04 基本的寫法

1.控制器的基本寫法

(1)模塊中的控制器實際上就是一個一個的類,這個類寫的時候要繼承 Controller 并且要在前面寫上命名空間

(2) thinkPHP5 使用 return 來返回一個html ,自動渲染到頁面上

(3)tp5 使用的是 $this->requrst->param() 接受參數,當然也要在開始寫上命名空間

示例代碼:

<?php namespace appindexcontroller; use thinkController; use thinkRequest; class Index extends Controller {  public function index()  {   print_r($this->request->param());   return '<style type="text/css">*{ padding: 0; margin: 0; } .think_default_text{ padding: 4px 48px;} a{color:#2E5CD5;cursor: pointer;text-decoration: none} a:hover{text-decoration:underline; } body{ background: #fff; font-family: "Century Gothic","Microsoft yahei"; color: #333;font-size:18px} h1{ font-size: 100px; font-weight: normal; margin-bottom: 12px; } p{ line-height: 1.6em; font-size: 42px }</style><p style="padding: 24px 48px;"> <h1>:)</h1><p> ThinkPHP V5<br/><span style="font-size:30px">十年磨一劍 - 為API開發設計的高性能框架</span></p><span style="font-size:22px;">[ V5.0 版本由 <a href="http://www.qiniu.com" rel="external nofollow" target="qiniu">七牛云</a> 獨家贊助發布 ]</span></p><script type="text/javascript" src="https://tajs.qq.com/stats?sId=9347272" charset="UTF-8"></script><script type="text/javascript" src="https://e.topthink.com/Public/static/client.js"></script><think id="ad_bd568ce7058a1091"></think>';  } }

我們這樣訪問

http://localhost/index.php/index/index/index/a/3/b/4/c/5

結果:

小白筆記之簡單快速搭建ThinkPHP5并使用

2.模板和控制器的關系

每一個模塊都有自己的控制器、視圖、和模型,訪問的時候是按照 index.php/模塊/控制器/方法,訪問的,然后每一個控制器在 view 中對應著一個同名的文件夾,比如說 controller/Index 控制器, view/Index 就是這個控制器對應的模板文件夾,那么每一個方法都會在模板文件夾下對應一個同名的 html 文件作為這個方法的模板

tp5 是通過

$this->assign('data',$data);

進行賦值并通過

return $this->fetch('模板名');

進行渲染的

示例代碼:

index/controller/Index.php

<?php namespace appindexcontroller; use thinkController;  class Index extends Controller {  public function index()  {   $data = "K0rz3n";   $this->assign('data',$data);   return $this->fetch();  } }

Index/view/Index/index.html

<html>  <head>   </head>  <body>   hello {$data}!  </body> </html>

3.對 SEO 友好的路由

我們知道,我們的搜索引擎抓取頁面最多抓三層,但是我們剛剛寫的那種 URL 已經太多層了,這非常不利于搜索引擎的收錄,于是 tp5 給我們提供了一種簡化的方法,就是 route.php

示例代碼:

return [  '__pattern__' => [   'name' => 'w+',  ],  '[hello]'  => [   // ':id' => ['index/hello', ['method' => 'get'], ['id' => 'd+']],   // ':name' => ['index/hello', ['method' => 'post']],  ],   'hello/[:name]' => ['index/Index/hello',['method' => 'get','ext' => 'html']],  ];

這個意思就是我們訪問 hello/name 就會轉給 index/Index/hello ,并且要求是 Get 方法,后綴名是 HTML

配置好后我們只要添加這樣幾個東西就 OK 了

public function hello($name = 'zhangsan')  {   $this->assign('name',$name);   return $this->fetch();  }

hello.html

<html>  <head>   </head>  <body>   hello {$name}!  </body> </html>

如圖所示:

小白筆記之簡單快速搭建ThinkPHP5并使用

當然在這種情況下參數名還是會很多斜杠,還是不是很友好,于是我們可以在 config.php 中將默認的斜杠分隔符進行修改,改成其他的這樣就避免了這個問題

4.URL 自動生成

tp5 給我們提供了 url() 這個函數幫我們自動生成 Url

public function url()  {   echo url('url2','a=1&b=2');  }

這個方法運行的結果就是

/index/index/url2/a/1/b/2.html

5.請求和響應

小白筆記之簡單快速搭建ThinkPHP5并使用

1.接收請求的參數

訪問: http://localhost/index/index/req/username/test

通過以下代碼可以得到 username

echo $this->request->param('username');

或者我們可以使用函數助手 input(),下面這段代碼能達到和上面一樣的效果

echo input('username');

包括我們通過下面的代碼獲取 url

echo $this->request->url();

這個也有自己的函數助手

echo request()->url();

我們可以獲分別獲取 get post cookie file 等方式的參數

$this->request->get() $this->request->post() $this->request->cookie() $this->request->file()

或者實例化一個 Request 對象,但是這種方法只能接受 url 后面是 & 連接的參數,重寫的好像不行

$Request = Request::instance()  $request->get() $Rquest->post() $Request->cookie() $Request->file()

2.綁定參數

$this->request->bind('user',"hh");  echo $this->request->user;

那么為什么請求還要動態地綁定參數呢?因為很多時候需要傳遞 session 的值,來維持會話

3.返回值

可以返回多種格式的值 比如 json xml 或者通過 $this->fetch() 來進行模板渲染

return json($data); return xml($data);

當然我們的 tp 也有對一些東西的封裝,比如實現輸出一段話然后進行跳轉到某個方法,或者是直接進行重定向

return json($data); return xml($data);

6.模板與輸出

一般的模板渲染就不想介紹了,這里說下模板布局,其實就是在 view 文件夾下有一個 layout.html 文件,這個文件的內容是這樣的

layout.html

{include file="/index/header"/} {__CONTENT__} {include file="/index/footer"/}

然后我們寫模板的時候就在最上面加上對這個文件的引用

{layout name="layout"/}

如果我們想全局引入頁眉頁腳,這個配置需要在 config.php 中進行設置,在模板配置中添加下面的代碼

'layout_on' => 'true', 'layout_name' => 'layout', 'layout_item' => '{__CONTENT__}',

這樣的話就是進行了全配置但是如果我們有些頁面不想這樣配置的話我們需要在這樣的頁面上寫上

{__NOLAYOUT__}

如果我們模板文件中的靜態文件路徑想要不寫死的話,我們可以在 php 文件中的 fecth 前設置字符替換

$this->view->replace(['__PUBLIC__' => '/static',]);

如果我們想每個方法都使用這個操作,我們就把上面這段代碼放到 控制器的構造函數里面

function __construct(){  parent::__construct();  $this->view->replace(['__PUBLIC__' => '/static',]); }

0X05 參考

https://www.kancloud.cn/thinkphp/thinkphp5-guide/30551

贊(0)
分享到: 更多 (0)
?
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
久久人人爽人人爽人人片Ⅴ| 男生把QQ放进女生的QQ里韩剧 | 十八禁啪啪污污网站免费下载| 少妇ⅩXXOOOZZXXHD| 无码一区在线视频| 亚洲丰满少妇多毛大隂户| 野花社区WWW官网在线观看| 。国产精品麻豆成人AV网| 啊轻点灬大JI巴太粗太长了H文| 国产AV妓女影视妓女影院 | 乱世桃花免费观看完整版高清| 女主快穿到各个世界做小三| 日日噜噜噜夜夜爽爽狠狠视频| 无码喷水一区二区浪潮AV| 亚洲国产一卡2卡3卡4卡5公司| 中国CHINESE壮男GⅤ军警| 办公室揉弄震动嗯~动态图| 国产精品免费久久久久影院| 久久精品成人亚洲另类欧美 | 精品日产一区二区三区| 女人被弄到高潮叫床免| 丝袜人妻无码中文字幕综合网| 亚洲国产成人久久综合人| 中文字幕乱码人妻综合二区三区| 成人亚洲AV网站在线看AAAA| 狠痕鲁狠狠爱2021在| 女的把腿张开男的往里面插| 天堂√最新版中文在线天堂| 亚洲日韩乱码久久久久久| MM1313亚洲国产精品无码试看| 国产精品无码一区二区三区电影 | 亚洲日韩乱码中文无码蜜桃| 吧唧吧唧吧唧一口一口吃掉了 | 亚洲已满18点击进入在线看片| JZZIJZZIJ亚洲乱熟无码| 国产精品亚洲专区无码破解版 | 1000部啪啪未满十八勿入不卡| 国产69精品久久久久观看软件 | 国产精品一线二线三线有什么区别| 久久久无码精品国产一区| 日韩欧美亚洲综合久久影院D3| 亚洲va熟妇自拍无码区| CHINESE国产AVVIDE| 国产亚洲成AV人片在线观看导航| 男男野战爆了我的菊BL| 午夜天堂精品久久久久| 99国产精品国产精品九九| 国产色无码精品视频免费| 女人张开腿让男人桶爽免| 小诗的公交车日记第9章| 337P日本欧洲亚洲大胆在线| 国产肉丝袜在线观看| 欧美精品九九99久久在免费线| 亚洲 都市 校园 激情 另类| AV永久天堂一区二区三区| 韩国女星潜规39集无删减| 人妻少妇乱子伦精品无码专区毛片| 亚洲国产成人A精品不卡在线| 白种女BBWBBWBBW| 久久精品久久久久久久精品| 天天做天天爱天天爽综合网| √天堂中文WWW官网在线| 国精产品 自偷自偷| 日本人妻人人人澡人人爽| 野花香HD免费高清版6高清版 | AV一区二区三区人妻少妇| 狠狠做五月深爱婷婷天天综合| 日韩成人免费VA毛片| 长腿校花无力呻吟娇喘| 国产亚洲美女精品久久久2020| 日本丰满熟妇多毛| 中国在线观看免费高清完整版| 国产在线看片无码人精品| 日产精品一区二区| 16—17女人毛片毛片| 交换配乱吟粗大SNS84O| 熟婦久久无码人妻av蜜臀| 99久久精品免费看国产| 久久99精品久久久久婷综合| 无码人妻在线视频| 成人欧美一区二区三区视频| 免费国产成人高清在线视频| 亚洲美女又黄又爽在线观看| 国产裸体XXXX视频在线播放| 日韩国产成人精品视频| 97在线视频人妻无码| 久久九九日本韩国精品 | 69久久夜色精品国产69| 久久精品女人天堂AV| 亚洲AV老熟妇在线观看| 国产成AV人片在线观看天堂无码| 欧亚尺码专线欧洲B1B1| 中文字幕乱偷无码AV先锋蜜桃| 精品无人区无码乱码毛片国产 | 偷欢人妻激情系列| 成人免费无码H黄网站WWW| 女角色翻白眼流口水流眼泪图片 | 久久久一本精品99久久精品88| 亚洲AV午夜精品一区二区三区 | 成人精品视频99在线观看免费| 女人为啥摸几下就让进了| 用力挺进她的花苞| 久久ER热在这里只有精品66| 亚洲爆乳WWW无码专区| 国产亲妺妺乱的性69视频播放| 四虎国产精品永久在线| 丁香五月天天综合亚洲| 日本一道综合久久AⅤ久久| CHINESEXXXXHD麻豆| 内射少妇骚B一√| 性欧美玩弄性少妇HD| 蜜桃AV噜噜一区二区三区| 又黄又硬又湿又刺激视频免费| 久久精品亚洲中文无东京热| 亚洲欧美精品伊人久久| 精品国产亚洲AV麻豆映画| 亚洲成AV人在线观看网站| 好儿子你插得太深了| 亚洲А∨天堂久久精品9966| 黑人又大又粗又硬XXXXX| 亚洲国产成人爱AV网站| 精品国产一区二区AV片| 亚洲欧美综合人成在线| 久久国产精品99久久人人澡| 亚洲国产一区二区A毛片| 狠狠做五月深爱婷婷| 亚洲男人AV天堂男人社区| 久久精品国产自在天天线| 亚洲最大成人网站| 狂猛欧美激情性XXXX在线观看| 在线观看国产精选免费| 末发育娇小性色XXXXX| 99RE免费99RE在线视频| 强行糟蹋人妻HD中文字幕| 被老头侵犯的人妻| 日韩人妻中文无码一区二区三区 | 麻豆人妻少妇精品无码专区2| 中文JAPANESE在线播放| 欧美肥妇多毛BBW| А√天堂资源最新版在线官网| 日本一区二区三区免费播放| 高h乱好爽要尿了潮喷了| 我调教同学的放荡麻麻| 国产无遮挡又黄又爽在线观看| 亚洲国产精华推荐单单品榜 | 一本久久A久久免费精品不卡| 美女把尿口扒开让男人桶爽| A级毛片免费高清视频| 日韩精品一二三区| 国产精品久久久久久久久软件| 亚洲AV日韩AV永久无码绿巨人 | 国产老妇伦国产熟女老妇高清 | www.AV无码| 少妇高潮潮喷到猛进猛出小说| 国产精品毛片AV一区二区三区| 亚洲国产成人五月综合网| 久久久久精品国产AV麻豆| 18禁丝瓜视频安卓版| 日本熟妇在线一区二区三区| 国产精品成人嫩草影院| 亚洲欧美日韩精品成人| 男女啪啪免费观看网站| 潮喷大喷水系列无码| 午夜精品久久久久久毛片| 久久99精品久久久久久国产| 939W78W78W乳液特色| 少妇ⅩXXOOOZZXXHD| 国产专区一线二线三线品牌东 | 亚洲精品午夜国产VA久久成人| 免费人成视频XVIDEOS| 动漫精品中文无码卡通动漫| 亚洲VA欧美VA天堂V国产综合| 蜜中蜜3在线观看视频| 大陆极品少妇内射AAAAAA| 亚洲AV中文无码字幕色本草| 免费无码午夜福利电影网| 房东老头揉捏吃我奶头影片| 亚洲国产精品无码7777一线| 女人大胆张开荫道口∞| 国产成人A区在线观看| 亚洲无人区码二码三码区别| 人妻少妇aB又紧又爽精品视频 | 荡女小姿的YIN乱生活| 亚洲国产成人精品女人久久久 | 美丽人妻被按摩中出中文字幕| 赤裸羔羊Ⅲ致命快感 电影| 亚洲AV永久无码成人网站| 女人18毛片A级毛片免费视频| 国产AV无码区亚洲AV欧美| 亚洲一区强奸视频| 色欲A∨无码蜜臀AV免费播| 精品人妻久久久久久888| 把腿张开老子臊烂你的小说| 亚洲А∨天堂久久精品2021| 欧美性色黄大片WWW喷水| 国产肉丝袜在线观看| 99久久国产热无码精品免费| 午夜无码片在线观看影院中文| 男孩子都会夹住女孩子头发| 国产精品无码AV在线播放|