gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区

站長資訊網(wǎng)
最全最豐富的資訊網(wǎng)站

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

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

0X01 Thinkphp 的安裝

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

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

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

0X02 重點目錄結(jié)構(gòu)及文件介紹

1.目錄結(jié)構(gòu)

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

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

thinkphp : 框架的核心目錄

2.關(guān)鍵文件

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

application/database.php 數(shù)據(jù)庫配置文件

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

0X03 配置虛擬主機

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

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

2.刪除 vhost.conf 中原有的默認(rèn)內(nèi)容,添加如下內(nèi)容

<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 的話,官方默認(rèn)的 .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() 接受參數(shù),當(dāng)然也要在開始寫上命名空間

示例代碼:

<?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開發(fā)設(shè)計的高性能框架</span></p><span style="font-size:22px;">[ V5.0 版本由 <a href="http://www.qiniu.com" rel="external nofollow" target="qiniu">七牛云</a> 獨家贊助發(fā)布 ]</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

結(jié)果:

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

2.模板和控制器的關(guān)系

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

tp5 是通過

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

進(jìn)行賦值并通過

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

進(jìn)行渲染的

示例代碼:

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 已經(jīng)太多層了,這非常不利于搜索引擎的收錄,于是 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 就會轉(zhuǎn)給 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并使用

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

4.URL 自動生成

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

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

這個方法運行的結(jié)果就是

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

5.請求和響應(yīng)

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

1.接收請求的參數(shù)

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

通過以下代碼可以得到 username

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

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

echo input('username');

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

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

這個也有自己的函數(shù)助手

echo request()->url();

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

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

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

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

2.綁定參數(shù)

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

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

3.返回值

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

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

當(dāng)然我們的 tp 也有對一些東西的封裝,比如實現(xiàn)輸出一段話然后進(jìn)行跳轉(zhuǎn)到某個方法,或者是直接進(jìn)行重定向

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

6.模板與輸出

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

layout.html

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

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

{layout name="layout"/}

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

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

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

{__NOLAYOUT__}

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

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

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

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

0X05 參考

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

