yii2 fecshop 服务组件的详细介绍

yii2 fecshop 服务组件的详细介绍

在  vendor/fancyecommerce/fecshop/services路径下就是所有的fecshop组件,组件分为组件和子组件,组件本质上是yii2的组件,子组件的原理是组件的属性指向子组件对象,譬如Yii::$app->page是组件,Yii::$app->page->theme是子组件,组件的配置是在 vendor/fancyecommerce/fecshop/config/services里面,下面是一个配置组件和子组件的例子:

<?php
/**
 * FecShop file.
 *
 * @link http://www.fecshop.com/
 * @copyright Copyright (c) 2016 FecShop Software LLC
 * @license http://www.fecshop.com/license/
 */
return [
  'page' => [
    'class' => 'fecshop\services\Page',
    //'terry' => 'xxxx',
    
    # 子服务
    'childService' => [
      'breadcrumbs' => [
        'class' 		=> 'fecshop\services\page\Breadcrumbs',
        'homeName' 		=> 'Home',  # if homeName => '', Home will not show in breadcrums.
        'ifAddHomeUrl'	=> true,  	# default true, if set false, home will not add url (a).
        //'intervalSymbol'=> ' >> '	# default value:' > '
      ],
      
      'cms' => [
        'class' 		=> 'fecshop\services\page\Cms',
      ],
      'theme' => [
        'class' 		=> 'fecshop\services\page\Theme',
      ],
      'widget' => [
        'class' 		=> 'fecshop\services\page\Widget',
        # 定义默认方法,也就是widgetConfig 里面各个部件里面的method如果没有填写
        # 则使用该配置。
        # 'defaultObMethod' => 'getLastData',
        
        'widgetConfig' => [
          'menu' =>[
            # 必填
            'class' => 'fec\block\TestMenu',
            # view 的绝对路径配置方式
            'view'  => '@fec/views/testmenu/index.php',
            # 下面为选填
            'method'=> 'getLastData',
            'terry1'=> 'My1',
            'terry2'=> 'My2',
          ],
          'love' => [
            'class' => 'fecshop\app\appfront\modules\Cms\block\widget\Test',
            # 根据多模板的优先级,依次去模板找查找该文件,直到找到这个文件。
            'view'  => 'cms/home/test.php',
            'terry' => 'II',
          ]
        ]
        
      ],
      'currency' => [
        'class' => 'fecshop\services\page\Currency',
        'currencys' => [
          'USD' => [
            'rate' 		=> 1,
            'symbol' 	=> '$',
          ],
          'RMB' => [
            'rate' 		=> 6.3,
            'symbol' 	=> '¥',
          ],
        ],
        //'defaultCurrency' => 'USD',
      ],
      
      'footer' => [
        'class' 		=> 'fecshop\services\page\Footer',
       
      ],
      
      
      'newsletter' => [
        'class' 		=> 'fecshop\services\page\Newsletter',
      ],
      
      'staticblock' => [
        'class' 		=> 'fecshop\services\page\StaticBlock',
      ],
      
      'menu' => [
        'class' => 'fecshop\services\page\Menu',
        'displayHome' => [
          'enable' => true,
          'display'=> 'Home',
        ],
        /**
         *	custom menu  in the front menu section.
         */
        'frontCustomMenu' => [
          [
            'name' 		=> 'my custom menu',
            'urlPath'	=> '/my-custom-menu.html',
            'childMenu' => [
              [
                'name' 		=> 'my custom menu 2',
                'urlPath'	=> '/my-custom-menu-2.html',
              ],
              [
                'name' 		=> 'my custom menu 2',
                'urlPath'	=> '/my-custom-menu-2.html',
                'childMenu' => [
                  [
                    'name' 		=> 'my custom menu 2',
                    'urlPath'	=> '/my-custom-menu-2.html',
                  ],
                  [
                    'name' 		=> 'my custom menu 2',
                    'urlPath'	=> '/my-custom-menu-2.html',
                  ],
                ],	
              ],
            ],	
          ],
          [
            'name' 		=> 'my custom menu 2',
            'urlPath'	=> '/my-custom-menu-2.html',
          ],
        ],
        /**
         *	custom menu  behind the menu section.
         */
        'behindCustomMenu' => [
          [
            'name' 		=> 'my behind custom menu',
            'urlPath'	=> '/my-behind-custom-menu.html',
          ],
          [
            'name' 		=> 'my behindcustom menu 2',
            'urlPath'	=> '/my-behind-custom-menu-2.html',
          ],
        ],
      ],
      
    ],
  ],
];

上面是page组件的配置,childService里面是page组件的子组件配置,配置方法和组件类似。

在fecshop的底层,组件作为整个开源商城服务的支撑,组件服务为上层的modules提供数据,为各个应用提供数据,有点类似SOA架构的服务,

下面是目前的服务的列表:

Affiliate.php: 网站联盟组件服务

Blog.php:博客服务组件

Cart.php:购物车服务组件

Category.php:分类服务组件

Coupon.php:优惠券服务组件

Customer.php:用户账号服务组件

——–Customer子组件 – 地址:Address

——–Customer子组件 – 网盟:Affiliate

——–Customer子组件 – 优惠券:Coupon

——–Customer子组件 – 线下分销:DropShip

——–Customer子组件 – 收藏:Favorite

——–Customer子组件 – 面包屑导航:Breadcrumbs

——–Customer子组件 – 消息:Message

——–Customer子组件 – 订单:Order

——–Customer子组件 – 积分:Point

——–Customer子组件 – 评论:Review

——–Customer子组件 – 批发:Wholesale

Email.php:邮件服务组件

Order.php:订单服务组件

Page.php:页面等服务组件

——–Page子组件 – 面包屑导航:Breadcrumbs

——–Page子组件 – cms Page:cms

——–Page子组件 – 货币:Currency

——–Page子组件 – 页面底部:Footer

——–Page子组件 – 菜单:menu

——–Page子组件 – 邮件订阅:newsletter

——–Page子组件 – 静态块:Static Block

——–Page子组件 – 模板配置功能:theme

——–Page子组件 – 小部件:Widget

Payment.php:支付服务组件

point.php:积分服务组件

Product.php:产品服务组件

——–Product子组件 – 产品访问历史记录:ViewLog

————————–ViewLog子组件 – Db.php:Mysql 存储

————————–ViewLog子组件 – Mongodb.php:Mongodb 存储

————————–ViewLog子组件 – Session.php:Session 存储

——–Product子组件 – 热卖产品:BestSell

——–Product子组件 -买了的还买了:BuyAlsoBuy

——–Product子组件 – 产品分类:Category

——–Product子组件 – 产品集合:Coll

——–Product子组件 – 产品图片:Image

——–Product子组件 – 产品详细:Info

——–Product子组件 – 产品价格:Price

——–Product子组件 – 相关产品:Relate

——–Product子组件 – 产品评论:Review

——–Product子组件 -看了的还看了:ViewAlsoView

Request.php:Request服务组件

Search.php:搜索功能服务组件

Shipping:货运物流服务组件

Sitemap.php:Sitemap服务组件

Store.php:Store服务组件

Url.php:Url服务组件

Wholesale.php:批发功能服务组件

 

 

 

 

 

 

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注