国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > ThinkPHP > 正文

ThinkPHP創(chuàng)建應(yīng)用的一般開發(fā)流程及實例

2024-09-09 15:19:59
字體:
供稿:網(wǎng)友

Thinkphp是免費開源的php框架,提供了建站所需要的各種組件,方便用戶快速建設(shè)部署網(wǎng)站.

Thinkphp簡介:http://thinkphp.cn/Manual/16

官方完全開發(fā)手冊:http://thinkphp.cn/Manual

使用 ThinkPHP 創(chuàng)建應(yīng)用的一般開發(fā)流程是:

創(chuàng)建數(shù)據(jù)庫和數(shù)據(jù)表;(沒有數(shù)據(jù)庫操作可略過)

項目命名并創(chuàng)建項目入口文件;

完成項目配置;(無需額外配置可以忽略)

創(chuàng)建控制器類;

創(chuàng)建模型類;(如果只是簡單的模型類可以不必創(chuàng)建)

創(chuàng)建模板文件;

運行和調(diào)試。

1. 首先在數(shù)據(jù)庫創(chuàng)建一個數(shù)據(jù)庫 demo,表 think_demo,以 MySQL 為例:

  1. CREATE TABLE `think_demo` (   
  2.   `id` int(11) unsigned NOT NULL auto_increment,    
  3.   `title` varchar(255) NOT NULL default '',    
  4.   `content` longtext NOT NULL,    
  5.   PRIMARY KEY  (`id`)    
  6. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 ;  

2. 創(chuàng)建入口文件

  1. // +---------------------------------------------------------------------- 
  2. // | ThinkPHP [ WE CAN DO IT JUST THINK IT ] 
  3. // +---------------------------------------------------------------------- 
  4. // | Copyright (c) 2009 http://thinkphp.cn All rights reserved. 
  5. // +---------------------------------------------------------------------- 
  6. // | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 ) 
  7. // +---------------------------------------------------------------------- 
  8. // | Author: liu21st  
  9. // +---------------------------------------------------------------------- 
  10.  
  11. // 定義 ThinkPHP 框架路徑 
  12. define('THINK_PATH''../ThinkPHP'); 
  13. // 定義項目名稱和路徑 
  14. define('APP_NAME''MyApp'); 
  15. define('APP_PATH''.'); 
  16. // 加載框架公共入口文件 
  17. require(THINK_PATH."/ThinkPHP.php"); 
  18. // 實例化一個網(wǎng)站應(yīng)用實例 
  19. App::run(); 
  20. ?> 

注意,APP_PATH 的路徑指的是項目目錄所在路徑,而不是項目入口文件所在的路徑,APP_NAME 通常都必須和項目目錄名稱一致.

如果你的項目入口文件放到項目目錄下面的話,可以無需定義 APP_NAME 和 APP_PATH ,系統(tǒng)可以自動識別,THINK_PATH 通常也不是必須的.

3.自動生成

ThinkPHP 具備項目目錄自動生成功能,并且不需要使用任何命令行工具,我們只需要簡單的瀏覽器里面訪問剛才創(chuàng)建的應(yīng)用入口文件.

打開瀏覽器,訪問該項目的入口文件: http://127.0.0.1/Myapp/index.php

這時可以看到項目構(gòu)建成功后的提示畫面,并且在 Myapp 目錄下,已為您構(gòu)建好了項目目錄。

注意:ThinkPHP 框架的所有文件都是采用 UTF-8 編碼保存,但是這不影響你的項目中使用其他編碼開發(fā)和瀏覽,請注意確保文件保存的時候去掉 UTF-8 的 BOM 頭信息,防止因產(chǎn)生隱藏的輸出而導(dǎo)致程序運行不正常.

注意:如果你是在 Linux 環(huán)境下,要確保項目目錄的自動生成,請設(shè)置 Myapp 目錄的權(quán)限為可寫,否則請自行創(chuàng)建相關(guān)目錄,然后設(shè)置 Runtime 目錄為可寫權(quán)限(通常都是設(shè)置目錄屬性為 777).

4.項目配置

自動生成的項目目錄下面已經(jīng)為我們創(chuàng)建了一個空的項目配置文件,位于項目的 Conf 目錄下面,名稱是 config.php,我們打開這個配置文件,加入我們的數(shù)據(jù)庫配置信息.

  1. return array
  2.        //' 配置項 '=>' 配置值 ' 
  3.        'APP_DEBUG' => true, // 開啟調(diào)試模式     
  4.        'DB_TYPE'=> 'mysql',   // 數(shù)據(jù)庫類型     
  5.        'DB_HOST'=> 'localhost'// 數(shù)據(jù)庫服務(wù)器地址     
  6.        'DB_NAME'=>'demo',  // 數(shù)據(jù)庫名稱     
  7.        'DB_USER'=>'root'// 數(shù)據(jù)庫用戶名     
  8.        'DB_PWD'=>'123456'// 數(shù)據(jù)庫密碼     
  9.        'DB_PORT'=>'3306'// 數(shù)據(jù)庫端口     
  10.        'DB_PREFIX'=>'think_'// 數(shù)據(jù)表前綴     
  11. ); 
  12. ?> 

