Seagull PHP框架学习教程之二

    在使用Seagull框架开发项目之前,你需要了解以下基本概念:

    module(模块,我在这边翻译为模块,各人说法不一样,无关重要),在Seagull内,它的概念是指对某个项目功能的一种逻辑上的分组。一个模块是 将某个项目内那些相关的功能组合在一起。以一个简单网售的站点为例,我们可以把项目大致分成用户模块,订单模块,支付模块。比如用户模块可能会包含所有和 站点用户相关的功能,包括用户资料,用户偏好,用户权限,甚至还有用户角色这些功能,所有和用户管理相关的功能都可以放在这个模块内。把项目划分为模块最 简单的理由是把复杂的问题简单化,还有就是让彼此不相关的功能在一定程度上相互独立,借用一句软件工程的话讲是达到“高内聚,低藕合”目的。在 Seagull中,一个模块是由一个或多个manager组成的。那么什么是manager呢?

    manager,简单的说就是一个页面控制对象,它把某个业务相关的或某个实体相关的操作(或动作)组合在一起。比如说一个用户实体,会有添加,删除,修 改用户等动作,所以我们就需要一个user manager将这些相关的动作放在一起(你也可以从软件工程的角度理解成是“高内聚”);再比如,购物车这个业务逻辑,肯定有添加货物,从购物篮去掉货 物,修改货物订购数量等相关的操作,这也需要一个shopcart manager。也就是说一个manager可以包含一个或多个动作。事实上Seagull内这些动作是有一个专有的名词,就是下面我们要介绍的 action,当然你也可以把它当成event(事件)。

    action,Seagull认为用户在客户端(一般指浏览器)的每一次请求,如一个按钮的单击,表单的提交,超链接的跳转,都是为了执行一个或多个动 作。Seagull的action就是由此而定义的,每一个action完成一项工作或任务。从代码层面上讲,它不过是manager类中的一个 method(方法),这个方法组织了那些用来完成某项工作或任务的代码。对于用户的一次请求,你可以通过执行一个action来完成用户请求的操作,也 可以执行一串的action来协作完成一项复杂的任务或者在任务完成后进入到某个状态以便用户继续操作。由于它是对应于用户的请求,或者说它是被用户触发 时才被调用,所以你也可以把它当做event,事实上seagull在涉及到observer时就是使用了event的概念。

    module,manager,action三者的关系是,一个module是由一个或多个manager组成,而一个manager是由一个或多个 action组成。默认情况下,这三者的命名要遵守一定的规范,module的名称要全部用小写字母的一个单词,最好能见名知意,也不要太长。 manager也需要一个单词,不过第一个字母要大写,并且以Mgr做后缀。action的名称也是需要一个单词,当然也可以是多个单词,不过如果只是一 个单词就全部小写,如果是多个单词最好不要用下划线隔开,而要采用骆驼式命名法,并且以_cmd_为前缀,以和其它方法区别。

    从这里开始你就可以使用Seagull进行开发了,你已经掌握了Seagull中唯一的这么几个比较重要的概念了,除此之外,Seagull没有太多太繁 杂的概念,所以只要你有PHP基础,或PHP编辑经验,你就可以出发了,是不是觉得很简单,事实也如此,选择Seagull的一个理由是它容易上手,整个 框架没有太多让人觉得高深莫测的概念,有的是实用的工具和规范以及开放的架构和灵活的配置系统。

    事实上,你已经有了足够的知识来使用Seagull开发了,而且由于你选择了Seagull框架,开发时你节省了很多时间,你不用去考虑配置连接数据库的 事情,Seagull已经为你准备好了;你也不用为了性能考虑缓存的事情,因为Seagull也为你备好了;你要发邮件,还苦于不同的服务器使用不同的 mail后端(或后台,如postfix,sendmail),需要写一堆类来处理,放心吧,Seagull为你准备好了;要上传图片并生成相应的缩略 图,甚至要做一些修改,比如换个画布什么的,复杂吗?放心吧Seagull也准备好了......那还等什么?试试创建一个模块看看吧!不过在此之前,我 还是要带你从文件系统的层面认识一下一个Seagull模块到底包含了些什么?

以下为某个模块的文件目录结构图

│  conf.ini       //此模块的配置文件
├─blocks         //此目录用以保存此模块相关的block类,至于什么是block,在后继章节中将会解释
├─classes        //此目录保存此模块的manager类和observer
│  └─observers  //此模块提供的observer类,一般是在某个特定event(action)事件发生后被执行
├─data           //一系列sql文件   
├─lang           //语言文件
├─templates      //模板文件
└─tests          //单元测试相关文件
    └─files

    默认情况下,Seagull中所有的模块都放在module目录下,包括Seagull提供的核心模块,你自己开发的模块也都是放在这个目录下。在你习惯使用Seagull框架进行项目开发后,你所需要做的工作就是为Seagull开发一个个模块,并将它们放到这个目录下。下一节会告诉你如何创建一个模块。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值