ThinkPHP框架初步掌握


為了幫老師用ThinkSNS二次開發一個微博系統,專門花了幾天學習ThinkPHP框架,現在將一些ThinkPHP入門知識作以記錄。

 

首先聲明:

本文不是完全教程,只是將開發中碰到的問題作以總結,如果需要學習ThinkPHP框架,請參考官網文檔:

官網首頁

ThinkPHP3.1快速入門教程(更新中)

目錄結構

目錄/文件 說明
ThinkPHP.php 框架入口文件
Common 框架公共文件目錄
Conf 框架配置文件目錄
Lang 框架系統語言目錄
Lib 系統核心基類庫目錄
Tpl 系統模板目錄
Extend 框架擴展目錄(關於擴展目錄的詳細信息請參考后面的擴展章節)

 

 

 

 

 

 

 

 

 

我的文件結構

 

入口(ThinkPHP.php)

1、先在Web根目錄(我用的phpstudy,是www文件夾)下面創建一個app項目(這個app就是我們的項目名)。

2、將下載的ThinkPHP解壓(我是解壓到app下,名為ThinkPHP)。

3、在app目錄下面創建一個index.php文件,添加兩行簡單的代碼:

    <?php
    define("APP_DEBUG", TRUE);  //開啟調試模式,方便調試   
require '/ThinkPHP框架所在目錄/ThinkPHP.php';  //我的為/ThinkPHP/ThinkPHP.php

這行代碼的作用就是加載ThinkPHP框架的入口文件ThinkPHP.php,這是所有基於ThinkPHP開發應用的第一步。
然后,在瀏覽器中訪問這個入口文件。

        http://localhost/app/index.php

因為index.php為默認首頁,所以亦可省略。

 

模板(Tpl)

Tpl文件夾下為模版頁面,可放置html、php等頁面。

同時支持多模塊,即可在Tpl下建立多個文件夾,每個文件夾對應一個模塊,同時一個模塊和一個控制器對應(需要名字相同)

我的:

兩個模塊Form、Index

Tpl下對應有兩個文件夾Form、Index

則對應的控制器也是兩個FormController.class.php、IndexController.class.php

 

控制器(Controller)

命名:模塊名+Controller

PATHINFO模式:是系統的默認URL模式,提供了最好的SEO支持,系統內部已經做了環境的兼容處理,所以能夠支持大多數的主機環境。

對應上面的URL模式,PATHINFO模式下面的URL訪問地址是:

    http://localhost/app/index.php/module/action/var/value/
  //module為模塊名稱(控制器名稱)、不帶Controller
  //action為操作名稱(控制器中的方法名稱)、不帶Model
  //var為參數名
  //value為參數值
  //var與value成對出現

我的:

    http://localhost/app/index.php/Index/index
  調用IndexController下的index()方法  
  如果該方法不存在,將直接調用Tpl/Index/index.html頁面

 

模型(Model)

1、命名:模塊名字+Model

在ThinkPHP的模型里面,有幾個關於數據表名稱的屬性定義,在對應的Model中聲明為屬性字段(或者叫成員變量):

屬性 說明
tableName 不包含表前綴的數據表名稱,一般情況下默認和模型名稱相同,只有當你的表名和當前的模型類的名稱不同的時候才需要定義。
trueTableName 包含前綴的數據表名稱,也就是數據庫中的實際表名,該名稱無需設置,只有當上面的規則都不適用的情況或者特殊情況下才需要設置。
dbName 定義模型當前對應的數據庫名稱,只有當你當前的模型類對應的數據庫名稱和配置文件不同的時候才需要定義。

 

 

 

只要命名規范,ThinkPHP會根據Model名字找到你要調用的數據庫表,當然,前提你得建立。

規則:

1)表名為tp_categories(tp_為表前綴,在配置文件中配置)

 

    protected $tableName = 'categories'; 

 

2)表名為top_depts,top_不是系統配置的表前綴,需要使用表的全名

    protected $trueTableName = 'top_depts'; 

3)可設置數據庫

    protected $dbName = 'top';

 

調用:

可調用本模塊Model,也可跨項目或模塊調用。

本模塊:

 

D("UserModel")

 

 

跨項目:

 

D("UserModel", "app")  //D(Model名稱,項目名稱)

 

M方法與D方法類似,不過,我只用了D方法

 

 

函數庫

可通過load(@.hello),hello為函數庫文件名稱

也可通過在項目配置文件中定義LOAD_EXT_FILE參數,例如:

    "LOAD_EXT_FILE"=>"user,db"

 

類庫

通過import可引入使用的類包,可跨項目或模塊

import("App.Model.UserModel");
App為應用名

Model表明是模型

UserModel為模型名稱

 

數據庫

這塊東西太多,使用也最頻繁,因此,官方文檔介紹的很詳細,請大家點擊文章開頭的鏈接查看

 

寫了好久,希望對大家有點用處。

 

 

原文鏈接:http://www.cnblogs.com/FlyFive/archive/2013/01/06/2848246.html

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM