ThinkPHP 学习笔记 ( 一 ) 项目部署:应用部署方式与模块分组部署方式
ThinkPHP ( 官方網站:http://www.thinkphp.cn/?) 目前最新版本是 3.2.2,它要求 PHP 的版本高于 5.3.0,由于我的 WAMPServer 集成的 PHP 版本是 5.2.6,所以下載了低一版本的 ThinkPHP ( 3.1.3 ) 來學習。
下載的 ThinkPHP 的框架包解壓后的結構是:
├─ThinkPHP.php 框架入口文件 ├─Common 框架公共文件 ├─Conf 框架配置文件 ├─Extend 框架擴展目錄 ├─Lang 核心語言包目錄 ├─Lib 核心類庫目錄 │ ├─Behavior 核心行為類庫 │ ├─Core 核心基類庫 │ ├─Driver 內置驅動 │ │ ├─Cache 內置緩存驅動 │ │ ├─Db 內置數據庫驅動 │ │ ├─TagLib 內置標簽驅動 │ │ └─Template 內置模板引擎驅動 │ └─Template 內置模板引擎 └─Tpl 系統模板目錄在 WEB 根目錄下創建項目目錄 app,把框架包放至 app 目錄下,然后在 app 目錄下創建入口文件 index.php。
配置入口文件 index.php
<?php define('THINK_PATH','./ThinkPHP/'); require(THINK_PATH."ThinkPHP.php");此時通過 url 訪問 index.php 文件,頁面顯示:
此時項目目錄 APP 下內容頁發生了變化,除了入口文件 index.php 和框架包,其他都是自動生成的:
每個文件夾的作用分別是:
├─index.php 項目入口文件 ├─Common 項目公共文件目錄 ├─Conf 項目配置目錄 ├─Lang 項目語言目錄 ├─Lib 項目類庫目錄 │ ├─Action Action類庫目錄 │ ├─Behavior 行為類庫目錄 │ ├─Model 模型類庫目錄 │ └─Widget Widget類庫目錄 ├─Runtime 項目運行時目錄 │ ├─Cache 模板緩存目錄 │ ├─Data 數據緩存目錄 │ ├─Logs 日志文件目錄 │ └─Temp 臨時緩存目錄 └─Tpl 項目模板目錄這種方式的入口文件 index.php 是存在項目目錄之內。也可以入口文件移動到 app 目錄的外面,修改入口文件 index.php :
<?phpdefine('THINK_PATH','./app/ThinkPHP/'); define('APP_NAME','app'); define('APP_PATH','./app/'); require(THINK_PATH."ThinkPHP.php");目錄結構:
項目的部署方式
項目的部署方式分為應用部署和模塊分組部署。應用部署是每一個項目對應一個入口文件,例如前臺入口文件對應 index.php,后臺入口文件對應 admin.php
前臺入口文件 index.php:
<?phpdefine('THINK_PATH','./ThinkPHP/'); define('APP_NAME','home'); define('APP_PATH','./home/'); require(THINK_PATH."ThinkPHP.php");
后臺入口文件 admin.php:
<?phpdefine('THINK_PATH','./ThinkPHP/'); define('APP_NAME','admin'); define('APP_PATH','./admin/'); require(THINK_PATH."ThinkPHP.php");模塊分組方式是所有應用對應一個入口文件,[ 使用模塊分組可以簡化為一個項目目錄。項目的模板文件還是放到項目的 Tpl 目錄下面,只是將外部調用的資源文件, 包括圖片 JS 和 CSS 統一放到網站的公共目錄Public 下面,分 Images、Js 和 Css 子目錄存放,如果有可能的話,甚至也可以把這些資源文件單獨放一個外部的服務器遠程調用,并進行優化。(?事實上,系統目錄和項目目錄可以放到非WEB訪問目錄下面,網站目錄下面只需要放置 Public 公共目錄和入口文件,從而提高網站的安全性。) 來源:ThinkPHP 官方文檔 ]
( 圖片來源:http://www.php400.cn/275.html?)模塊分組方式需要配置 APP_NAME 和 APP_PATH 。
在 WEB 根目錄創建項目目錄 App,并且拷貝框架包 ThinkPHP 至同級目錄,同時在同級創建所有項目公共資源目錄?Public、所有項目公共上傳目錄 Uploads 以及入口文件 index.php:
index.php:
<?phpdefine('THINK_PATH','./ThinkPHP/'); //定義項目名稱和路徑 define('APP_NAME','Myapp'); define('APP_PATH','./App/'); define('APP_DEBUG',true); //加載框架入口文件 require(THINK_PATH."ThinkPHP.php");通過 url 訪問 index.php ,初始化項目環境后,App 目錄下自動生成的目錄:
?然后在App/Conf/config.php 配置文件中,配置分組選項:
<?php return array(//'配置項'=>'配置值''APP_GROUP_LIST'=>'Admin,Home','DEFAULT_GROUP'=>'Home', ); ?>?如果此時訪問 index.php 入口文件,ThinkPHP 會報錯:
因為在公共配置文件中開啟了模塊分組,但相應的分組目錄并沒有創建,需要手動創建 Admin 和 Home 組的各自配置文件:Conf 目錄下創建 Admin 和 Home 目錄,然后分別在目錄中創建 config.php 配置文件;App/Lib/Action 目錄也需要創建 Admin 和 Home 目錄,然后將默認創建的 IndexAction.class.php 文件移動到 App/Lib/Action/Home 目錄,此時訪問入口文件不會報錯,項目部署成功:
總結:傳統的模式適合耦合度不高的項目,也是 ThinkPHP 官方推薦的方式;
模塊分組方式各模塊之間可以方便調用,公共資源也能夠彼此利用,比較適合較大容量的項目。
參考資料:ThinkPHP 官方教程、ThinkPHP 官方文檔、http://www.php400.cn/category/thinkphp%E6%A1%86%E6%9E%B6、《PHP MVC開發實戰》
總結
以上是生活随笔為你收集整理的ThinkPHP 学习笔记 ( 一 ) 项目部署:应用部署方式与模块分组部署方式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 欧马可方向盘右下控制杆向前推什么意思?
- 下一篇: ThinkPHP 数据库操作之数据表模型