FleaPHP初哥报到(1)--简单登录

FleaPHP初哥报到(1)--简单登录
      由于忙,很少时间学学 FleaPHP 框架,不过之前也看了看学了点东西,感觉FleaPHP框架还是很不错的,有良好的MVC模式结构,比较方便的数据库操作,好东西不敢独享,所以献上我在学习FleaPHP中的一点小心得,适合初接触 FleaPHP 框架的同学,PHP基础不太好的话,建议先补习一下PHP再看看这系列的文章。
      本例子是我刚学FleaPHP框架时的小练习,一步一步循序渐进,刚开始的例子显得比较简单,都只是熟习他的环境而已,不过我将采用增量开发的模式,慢慢完善深入,同学们记得专心上堂哦,做好功课哦。(文章的末尾将提供完整源代码打包,由于篇幅有限,所以文章中贴出来的代码有的只是片段)
      这篇是我写 FleaPHP 学习笔记的开篇,做的是一个简单的登录功能,牛刀小试吧,认大家认识一下 FleaPHP 的MVC结构与基本数据库操作,如果是对 FleaPHP 还不知道是什么东西的话,可以到以下网站了解了解。 fleaphp.org

数据库准备:数据库里就只有一个表  tb_user   里面有三个字段,id ,name ,password 够简单吧[smile]

我的这个FleaPHP应用的目录结构如下:


图中可以看到就一个index.php主页文件,一个app与一个FLEA文件夹,因为FleaPHP是采用单一入口框架,所以就只有一个index.php文件,所以的请求都经由这个文件再进行分类分发,这样可以提高代码的安全性,可以将程序其它文件放置到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文档就够了。
      同学们注意了,FLEA::import(dirname(__FILE__)."/app"); 这句的作用是什么?这个import函数是FLEA的静态函数,用于将你的程序文件夹导入进来,如果有玩过Java的同学应该知道多少吧,当FleaPHP接收到一个请求时,会分析URL再调用相对的Controller和Action,
如:http://localhost/fleatest/index.php?controller=Shop&action=checkout 这里即调用Shop控制器里面的checkout动作,而FleaPHP怎么知道我的控制器代码放在哪里呢?就是靠import这个语句了,将程序文件夹导入进来之后,FleaPHP会自去到这个文件夹里找Controller文件夹再找Shop.php这个类文件,所以,如果你为了安全起见,将程序文件夹放在了其它访问不到的地方,就得靠这个import来导入,以FleaPHP能正确找到所需要的Controller。(可能说得啰嗦了[redface],打字累了,烧根烟先,同学们小息片刻!)

接下来$dsn这个数组就是存放你连接数据库的信息啦,聪明的同学一眼看出来了。之后当然要设置入FleaPHP配置里面啦,用这个set_app_inf('dbDSN',$dsn);,之后,FLEA::runMVC(); 这个就是启动了。我们输入的URL是 http://localhost/fleatest/index.php,由于FleaPHP默认的Controller是Default,默认的Action是Index,所以,这时,FleaPHP就会跳到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的命名规则,大家可以去官网看看它的命名规则,这里就不多啰嗦了。现在,它将会调用actionIndex的默认action函数,里面只引入了一个php文件,那就是登录界面的页面。

      在登录界面的Form里,设置好action提交路径,使它提交到Default控制器的Login动作(action),里面实例化了一个Model对象,该对象是封装了对表tb_user的操作,之后程序逻辑就是跟据登录成功与否来进行相应的信息表示啦,简单的实现了从Controller -> Model -> View 的MVC访问操作流程。
大概的结构就这么简单了。

最后符上源代码:[down=attachments/month_0710/520071010232245.rar]点击下载此文件[/down]

大家如果有什么疑问,可以留言或发到我邮箱里!




你可能感兴趣的:(FleaPHP初哥报到(1)--简单登录)