程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> ThinkPHP架構(一)-TP原理及路徑問題及後台實現實例

ThinkPHP架構(一)-TP原理及路徑問題及後台實現實例

編輯:PHP綜合

     以後要堅持寫啦,記錄自己的技術學習路程

     本人兩個月前,剛完成基於PHP的研會門戶網站,雖然實現了基本功能,但感覺技術有些單薄,便想了一些優化的技術,畢竟項目做的不再多,而在於質量。

   -- 前台使用了bootstrap框架技術,美化頁面效果很顯著(接下來計劃有時間總結下bootstrap);並且應用HTML語義化文章結構,便於搜索引擎查找。

   -- 後台打算使用ThinkPHP框架技術,這樣可以使整體架構是MVC模式,結構化和模塊化項目,並且使頁面的html頁碼和php代碼分離。

   -- 最後計劃實現頁面的靜態化,方便吸引搜索引擎爬蟲的曝光率。

  接下來筆者會陸續總結寫一些博客,今天就先介紹總結一些TP框架的入門使用,以本人編寫項目為主線介紹,希望也能夠幫助和我一樣剛接觸TP架構的朋友。

  後台應用TP框架:

  1)路徑問題

         由於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模塊的增刪改查方法)

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved