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:批发功能服务组件