5. 業(yè)務(wù)邏輯

接下來,我們需要實現(xiàn)一個數(shù)據(jù)添加和查詢操作的簡單應(yīng)用,來領(lǐng)略下 ThinkPHP 的快速開發(fā).

在項目的 LibAction 目錄下面找到自動生成的 IndexAction.class.php 文件,這個文件就是 ThinkPHP 的控制器,也就是 Index 模塊的實現(xiàn),刪除 IndexAction 類默認生成的 index 方法,添加新的 insert 方法和 index 方法,代碼如下:

  1. public function insert() {    
  2.         $Demo = new Model('Demo');   // 實例化模型類     
  3.         $Demo->Create(); // 創(chuàng)建數(shù)據(jù)對象     
  4.         $result = $Demo->add(); // 寫入數(shù)據(jù)庫     
  5.         $this->redirect('index'); // 成功后重定向到 index 操作頁面     
  6. public function index() {    
  7.         $Demo = new Model('Demo'); // 實例化模型類     
  8.         $list = $Demo->select(); // 查詢數(shù)據(jù)     
  9.         $this->assign('list',$list); // 模板變量賦值     
  10.         $this->display(); // 輸出模板     

以上定義后,Index 模塊就具有了 insert 和 index 兩個操作,操作方法的定義不需要使用任何參數(shù),而且必須定義為 public 類型,否則無法訪問.

由于只是簡單的數(shù)據(jù)操作應(yīng)用,所以我們根本不需要創(chuàng)建任何的模型類也同樣可以進行 CURD 操作,這就是新版的魅力所在.

6. 模版定義

控制器和操作方法已經(jīng)創(chuàng)建完畢,接下來就是定義模板文件了.

項目的自動生成已經(jīng)為我們生成了 Tpl/default 目錄,我們只需要在 default 目錄下面創(chuàng)建 Index 目錄,表示存放 Index 模塊的模板文件,由于 insert 操作是后臺操作,并不涉及模板輸出,因此不需要定義模板文件,所以我們只要為 index 操作定義模板即可,內(nèi)容如下:

  1. <form method="post"  action="__ URL __/insert" >   
  2. 標(biāo)題: <input type="text" name="title"><br />   
  3. 內(nèi)容: <textarea name="content" rows="5" cols="25"><textarea><br/>   
  4. <input type="submit" value=" 新增數(shù)據(jù) ">   
  5. form> 
  6. <volist name='list' id='vo' >   
  7. 編號 :{$vo.id}<br/>   
  8. 標(biāo)題 :{$vo.title}<br/>    
  9. 內(nèi)容 :{$vo.content}<hr>   
  10. volist>  

把上面的內(nèi)容保存為 Tpl/default/Index/index.html 即可.

action="/Admin/Manual/insert" 表示提交表單到當(dāng)前模塊的 insert 操作。

7. 運行應(yīng)用

模板定義完成后,我們就可以運行應(yīng)用了,我們在瀏覽器里面輸入:

http://localhost/Myapp/ 就可以看到頁面的表單輸出了.

由于我們開啟了調(diào)試模式,所以在頁面的最下面還會看到一些額外的調(diào)試信息,并且可以很清楚的看到當(dāng)前頁面的請求信息和執(zhí)行時間、 SQL 日志,最后還有加載的文件列表,事實上,頁面 Trace 信息的顯示完全是可以定制的,而這些內(nèi)容不需要在模板里面定義.

在 ThinkPHP 中,我們稱之為頁面 Trace 信息,這是為了在開發(fā)過程中調(diào)試用的,關(guān)閉調(diào)試模式后,這些信息會自動消失,另外在調(diào)試模式下面,由于開啟了日志記錄,并且關(guān)閉了所有緩存,所以執(zhí)行效率會有一定影響,但是關(guān)閉調(diào)試模式后,效率會有非常顯著的提高.

可以嘗試在頁面新增數(shù)據(jù),會看到頁面下面有列表數(shù)據(jù)輸出,到目前為止,我們已經(jīng)完成了一個完整的數(shù)據(jù)操作應(yīng)用了.

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 白银市| 玉山县| 阳信县| 塔城市| 大理市| 区。| 水富县| 浮山县| 白水县| 昌都县| 习水县| 沭阳县| 榆社县| 南江县| 白银市| 曲阳县| 邵东县| 古交市| 威宁| 平安县| 屯昌县| 宝坻区| 武定县| 洪泽县| 海南省| 白山市| 凉山| 鸡东县| 游戏| 三河市| 玉山县| 昭通市| 仪陇县| 共和县| 龙门县| 綦江县| 郯城县| 清水县| 武平县| 新邵县| 金昌市|