學習來源與說明
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