一直用CSDN的博客,因爲域名當時註冊寫的不合適,如今想來博客園寫博客,之後要堅持寫啦,記錄本身的技術學習路程php
本人兩個月前,剛完成基於PHP的研會門戶網站,雖然實現了基本功能,但感受技術有些單薄,便想了一些優化的技術,畢竟項目作的再也不多,而在於質量。css
-- 前臺使用了bootstrap框架技術,美化頁面效果很顯著(接下來計劃有時間總結下bootstrap);而且應用HTML語義化文章結構,便於搜索引擎查找。html
-- 後臺打算使用ThinkPHP框架技術,這樣可使總體架構是MVC模式,結構化和模塊化項目,而且使頁面的html頁碼和php代碼分離。前端
-- 最後計劃實現頁面的靜態化,方便吸引搜索引擎爬蟲的曝光率。mysql
接下來筆者會陸續總結寫一些博客,今天就先介紹總結一些TP框架的入門使用,以本人編寫項目爲主線介紹,但願也可以幫助和我同樣剛接觸TP架構的朋友。sql
後臺應用TP框架:數據庫
1)路徑問題bootstrap
因爲TP框架是MVC架構,原理跟smaty模板的同樣,contraller調用view下的模板,將模板html頁面替換成php,而後包含到contraller下的控制頁面,而且緩存在緩存夾cache中,訪問contraller時會自動定位到cache下的緩存php文件。這樣就引出了路徑的問題,模板view下的相對路徑須要些contraller的相對路徑,建議用絕對路徑。
介紹幾個系統常量:
網站根目錄地址 __ROOT__ 路徑爲根目錄 /
當前路徑下 __URL__
公共區: __PUBLIC__ 路徑爲 /Public/
當前應用入口 __APP__
還能夠本身定義路徑變量,方便項目開發。緩存
例子:建議使用絕對路徑代替相對路徑服務器
<link rel="stylesheet" href="__PUBLIC__/css/bootstrap.css"> 代替<link rel="stylesheet" href="../../Public/css/bootstrap.css">
<img src="__ROOT__/admin/Home/View/Public/images/logo.png"/>代替 <img src="../../../../admin/Home/View/Public/images/logo.png"/>
2)數據庫的鏈接展現,例子效果以下:
(1)ThinkPHP/Conf/conversation.php中配置數據庫鏈接參數:
/* 數據庫設置 */
'DB_TYPE' => 'mysql', // 數據庫類型
'DB_HOST' => 'localhost', // 服務器地址
'DB_NAME' => 'yanhui', // 數據庫名
'DB_USER' => 'root', // 用戶名
'DB_PWD' => '', // 密碼
'DB_PORT' => '', // 端口
(2)Contraller中新建控制news頁面NewsContrallor:
<?php
namespace Home\Controller;
use Think\Controller;
class NewsController extends Controller {
public function index(){
$user=M('news');
$this->rows=$user->order('id')->select();
$this->display();
}
public function add(){
$this->display();
}
public function insert(){
$this->display();
}
public function delete(){
$this->display();
}
public function edit(){
$this->display();
} public function update(){
$this->display();
}
}
(3)View下新建模板頁面News/index.html(用了bootstrap展現前端)
<div class="container"> <div class="panel panel-primary"> <div class="panel-heading">新聞展現</div> <div class="panel-body"> <table class="table table-bordered table-striped"> <tr> <th>id</th> <th>標題</th> <th>概要</th> <th>上牆</th> <th>時間</th> <th>欄目</th> </tr> <volist name='rows' id='row'> <tr> <td>{$row.id}</td> <td>{$row.title}</td> <td>{$row.abstract}</td> <td>{$row.shelf}</td> <td>{$row.regtime|date='Y-m-d',###}</td> <td>{$row.newsclassId}</td> </tr> </volist> </table> </div> </div></div>(根據這個例子,依次實現news模塊的增刪改查方法)