贊(0)
分享到: 更多 (0)
?
網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號
gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区
久久精品视频在线观看免费| 日韩av播放器| 香蕉视频999| 乱熟女高潮一区二区在线| 欧美三级午夜理伦三级老人| 色婷婷一区二区三区在线观看| 亚洲三级在线观看视频| 中国老女人av| 九九视频精品在线观看| 在线观看日本一区二区| www.av91| 一本一道久久a久久综合蜜桃| 少妇高潮大叫好爽喷水| 无遮挡又爽又刺激的视频| 91麻豆天美传媒在线| 成人免费观看视频在线观看| 五月天丁香花婷婷| 久久精品视频16| 久久久久久久久影视| 国内自拍视频网| 91九色丨porny丨国产jk| 激情在线观看视频| 久久黄色免费看| 国产l精品国产亚洲区久久| 国产人妻互换一区二区| 中国 免费 av| 777久久精品一区二区三区无码| 欧美成人黄色网址| 免费日韩中文字幕| 国产精品无码一本二本三本色| 波多野结衣家庭教师在线| 国产精彩视频一区二区| 国内少妇毛片视频| 无码专区aaaaaa免费视频| 久久手机在线视频| 国产91沈先生在线播放| 日本免费黄色小视频| 激情五月婷婷六月| 国产在线播放观看| 黄色国产小视频| 午夜不卡福利视频| 欧美黄网在线观看| 久久精品国产精品亚洲色婷婷| 苍井空浴缸大战猛男120分钟| 999精品网站| 米仓穗香在线观看| 可以在线看的黄色网址| 成年人视频在线免费| 国产精品igao网网址不卡| 大胆欧美熟妇xx| 日本男人操女人| 可以在线看黄的网站| 99999精品视频| 真人做人试看60分钟免费| 天天干在线影院| 免费看的黄色大片| 色撸撸在线观看| 青青草精品视频在线观看| 中文字幕精品在线播放| 99视频免费播放| 欧美日韩在线一| 欧美黄网在线观看| 99热都是精品| 欧美性猛交xxxx乱大交91| 韩国视频一区二区三区| 欧美日韩在线一| a级黄色一级片| 99er在线视频| 欧妇女乱妇女乱视频| 免费在线黄网站| www.黄色网址.com| 欧美 亚洲 视频| 成人av在线不卡| 国产91在线亚洲| 成年人午夜免费视频| 国产二级片在线观看| 草草视频在线免费观看| 国产精品va无码一区二区| 1024精品视频| 美女网站色免费| 五月天六月丁香| 国产91在线亚洲| 欧美黑人又粗又大又爽免费| 五月婷婷狠狠操| 男人天堂成人网| 免费在线观看毛片网站| 国产区二区三区| 久久精品无码中文字幕| 男人天堂999| av一区二区三区免费观看| 国产在线青青草| 黄频视频在线观看| 国产日韩一区二区在线观看| 欧美日韩精品区别| 国产黄色片免费在线观看| 看欧美ab黄色大片视频免费| 欧美 国产 精品| 成人在线激情网| 亚洲国产精品无码观看久久| 日本xxxx黄色| 欧美少妇性生活视频| 日韩极品视频在线观看| 国产欧美日韩小视频| 秋霞在线一区二区| 国产成人美女视频| 一区二区三区韩国| 日本福利视频在线| 男人天堂av片| 美女av免费观看| 欧美性视频在线播放| 老司机午夜av| 中文字幕第80页| 天堂中文视频在线| gogogo高清免费观看在线视频| 18禁免费观看网站| 久久这里只有精品18| 久久久久久www| 精品国产成人av在线免| 亚洲国产精品毛片av不卡在线| 亚洲中文字幕无码不卡电影| 可以在线看的黄色网址| 五月天亚洲视频| 深爱五月综合网| 久久久久久久9| 欧美日韩大尺度| 小说区视频区图片区| 成人午夜免费在线视频| 69sex久久精品国产麻豆| 午夜两性免费视频| 免费成人进口网站| 91猫先生在线| mm131午夜| 免费男同深夜夜行网站| 午夜在线视频免费观看| 日韩欧美视频网站| 国产高潮免费视频| 日本熟妇人妻xxxx| 中文字幕成人在线视频| 老司机午夜性大片| 亚洲一区二区中文字幕在线观看| 亚洲AV无码成人精品一区| 亚洲免费黄色录像| 日韩少妇内射免费播放18禁裸乳| 手机在线视频一区| 黄色免费观看视频网站| 狠狠精品干练久久久无码中文字幕| 午夜精品久久久久久久无码| 中文字幕超清在线免费观看| 日韩无套无码精品| 成熟了的熟妇毛茸茸| 最新av网址在线观看| 中文字幕亚洲影院| 黄大色黄女片18第一次| 九九九九免费视频| 男人天堂av片| 阿v天堂2018| 男女高潮又爽又黄又无遮挡| 欧美一级视频在线播放| 成人免费网站入口| 久久手机在线视频| 97超碰国产精品| 大肉大捧一进一出好爽视频| 欧美色图另类小说| 久章草在线视频| 亚洲精品第三页| 天堂av免费看| 97xxxxx| theporn国产精品| 麻豆视频传媒入口| 亚洲自偷自拍熟女另类| 欧在线一二三四区| 超碰成人在线免费观看| 国产精品国三级国产av| 日韩激情免费视频| 亚洲在线观看网站| 欧美不卡在线播放| 中文字幕日韩久久| 国产免费毛卡片| 好吊色这里只有精品| 岳毛多又紧做起爽| 欧美性潮喷xxxxx免费视频看| 欧美精品色婷婷五月综合| 黄色一级视频播放| 少妇高清精品毛片在线视频| 国产盗摄视频在线观看| 日本久久精品一区二区| 东京热加勒比无码少妇| 奇米影视亚洲色图| 佐佐木明希av| 一本色道久久88亚洲精品综合| 爱福利视频一区二区| 一女被多男玩喷潮视频| 26uuu成人| 91插插插插插插插插| 宅男噜噜噜66国产免费观看| 日本不卡在线观看视频| 日韩网址在线观看| 成熟老妇女视频| 日韩精品一区二区三区不卡| 日韩久久一级片|