Business业务层
  1. Business层介绍

    Business翻译是业务,那我们可以理解Business层主要是负责业务逻辑。
    1.那数据访问层呢?
    那么我这里简单介绍数据访问层,其实数据访问层就是我们的Dao层,Dao层是主要来绑表与表扩展。
    2.那为什么不直接用Model呢?
    因为为了提高我们的程序的易扩展性高可维护性和灵活性,把Model分Dao和Business层。
    这样一来降低了业务耦合度,提高了业务层的内聚性,降低了软件的复杂度,增强了可维护性。
    Dao层之间零耦合,复用性高。
    因此好的模型层应该分为Business层和Dao层,这也是soter提倡建议的结构设计。
    提示:
    了解详细的Dao层,点击进入Dao层
  2. Business层规范

    1.Business类文件都放在application/classes/Business文件夹里面
    2.Business必须要继承Soter_Business类,类名必须带Business_前缀。
    示例如下:
    1.新建Business文件application/classes/Business/TestBusiness.php
    2.输入以下代码:
                                                    <?php
    
                                                    class Business_TestBusiness extends Soter_Business {
    
                                                    }
                                            
  3. 使用Business层

    可以在任意地方使用下面的代码加载一个business层类:
    示例如下:
                                                    Sr::business('TestBusiness');
                                            
    我们可以看到上面有一个参数,这个是什么意思呢,是加载business类的时候,不需要前缀Business_
    比如上面的:Business_TestBusiness,加载的时候只用Sr::business('TestBusiness');
    例如:我们要创建Business类文件名为ArticleBusiness.php,类名就是Business_ArticleBusiness,那么参数就要输入ArticleBusiness
  4. 示例一

    比如有文件:classes/Business/CommonUser.php
    那么CommonUser.php文件里面的类名就应该是:Business_CommonUser。
    那么要加载Business类如下:
                                                    Sr::business('CommonUser');
                                            
  5. 示例二

    比如有文件:classes/Business/Vip/User.php
    那么User.php文件里面的类名就应该是:Business_Vip_User,也就是下划线代表着文件夹的分隔符。
    那么要加载Business类如下:
                                                    Sr::business('Vip_User');
                                                    //还有另一种方式例如以下
                                                    Sr::business('Vip/User.php');
                                                    //我们也可以不用带.php后缀,例如以下:
                                                    Sr::business('Vip/User');
                                            
  6. 创建自己的Business类

    下面我们自定义一个加载Business层类
    1.新建Business文件application/classes/Business/TestBusiness.php
    2.输入以下代码:
                                                    <?php
    
                                                    class Business_TestBusiness extends Soter_Business {
    
                                                            public function hello(){
                                                                    return 'hello business';
                                                            }
                                                    }  
                                            
    3.新建控制器文件application/classes/Controller/Welcome.php
    4.输入以下代码:
                                                    <?php
    
                                                    class Controller_Welcome extends Soter_Controller {
    
                                                            public function do_business() {
                                                                    $business = Sr::business('TestBusiness');
                                                                    echo $business->hello();
                                                            }
                                                    }  
                                            
    5.浏览器访问:http://127.0.0.1/index.php/Welcome/business.do
    //将输出:hello business
    为什么会输出“hello business”?
    我们可以从上面例子看Controller_Welcome控制器类,
    在do_business方法里面做了加载Business层中的Business_TestBusiness类赋值给$business
    然后通过$business输出Business_TestBusiness类中的hello方法,
    所以浏览器才会显示“hello business”。