composer create-project topthink/think=5.0.* tp5 --prefer-dist
首先克隆下載應用項目倉庫php
git clone https://github.com/top-think/think tp5
而後切換到tp5目錄下面,再克隆核心框架倉庫:css
git clone https://github.com/top-think/framework thinkphp
瀏覽器中輸入訪問地址(tp5與laravel5.6相同,項目訪問目錄爲/public)前端
http://localhost/tp5/public/
project 應用部署目錄 ├─application 應用目錄(可設置) │ ├─common 公共模塊目錄(可更改) │ ├─index 模塊目錄(可更改)一個典型的應用是由多個模塊組成的,這些模塊一般都是應用目錄下面的一個子目錄,每一個模塊都有本身獨立的配置文件、公共文件和類庫文件。 │ │ ├─config.php 模塊配置文件 │ │ ├─common.php 模塊函數文件 │ │ ├─controller 控制器目錄(5.0的控制器類比較靈活,能夠無需繼承任何基礎類庫,控制器主要負責請求的接收,並調用相關的模型處理,並最終經過視圖輸出。嚴格來講,控制器不該該過多的介入業務邏輯處理) │ │ ├─model 模型目錄(型類一般完成實際的業務邏輯和數據封裝,並返回和格式無關的數據,模型類並不必定要訪問數據庫,並且在5.0的架構設計中,只有進行實際的數據庫查詢操做的時候,纔會進行數據庫的鏈接,是真正的惰性鏈接) │ │ ├─view 視圖目錄(控制器調用模型類後返回的數據經過視圖組裝成不一樣格式的輸出。視圖根據不一樣的需求,來決定調用模板引擎進行內容解析後輸出仍是直接輸出。視圖一般會有一系列的模板文件對應不一樣的控制器和操做方法,而且支持動態設置模板目錄) │ │ └─ ... 更多類庫目錄 │ ├─command.php 命令行工具配置文件 │ ├─common.php 應用公共(函數)文件 │ ├─config.php 應用(公共)配置文件 │ ├─database.php 數據庫配置文件 │ ├─tags.php 應用行爲擴展定義文件 │ └─route.php 路由配置文件 ├─extend 擴展類庫目錄(可定義) ├─public WEB 部署目錄(對外訪問目錄) │ ├─static 靜態資源存放目錄(css,js,image) │ ├─index.php 應用入口文件 │ ├─router.php 快速測試文件 │ └─.htaccess 用於 apache 的重寫 ├─runtime 應用的運行時目錄(可寫,可設置) ├─vendor 第三方類庫目錄(Composer) ├─thinkphp 框架系統目錄 │ ├─lang 語言包目錄 │ ├─library 框架核心類庫目錄 │ │ ├─think Think 類庫包目錄 │ │ └─traits 系統 Traits 目錄 │ ├─tpl 系統模板目錄 │ ├─.htaccess 用於 apache 的重寫 │ ├─.travis.yml CI 定義文件 │ ├─base.php 基礎定義文件 │ ├─composer.json composer 定義文件 │ ├─console.php 控制檯入口文件 │ ├─convention.php 慣例配置文件 │ ├─helper.php 助手函數文件(可選) │ ├─LICENSE.txt 受權說明文件 │ ├─phpunit.xml 單元測試配置文件 │ ├─README.md README 文件 │ └─start.php 框架引導文件 ├─build.php 自動生成定義文件(參考) ├─composer.json composer 定義文件 ├─LICENSE.txt 受權說明文件 ├─README.md README 文件 ├─think 命令行入口文件
// 定義應用目錄 define('APP_PATH', __DIR__ . '/../application/'); // 加載框架引導文件 require __DIR__ . '/../thinkphp/start.php';
引導文件:依次執行下面操做 ,加載系統常量定義;加載環境變量定義文件;註冊自動加載機制;註冊錯誤和異常處理機制;加載慣例配置文件;執行應用;laravel
註冊自動加載:系統會調用 Loader::register()方法註冊自動加載,在這一步完成後,全部符合規範的類庫(包括Composer依賴加載的第三方類庫)都將自動加載git
應用結束github
在沒有開啓路由時,訪問路由的方式以下:web
http://serverName/index.php(或者其它應用入口文件)/模塊/控制器/操做/[參數名/參數值...] >php.exe index.php(或者其它應用入口文件) 模塊/控制器/操做/[參數名/參數值...]
URL大小寫thinkphp
默認狀況,url不區分大小寫,也就是說URL裏面的模塊/控制器/操做名會自動轉換爲小寫,控制器在最後調用的時候會轉換爲駝峯法處理。數據庫
// URL不區分大小寫狀況下,若是要訪問駝峯法的控制器類,則須要使用: http://localhost/index.php/Index/blog_test/read // 模塊名和操做名會直接轉換爲小寫處理。
若是但願URL訪問嚴格區分大小寫,能夠在應用配置文件中設置:apache
// 關閉URL中控制器和操做名的自動轉換 'url_convert' => false, //一旦關閉自動轉換,URL地址中的控制器名就變成大小寫敏感了,例如前面的訪問地址就要寫成: http://localhost/index.php/Index/BlogTest/read //可是下面的URL訪問依然是有效的: http://localhost/index.php/Index/blog_test/read //下面的URL訪問則無效: http://localhost/index.php/Index/blogtest/read //須要注意:路由規則中定義的路由地址是按照控制器名的實際名稱定義(區分大小寫)。
'default_return_type'=>'json' // 方法中直接return 便可 public function index() { $data = ['name'=>'thinkphp','url'=>'thinkphp.cn']; return ['data'=>$data,'code'=>1,'message'=>'操做完成']; } // 返回前端數據則爲: {"data":{"name":"thinkphp","url":"thinkphp.cn"},"code":1,"message":"\u64cd\u4f5c\u5b8c\u6210"}
// 若是須要指定數據類型返回則只須要再控制器中修改對應類型便可(核心支持的數據類型包括view、xml、json和jsonp,其餘類型的須要本身擴展。),以下: public function index() { $data = ['name'=>'thinkphp','url'=>'thinkphp.cn']; // 指定json數據輸出 // return json(['data'=>$data,'code'=>1,'message'=>'操做完成']); // 指定xml數據輸出 return xml(['data'=>$data,'code'=>1,'message'=>'操做完成']); }
因爲API開發不方便在客戶端進行開發調試,但ThinkPHP5的Trace調試功能支持Socket在內的方式,能夠實現遠程的開發調試。
'app_trace' => true, 'trace' => [ 'type' => 'socket', // socket服務器 'host' => 'slog.thinkphp.cn', ],