1.URL訪問php
能夠看到,不管是URL訪問仍是命令行訪問,都採用PATH_INFO訪問地址,其中PATH_INFO的分隔符是能夠設置的。注意:5.0取消了URL模式的概念,而且普通模式的URL訪問再也不支持,但參數能夠支持普通方式傳值。thinkphp
即原來的普通模式http://localhost/?m=home&c=user&a=login&var=value(用參數傳遞來指定模塊控制器方法)和兼容模式http://localhost/?s=/home/user/login/var/value(用惟一參數傳遞模塊控制器方法和參數)都廢除了。剩下的pathinfo模式和重寫模式均可以使用,並且更美觀。函數
2.Traits引入thinkphp5
Trait 是PHP5.4引入的一個新特性。經過兩行語句(PHP5.5以上只需第二句)就能夠引入指定文件裏的方法。感受和接口差很少,可是trait是有方法體的,因此突出了複用性,接口突出的是多態。講真我比較喜歡trait,因此看到TP5有這個特性也是眼前一亮。post
load_trait('controller/Jump'); // 引入traits\controller\Jump use \traits\controller\Jump;
3.路由定義spa
TP5的路由的變化真的太大了...TP3的時候路由仍是默認路由(模塊控制器方法 對應就是 相應的路由),TP5就變成了能夠配置成任何字符的路由,雖然比以前繁瑣了一些,可是這樣使得路由定義更強大了,BTW感受有點像Lavarel。命令行
// 註冊路由到index模塊的News控制器的read操做 Route::rule('new/:id','index/index/read');
除了rule方法,還有get,post,delete方法之類,反正真的挺強大的。code
4.控制器 前置操做接口
protected $beforeActionList = [ 'first', 'second' => ['except'=>'hello'], 'three' => ['only'=>'hello,data'], ];
這個新功能也是讓我眼前一亮的,由於在實際開發中應該會頻繁用到,好比登陸Session驗證就須要在每一個方法開頭進行,否則用戶沒登陸就能夠執行功能。代碼分別表示所有方法都前置執行first,除了hello其餘方法都前置執行second,只有hello和data方法前置執行three。three
5.I方法變成了一大串的函數
// 獲取當前請求的name變量 Request::instance()->param('name');// 獲取當前請求的全部變量(通過過濾) Request::instance()->param();// 獲取當前請求的全部變量(原始數據) Request::instance()->param(false);// 獲取當前請求的全部變量(包含上傳文件) Request::instance()->param(true);
原本獲取post過來的id只需I(‘post.id’)或者I(‘id’)就能夠,如今要寫Request::instance()->param('id');這一串東西....還要use Think\Request;麻煩了好多...原本用I方法就是由於方便,比起$_POST()要少寫不少,如今這個方法真的太麻煩了...
ThinkPHP5.0 取消了用於判斷請求類型的系統常量(如IS_GET,IS_POST等),統一採用 think\Request類 處理請求類型。
IS_GET == Request::instance()->isGet()
IS_POST == Request::instance()->isPost()
嗯也是變長變麻煩了...
在看TP5的時候還稍微用了一下,印象深入的竟然是錯誤提示...比以前版本的提示好看並且也詳細多了。
BTW,但願TP愈來愈強大!
若有錯誤,懇請指點。_(:з」∠)_,謝謝觀看。
參考:ThinkPHP5.0徹底開發手冊(http://www.kancloud.cn/manual/thinkphp5)