學習來源與說明
https://www.kancloud.cn/thinkphp/thinkphp5_quickstart
測試與部署均在windows10下進行學習。
Composer安裝和更新
Composer 是 PHP 用來管理依賴(dependency)關係的工具。可以在自己的專案中宣告所依賴的外部工具庫(libraries),Composer 會幫你安裝這些依賴的庫檔案。
網址:https://www.phpcomposer.com/
下載:https://getcomposer.org/Composer-Setup.exe
ThinkPHP框架下載地址
[ Github ]
應用專案: https://github.com/top-think/think
核心框架: https://github.com/top-think/framework
[ 碼雲 ]
應用專案: https://git.oschina.net/liu21st/thinkphp5.git
核心框架: https://git.oschina.net/liu21st/framework.git
[ Coding ]
應用專案: https://git.coding.net/liu21st/thinkphp5.git
核心框架: https://git.coding.net/liu21st/framework.git
部署與測試
部署過程採用xampp搭建。
XAMPP(Apache+MySQL+PHP+PERL)是一個功能強大的建站整合軟體包。
下載完以後預設安裝。安裝完畢後開啟xampp-control,如下介面。點選Apache的start和MySQL的start,允許網路,輸入127.0.0.1測試。
Apache如果無法啟動考慮埠占用問題,使用埠80,443。在cmd視窗下命令:netstat -ano檢視埠占用情況,然後在工作管理員中找到佔用埠的對應程式PID,結束掉,重新啟動Apache試試。
測試完畢後,在Apache的Config下的httpd.conf檔案開啟,在文字最後(568行最後左右)編輯輸入:
<VirtualHost *:80> DocumentRoot "C:\xampp\htdocs\server\public" ServerName www.server.com </VirtualHost>
然後在C:\xampp\htdocs下建立資料夾server,將php框架解壓到該資料夾下,檢查對應出的public資料夾。
然後在C:\Windows\System32\drivers\etc中,找到host檔案,修改屬性,使可以編輯,然後在最後端新增:
192.168.0.103 www.matlabserver.com
使可以通過域名對應到網路ip。其中的192.168.0.103為本機對應在區域網的ip地址,使用者應該在cmd視窗中使用ipconfig,自行查詢對應的區域網ip地址。
最後測試,瀏覽器中輸入ip,測試完畢後的效果如下:(當然啦,現在thinkPHP都出到6.0版本了,如果使用了5.1版本或者6.0,應該效果略有差異,但是不影響吧)
demo、控制器、檢視、除錯開關
demo
在ThinkPHP框架根路徑開啟cmd視窗,輸入
php think build --module demo
會在application/下生成demo程式碼作為示例。
控制器
控制器位於路徑application/index/controller/Index.php。編輯該檔案即對主頁編輯。控制器的路徑和public/index.php配置有關。
修改application/index/controller/Index.php檔案,則修改了主介面,如:
<?php namespace app\index\controller; class Index { public function index() { return 'Hello,World!'; } }
檢視
和demo一樣,在application/index/下建立view資料夾,如圖:
在之下創立hello.html,有如下內容:
<html> <head> <title>hello {$name}</title> </head> <body> hello, {$name}! </body> </html>
修改application/index/controller/Index.php控制器為以下,則通過hello相互關聯,控制器新增檢視檔案功能。(使用use宣告繼承方便,不適用use則需要class Index extends \think\Controller宣告繼承。
<?php namespace app\index\controller; use think\Controller; class Index extends Controller { public function hello($name = 'thinkphp') { $this->assign('name', $name); return $this->fetch(); } }
效果如下:(注意url訪問 http://serverName/index.php/模組/控制器/操作)
除錯開關
除錯開關位於application/config.php,第20行左右修改為以下,則關閉了除錯開關:
'app_debug' => false,
開啟狀態:
關閉狀態:
與資料庫連線
資料庫在xampp下的開啟方式,可以通過MySQL的admin開啟,也可以在cmd視窗中操作。下圖為在xampp下的開啟mysql方式。
在cmd中操作,首先將環境變數新增到path中,然後再開啟cmd視窗。下圖為新增環境變數示例。
然後輸入如下,進入mysql。
輸入以下,建立id,data的資料庫,插入三條資料。
show databases; create database demo;
use demo
CREATE TABLE IF NOT EXISTS `think_data`( `id` int(8) unsigned NOT NULL AUTO_INCREMENT, `data` varchar(255) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; INSERT INTO `think_data`(`id`,`data`) VALUES (1,'thinkphp'), (2,'php'), (3,'framework');
select * from think_data;
一點效果:
在application/database.php中修改檔案內容為:
<?php return [ // 資料庫型別 'type' => 'mysql', // 伺服器地址 'hostname' => '127.0.0.1', // 資料庫名 'database' => 'demo', // 資料庫使用者名稱 'username' => 'root', // 資料庫密碼 'password' => '', // 資料庫連線埠 'hostport' => '', // 資料庫連線引數 'params' => [], // 資料庫編碼預設採用utf8 'charset' => 'utf8', // 資料庫表字首 'prefix' => 'think_', // 資料庫除錯模式 'debug' => true, ];
修改控制器程式碼為:
<?php namespace app\index\controller; use think\Controller; use think\Db; class Index extends Controller { public function index() { $data = Db::name('data')->find(); $this->assign('result', $data); return $this->fetch(); } }
新增模板檔案view/index.html,設立內容為:
<html> <head> <title></title> </head> <body> {$result.id}--{$result.data} </body> </html>
儲存,最終效果為:
成功連線上了資料庫,然後輸出第一條資料。
也可以嘗試更改控制器程式碼第九行為:
$data = Db::name('data')->where('id',2)->find();
輸出資料庫第二條資料。
參閱地址:https://www.kancloud.cn/manual/thinkphp5/135176