<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-31  評論-257  文章-0  trackbacks-0
          由于忙,很少時間學學 FleaPHP 框架,不過之前也看了看學了點東西,感覺FleaPHP框架還是很不錯的,有良好的MVC模式結構,比較方便的數據庫操作,好東西不敢獨享,所以獻上我在學習FleaPHP中的一點小心得,適合初接觸 FleaPHP 框架的同學,PHP基礎不太好的話,建議先補習一下PHP再看看這系列的文章。
          本例子是我剛學FleaPHP框架時的小練習,一步一步循序漸進,剛開始的例子顯得比較簡單,都只是熟習他的環(huán)境而已,不過我將采用增量開發(fā)的模式,慢慢完善深入,同學們記得專心上堂哦,做好功課哦。(文章的末尾將提供完整源代碼打包,由于篇幅有限,所以文章中貼出來的代碼有的只是片段)
          這篇是我寫 FleaPHP 學習筆記的開篇,做的是一個簡單的登錄功能,牛刀小試吧,認大家認識一下 FleaPHP 的MVC結構與基本數據庫操作,如果是對 FleaPHP 還不知道是什么東西的話,可以到以下網站了解了解。fleaphp.org

    數據庫準備:數據庫里就只有一個表  tb_user   里面有三個字段,id ,name ,password 夠簡單吧[smile]

    我的這個FleaPHP應用的目錄結構如下:


    圖中可以看到就一個index.php主頁文件,一個app與一個FLEA文件夾,因為FleaPHP是采用單一入口框架,所以就只有一個index.php文件,所以的請求都經由這個文件再進行分類分發(fā),這樣可以提高代碼的安全性,可以將程序其它文件放置到URL訪問不到的地方,在index.php里引用該路徑就可以了。不過有點要注意的是文件的路徑的正確性。
    app文件夾就是我的程序代碼放置的地方,里面有Controller,Model,View,Table文件夾,Controller文件夾都是FleaPHP的命名約定的,最好使用這樣的命名,因為會跟據請求到該文件夾中找相對應的類文件的,好,我們先來看看index.php的代碼:
     1 <?php
     2 require("./FLEA/FLEA.php");
     3 FLEA::import(dirname(__FILE__)."/app");
     4 
     5 // 準備數據庫連接信息
     6 $dsn = array(
     7     'driver'        => 'mysql',
     8     'host'          => 'localhost',
     9     'login'         => 'root',
    10     'password'      => 'root',
    11     'database'      => 'test',
    12 );
    13 
    14 set_app_inf('dbDSN',$dsn);
    15 
    16 FLEA::runMVC();
    17 ?>


          就這么個三四行代碼,程序就啟動了,呵呵,不過后面還有呢。。。
    先來解析一下,第一句是 require("./FLEA/FLEA.php"); 就是要先導入FleaPHP的核心引擎,所以之前大家看到了有個FLEA文件夾,就是FLEA的核心引擎啦,這個大家先不用管它,等到要研究他的源代碼時再看吧,平時的使用就看看提供的API文檔就夠了。
          同學們注意了,F(xiàn)LEA::import(dirname(__FILE__)."/app"); 這句的作用是什么?這個import函數是FLEA的靜態(tài)函數,用于將你的程序文件夾導入進來,如果有玩過Java的同學應該知道多少吧,當FleaPHP接收到一個請求時,會分析URL再調用相對的Controller和Action,
    如:http://localhost/fleatest/index.php?controller=Shop&action=checkout 這里即調用Shop控制器里面的checkout動作,而FleaPHP怎么知道我的控制器代碼放在哪里呢?就是靠import這個語句了,將程序文件夾導入進來之后,F(xiàn)leaPHP會自去到這個文件夾里找Controller文件夾再找Shop.php這個類文件,所以,如果你為了安全起見,將程序文件夾放在了其它訪問不到的地方,就得靠這個import來導入,以FleaPHP能正確找到所需要的Controller。(可能說得啰嗦了[redface],打字累了,燒根煙先,同學們小息片刻!)

    接下來$dsn這個數組就是存放你連接數據庫的信息啦,聰明的同學一眼看出來了。之后當然要設置入FleaPHP配置里面啦,用這個set_app_inf('dbDSN',$dsn);,之后,F(xiàn)LEA::runMVC(); 這個就是啟動了。我們輸入的URL是 http://localhost/fleatest/index.php,由于FleaPHP默認的Controller是Default,默認的Action是Index,所以,這時,F(xiàn)leaPHP就會跳到app/Controller/Default.php這個頁面來,代碼如下:
     1 <?php
     2 FLEA::loadClass("Model_User");
     3 class Controller_Default
     4 {
     5     function actionIndex(){
     6         include('app/View/login.php');
     7     }
     8    
     9     function actionLogin(){
    10         //新建一個對應user數據表操作的Model對象
    11         $mod_user = new Model_User;
    12         //根據用戶輸入的用戶名查找數據庫有沒有存在
    13         $result = $mod_user->findByName($_POST['username']);
    14         if(empty($result)){
    15             $message = '該用戶不存在!';
    16             include('app/View/login.php');       
    17         }else{
    18             //判斷密碼是否相同
    19             if($result['password'== $_POST['password']){
    20                 $username = $result['name'];
    21                 include('app/View/welcome.php');
    22             }else{
    23                 $message = '密碼不正確,請重新輸入!';
    24                 include('app/View/login.php');
    25             }
    26         }
    27     }
    28 }
    29 ?>


          為什么類名是 Controller_Default ?這都是FleaPHP的命名規(guī)則,大家可以去官網看看它的命名規(guī)則,這里就不多啰嗦了。現(xiàn)在,它將會調用actionIndex的默認action函數,里面只引入了一個php文件,那就是登錄界面的頁面。

          在登錄界面的Form里,設置好action提交路徑,使它提交到Default控制器的Login動作(action),里面實例化了一個Model對象,該對象是封裝了對表tb_user的操作,之后程序邏輯就是跟據登錄成功與否來進行相應的信息表示啦,簡單的實現(xiàn)了從Controller -> Model -> View 的MVC訪問操作流程。
    大概的結構就這么簡單了。

    最后符上源代碼:[down=attachments/month_0710/520071010232245.rar]點擊下載此文件[/down]

    大家如果有什么疑問,可以留言或發(fā)到我郵箱里!


    posted on 2008-07-29 13:57 姜大叔 閱讀(353) 評論(1)  編輯  收藏 所屬分類: PHP

    評論:
    # re: FleaPHP初哥報到(1)--簡單登錄 2008-09-06 13:19 |
    寫的很詳細 很好 加油!  回復  更多評論
      
    主站蜘蛛池模板: 国产h肉在线视频免费观看| 永久免费AV无码网站国产| 永久免费av无码不卡在线观看 | 无码国产精品一区二区免费3p| 亚洲另类少妇17p| 人妻免费久久久久久久了| 免费一级毛片不卡不收费| 曰韩无码AV片免费播放不卡| 中文字幕第13亚洲另类| 精品熟女少妇aⅴ免费久久| 亚洲情XO亚洲色XO无码| 少妇太爽了在线观看免费视频 | 巨波霸乳在线永久免费视频| 亚洲色偷偷av男人的天堂| 亚色九九九全国免费视频| 最新亚洲卡一卡二卡三新区| 国产成人高清精品免费软件| 一级毛片在播放免费| 亚洲女久久久噜噜噜熟女| 99久热只有精品视频免费观看17| 亚洲国产精品国自产拍电影| h视频在线免费看| 亚洲AV无码国产精品永久一区| 亚洲A丁香五香天堂网| 国产一区二区免费视频| 亚洲国产日韩在线人成下载| 青青草国产免费久久久91| 黄视频在线观看免费| 亚洲激情校园春色| 午夜男人一级毛片免费| 一区二区免费电影| 亚洲国产成人无码av在线播放| 国产91在线免费| 久久精品成人免费观看| 久久精品国产亚洲AV忘忧草18| 亚洲国产成人爱av在线播放| 99re免费在线视频| 国产亚洲精品仙踪林在线播放| 亚洲A∨无码无在线观看| 日本免费人成视频播放| 日本高清免费观看|