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