提交 d472d7eb 编写于 作者: T Terry

Session Services

上级 e97045c0
......@@ -6,8 +6,10 @@
* @copyright Copyright (c) 2016 FecShop Software LLC
* @license http://www.fecshop.com/license/
*/
// 本文件在app/web/index.php 处引入。
// fecshop - appfront 的核心模块
/**
* 本文件在@appfront/web/index.php 处,会被引入。
* 该配置文件会加载./modules/*.php,并合并成一个数组,返回。
*/
$modules = [];
foreach (glob(__DIR__ . '/modules/*.php') as $filename) {
$modules = array_merge($modules, require($filename));
......@@ -16,13 +18,22 @@ $params = require __DIR__ .'/params.php';
// 此处也可以重写fecshop的组件。供调用。
return [
'modules'=>$modules,
/* only config in front web */
/**
* bootstrap指的是yii2中的初始化(注意,这个bootstrap不是css那个bootstrap),关于Yii2 bootstrap的功能描述可以
* 参看地址:http://www.yiichina.com/doc/guide/2.0/runtime-bootstrapping
*
* 下面的配置的作用为:在fecshop初始化的时候,执行store component的bootstrap方法。
* 也就是 @fecshop/components/Store.php的bootstrap($app)函数。
* 最终是Yii::$service->store->bootstrap($app); 这样,无论执行任何controller,都会执行该函数
* 这也就是bootstap的作用,在Yii2初始化的时候执行的部分代码。
*/
'bootstrap' => ['store'],
// 参数配置部分
'params' => $params,
// Yii组件配置
// Yii组件配置 ,关于yii2组件,可以参看:http://www.yiichina.com/doc/guide/2.0/structure-application-components
'components' => [
// language config.
// yii2 语言组件配置,关于Yii2国际化,可以参看:http://www.yiichina.com/doc/guide/2.0/tutorial-i18n
'i18n' => [
'translations' => [
'appfront' => [
......@@ -34,7 +45,7 @@ return [
],
],
],
// Yii2 user组件配置,可以参看:http://www.yiichina.com/doc/guide/2.0/input-validation#client-side-validation
'user' => [
'class' => 'fecshop\yii\web\User',
'identityClass' => 'fecshop\models\mysqldb\Customer',
......@@ -54,17 +65,21 @@ return [
*/
//'authTimeout' => 56666,
],
// 404页面对应的链接。
// 404页面对应的url key
'errorHandler' => [
'errorAction' => 'site/helper/error',
],
// 首页对应的url
// 首页对应的url key
'urlManager' => [
'rules' => [
'' => 'cms/home/index',
],
],
/**
* Yii2 Request组件,这里进行了重写,目的是为了实现URL自定义伪静态功能。
* 关于fecshop的url伪静态部分,可以参看:http://www.fancyecommerce.com/2016/05/18/yii2-url-%E8%87%AA%E5%AE%9A%E4%B9%89-%E4%BC%AA%E9%9D%99%E6%80%81url/
* 关于Yii2 request的一些知识,可以参看:http://www.yiichina.com/doc/guide/2.0/runtime-requests
*/
'request' => [
'class' => 'fecshop\yii\web\Request',
/*
......
......@@ -7,6 +7,10 @@
* @license http://www.fecshop.com/license/
*/
return [
/**
* Catalog 模块的配置,您可以在@appfront/config/fecshop_local_modules/Catalog.php
* 中进行配置,二开,或者重写该模块(在上面路径中如果文件不存在,自行新建配置文件。)
*/
'catalog' => [
'class' => '\fecshop\app\appfront\modules\Catalog\Module',
......
......@@ -7,8 +7,15 @@
* @license http://www.fecshop.com/license/
*/
return [
/**
* Catalogsearch 模块的配置,您可以在@appfront/config/fecshop_local_modules/Catalogsearch.php
* 中进行配置,二开,或者重写该模块(在上面路径中如果文件不存在,自行新建配置文件。)
*/
'catalogsearch' => [
'class' => '\fecshop\app\appfront\modules\Catalogsearch\Module',
/**
* 模块内部的params配置。
*/
'params'=> [
//'categorysearch_filter_attr' =>[
// 'color','size',
......
......@@ -7,8 +7,15 @@
* @license http://www.fecshop.com/license/
*/
return [
/**
* checkout 模块的配置,您可以在@appfront/config/fecshop_local_modules/Checkout.php
* 中进行配置,二开,或者重写该模块(在上面路径中如果文件不存在,自行新建配置文件。)
*/
'checkout' => [
'class' => '\fecshop\app\appfront\modules\Checkout\Module',
/**
* 模块内部的params配置。
*/
'params'=> [
],
......
......@@ -7,8 +7,15 @@
* @license http://www.fecshop.com/license/
*/
return [
/**
* cms 模块的配置,您可以在@appfront/config/fecshop_local_modules/Cms.php
* 中进行配置,二开,或者重写该模块(在上面路径中如果文件不存在,自行新建配置文件。)
*/
'cms' => [
'class' => '\fecshop\app\appfront\modules\Cms\Module',
/**
* 模块内部的params配置。
*/
/*
'params'=> [
'home_title' => [
......
......@@ -7,8 +7,15 @@
* @license http://www.fecshop.com/license/
*/
return [
/**
* Customer 模块的配置,您可以在@appfront/config/fecshop_local_modules/Customer.php
* 中进行配置,二开,或者重写该模块(在上面路径中如果文件不存在,自行新建配置文件。)
*/
'customer' => [
'class' => '\fecshop\app\appfront\modules\Customer\Module',
/**
* 模块内部的params配置。
*/
'params'=> [
'register' => [
// 账号注册成功后,是否自动登录
......
......@@ -7,10 +7,17 @@
* @license http://www.fecshop.com/license/
*/
return [
/**
* Payment 模块的配置,您可以在@appfront/config/fecshop_local_modules/Payment.php
* 中进行配置,二开,或者重写该模块(在上面路径中如果文件不存在,自行新建配置文件。)
*/
'payment' => [
'class' => '\fecshop\app\appfront\modules\Payment\Module',
/**
* 模块内部的params配置。
*/
'params'=> [
],
],
];
......@@ -7,8 +7,17 @@
* @license http://www.fecshop.com/license/
*/
return [
/**
* Site 模块的配置,您可以在@appfront/config/fecshop_local_modules/Site.php
* 中进行配置,二开,或者重写该模块(在上面路径中如果文件不存在,自行新建配置文件。)
*/
'site' => [
'class' => '\fecshop\app\appfront\modules\Site\Module',
/**
* 模块内部的params配置。
*/
'params'=> [
],
],
];
<?php
/**
* FecShop file.
*
* @link http://www.fecshop.com/
* @copyright Copyright (c) 2016 FecShop Software LLC
* @license http://www.fecshop.com/license/
*/
return [
/* appfront base theme dir */
/**
* 模板路径配置部分
*/
'appfrontBaseTheme' => '@fecshop/app/appfront/theme/base/front',
/**
* 模板默认的layout文件,也就是模板路径下面的layout文件夹下的文件,
* 对于上面的模板路径的配置,也就是文件:@fecshop/app/appfront/theme/base/front/layouts/main.php
*/
'appfrontBaseLayoutName'=> 'main.php',
/**
* 入口的名字,这个对应入口的文件夹命名。
*/
'appName' => 'appfront',
];
......@@ -17,7 +17,9 @@ use Yii;
*/
class Country
{
// 快捷支付,得到省的html
/**废弃
* 快捷支付,得到省的html
*/
public static function getExpressPaymentStateHtml($countryCode, $stateCode = '', $ischangestate = '')
{
$state = Yii::$service->helper->country->getStateOptionsByContryCode($countryCode, $stateCode);
......@@ -47,7 +49,9 @@ class Country
return $stateHtml;
}
// 标准支付,得到省的html
/**废弃
* 标准支付,得到省的html
*/
public static function getStandPaymentStateHtml($countryCode, $stateCode = '', $isajaxchange = '')
{
$state = Yii::$service->helper->country->getStateOptionsByContryCode($countryCode, $stateCode);
......
......@@ -15,6 +15,12 @@ namespace fecshop\app\appfront\helper;
*/
class Format
{
/**
* @property $price | Float ,价格
* @property $bits | Int , 小数点后几位的格式,譬如4.00
* @return float, 返回格式化后的数据
* 一般用于模板中,按照显示格式显示产品数据。
*/
public static function price($price, $bits = 2)
{
return number_format($price, $bits);
......
......@@ -9,7 +9,7 @@
namespace fecshop\app\appfront\helper;
/**
/**废弃
* @author Terry Zhao <2358269014@qq.com>
* @since 1.0
*/
......
......@@ -17,6 +17,7 @@ use yii\base\InvalidValueException;
/**
* @author Terry Zhao <2358269014@qq.com>
* @since 1.0
* Appfront 入口的controller的基类
*/
class AppfrontController extends FecController
{
......@@ -29,9 +30,15 @@ class AppfrontController extends FecController
*/
public function init()
{
/**
* 如果模板路径没有配置,则配置模板路径
*/
if (!Yii::$service->page->theme->fecshopThemeDir) {
Yii::$service->page->theme->fecshopThemeDir = Yii::getAlias(CConfig::param('appfrontBaseTheme'));
}
/**
* 如果layout文件没有配置,则配置layout文件
*/
if (!Yii::$service->page->theme->layoutFile) {
Yii::$service->page->theme->layoutFile = CConfig::param('appfrontBaseLayoutName');
}
......@@ -45,8 +52,13 @@ class AppfrontController extends FecController
}
/**
* @property $blockName | String
* get current block
* you can change $this->blockNamespace.
* 这个函数的controller中得到block文件,譬如:
* cms模块的ArticleController的actinIndex()方法中使用$this->getBlock()->getLastData()方法,
* 对应的是cms/block/article/Index.php里面的getLastData(),
* 也就是说,这个block文件路径和controller的路径有一定的对应关系
* 这个思想来自于magento的block。
*/
public function getBlock($blockName = '')
{
......@@ -70,6 +82,9 @@ class AppfrontController extends FecController
/**
* @property $view|string , (only) view file name ,by this module id, this controller id , generate view relative path.
* @property $params|Array,
* 这个是fecshop重写的render函数,根据fecshop的多模板机制
* 首先在高级别的模板中找view文件,如果找不到,按照模板路径优先级依次查找
* 直到找到view'文件。
* 1.get exist view file from mutil theme by theme protity.
* 2.get content by yii view compontent function renderFile() ,
*/
......@@ -82,7 +97,10 @@ class AppfrontController extends FecController
}
/**
* @property $view|string
* Get current layoutFile absolute path from mutil theme dir by protity.
* 首先在高级别的模板中找view文件,如果找不到,按照模板路径优先级依次查找
* 直到找到view'文件。
*/
public function findLayoutFile($view)
{
......
......@@ -12,6 +12,7 @@ namespace fecshop\app\appfront\modules;
/**
* @author Terry Zhao <2358269014@qq.com>
* @since 1.0
* Appfront 入口的Module的基类
*/
class AppfrontModule extends \yii\base\Module
{
......
......@@ -15,6 +15,7 @@ use Yii;
/**
* @author Terry Zhao <2358269014@qq.com>
* @since 1.0
* Catalog Module 模块
*/
class Module extends AppfrontModule
{
......@@ -24,9 +25,11 @@ class Module extends AppfrontModule
{
// 以下代码必须指定
$nameSpace = __NAMESPACE__;
// web controller
// 如果 Yii::$app 对象是由类\yii\web\Application 实例化出来的。
if (Yii::$app instanceof \yii\web\Application) {
// 设置模块 controller namespace的文件路径
$this->controllerNamespace = $nameSpace . '\\controllers';
// 设置模块block namespace的文件路径
$this->blockNamespace = $nameSpace . '\\block';
// console controller
//} elseif (Yii::$app instanceof \yii\console\Application) {
......@@ -36,8 +39,7 @@ class Module extends AppfrontModule
//$this->_currentDir = __DIR__ ;
//$this->_currentNameSpace = __NAMESPACE__;
// 指定默认的man文件
//$this->layout = "home.php";
// 设置该模块的view(theme)的默认layout文件。
Yii::$service->page->theme->layoutFile = 'main.php';
parent::init();
}
......
......@@ -15,6 +15,7 @@ use Yii;
/**
* @author Terry Zhao <2358269014@qq.com>
* @since 1.0
* Catalogsearch Module 模块
*/
class Module extends AppfrontModule
{
......@@ -24,9 +25,11 @@ class Module extends AppfrontModule
{
// 以下代码必须指定
$nameSpace = __NAMESPACE__;
// web controller
// 如果 Yii::$app 对象是由类\yii\web\Application 实例化出来的。
if (Yii::$app instanceof \yii\web\Application) {
// 设置模块 controller namespace的文件路径
$this->controllerNamespace = $nameSpace . '\\controllers';
// 设置模块block namespace的文件路径
$this->blockNamespace = $nameSpace . '\\block';
// console controller
//} elseif (Yii::$app instanceof \yii\console\Application) {
......@@ -38,6 +41,7 @@ class Module extends AppfrontModule
// 指定默认的man文件
//$this->layout = "home.php";
// 设置该模块的view(theme)的默认layout文件。
Yii::$service->page->theme->layoutFile = 'main.php';
parent::init();
}
......
......@@ -15,6 +15,7 @@ use Yii;
/**
* @author Terry Zhao <2358269014@qq.com>
* @since 1.0
* Checkout Module 模块
*/
class Module extends AppfrontModule
{
......@@ -24,9 +25,11 @@ class Module extends AppfrontModule
{
// 以下代码必须指定
$nameSpace = __NAMESPACE__;
// web controller
// 如果 Yii::$app 对象是由类\yii\web\Application 实例化出来的。
if (Yii::$app instanceof \yii\web\Application) {
// 设置模块 controller namespace的文件路径
$this->controllerNamespace = $nameSpace . '\\controllers';
// 设置模块block namespace的文件路径
$this->blockNamespace = $nameSpace . '\\block';
// console controller
//} elseif (Yii::$app instanceof \yii\console\Application) {
......@@ -38,6 +41,7 @@ class Module extends AppfrontModule
// 指定默认的man文件
//$this->layout = "home.php";
// 设置该模块的view(theme)的默认layout文件。
Yii::$service->page->theme->layoutFile = 'one_step_checkout.php';
parent::init();
}
......
<?php
/**
* FecShop file.
*
* @link http://www.fecshop.com/
* @copyright Copyright (c) 2016 FecShop Software LLC
* @license http://www.fecshop.com/license/
*/
namespace fecshop\app\appfront\modules\Cms;
use fecshop\app\appfront\modules\AppfrontModule;
use Yii;
/**
* @author Terry Zhao <2358269014@qq.com>
* @since 1.0
* Cms Module 模块
*/
class Module extends AppfrontModule
{
public $blockNamespace;
......@@ -13,20 +25,21 @@ class Module extends AppfrontModule
{
// 以下代码必须指定
$nameSpace = __NAMESPACE__;
// web controller
// 如果 Yii::$app 对象是由类\yii\web\Application 实例化出来的。
if (Yii::$app instanceof \yii\web\Application) {
// 设置模块 controller namespace的文件路径
$this->controllerNamespace = $nameSpace . '\\controllers';
// 设置模块block namespace的文件路径
$this->blockNamespace = $nameSpace . '\\block';
// console controller
} elseif (Yii::$app instanceof \yii\console\Application) {
$this->controllerNamespace = $nameSpace . '\\console\\controllers';
$this->blockNamespace = $nameSpace . '\\console\\block';
//} elseif (Yii::$app instanceof \yii\console\Application) {
//$this->controllerNamespace = $nameSpace . '\\console\\controllers';
//$this->blockNamespace = $nameSpace . '\\console\\block';
}
//$this->_currentDir = __DIR__ ;
//$this->_currentNameSpace = __NAMESPACE__;
// 指定默认的man文件
//$this->layout = "home.php";
// 设置该模块的view(theme)的默认layout文件。
Yii::$service->page->theme->layoutFile = 'home.php';
parent::init();
}
......
......@@ -15,6 +15,7 @@ use Yii;
/**
* @author Terry Zhao <2358269014@qq.com>
* @since 1.0
* Customer Module 模块
*/
class Module extends AppfrontModule
{
......@@ -24,9 +25,11 @@ class Module extends AppfrontModule
{
// 以下代码必须指定
$nameSpace = __NAMESPACE__;
// web controller
// 如果 Yii::$app 对象是由类\yii\web\Application 实例化出来的。
if (Yii::$app instanceof \yii\web\Application) {
// 设置模块 controller namespace的文件路径
$this->controllerNamespace = $nameSpace . '\\controllers';
// 设置模块block namespace的文件路径
$this->blockNamespace = $nameSpace . '\\block';
// console controller
//} elseif (Yii::$app instanceof \yii\console\Application) {
......@@ -36,8 +39,7 @@ class Module extends AppfrontModule
//$this->_currentDir = __DIR__ ;
//$this->_currentNameSpace = __NAMESPACE__;
// 指定默认的man文件
//$this->layout = "home.php";
// 设置该模块的view(theme)的默认layout文件。
Yii::$service->page->theme->layoutFile = 'main.php';
parent::init();
}
......
......@@ -29,7 +29,7 @@ class FacebookController extends AppfrontController
*/
public function actionLoginv()
{
Yii::$app->session->set('fbs', 1);
Yii::$service->session->set('fbs', 1);
$thirdLogin = Yii::$service->store->thirdLogin;
$facebook_app_id = isset($thirdLogin['facebook']['facebook_app_id']) ? $thirdLogin['facebook']['facebook_app_id'] : '';
$facebook_app_secret = isset($thirdLogin['facebook']['facebook_app_secret']) ? $thirdLogin['facebook']['facebook_app_secret'] : '';
......
......@@ -29,7 +29,7 @@ class GoogleController extends AppfrontController
*/
public function actionLoginv()
{
Yii::$app->session->set('logintype', 'google');
Yii::$service->session->set('logintype', 'google');
$thirdLogin = Yii::$service->store->thirdLogin;
$googleapiinfo['GOOGLE_CLIENT_ID'] = isset($thirdLogin['google']['CLIENT_ID']) ? $thirdLogin['google']['CLIENT_ID'] : '';
$googleapiinfo['GOOGLE_CLIENT_SECRET'] = isset($thirdLogin['google']['CLIENT_SECRET']) ? $thirdLogin['google']['CLIENT_SECRET'] : '';
......
......@@ -15,6 +15,7 @@ use Yii;
/**
* @author Terry Zhao <2358269014@qq.com>
* @since 1.0
* Payment Module 模块
*/
class Module extends AppfrontModule
{
......@@ -24,9 +25,11 @@ class Module extends AppfrontModule
{
// 以下代码必须指定
$nameSpace = __NAMESPACE__;
// web controller
// 如果 Yii::$app 对象是由类\yii\web\Application 实例化出来的。
if (Yii::$app instanceof \yii\web\Application) {
// 设置模块 controller namespace的文件路径
$this->controllerNamespace = $nameSpace . '\\controllers';
// 设置模块block namespace的文件路径
$this->blockNamespace = $nameSpace . '\\block';
// console controller
//} elseif (Yii::$app instanceof \yii\console\Application) {
......@@ -36,8 +39,7 @@ class Module extends AppfrontModule
//$this->_currentDir = __DIR__ ;
//$this->_currentNameSpace = __NAMESPACE__;
// 指定默认的man文件
//$this->layout = "home.php";
// 设置该模块的view(theme)的默认layout文件。
Yii::$service->page->theme->layoutFile = 'one_step_checkout.php';
parent::init();
}
......
<?php
/**
* FecShop file.
*
* @link http://www.fecshop.com/
* @copyright Copyright (c) 2016 FecShop Software LLC
* @license http://www.fecshop.com/license/
*/
namespace fecshop\app\appfront\modules\Site;
use fecshop\app\appfront\modules\AppfrontModule;
use Yii;
/**
* @author Terry Zhao <2358269014@qq.com>
* @since 1.0
* Site Module 模块
*/
class Module extends AppfrontModule
{
public $blockNamespace;
......@@ -13,20 +25,21 @@ class Module extends AppfrontModule
{
// 以下代码必须指定
$nameSpace = __NAMESPACE__;
// web controller
// 如果 Yii::$app 对象是由类\yii\web\Application 实例化出来的。
if (Yii::$app instanceof \yii\web\Application) {
// 设置模块 controller namespace的文件路径
$this->controllerNamespace = $nameSpace . '\\controllers';
// 设置模块block namespace的文件路径
$this->blockNamespace = $nameSpace . '\\block';
// console controller
} elseif (Yii::$app instanceof \yii\console\Application) {
$this->controllerNamespace = $nameSpace . '\\console\\controllers';
$this->blockNamespace = $nameSpace . '\\console\\block';
//} elseif (Yii::$app instanceof \yii\console\Application) {
//$this->controllerNamespace = $nameSpace . '\\console\\controllers';
//$this->blockNamespace = $nameSpace . '\\console\\block';
}
//$this->_currentDir = __DIR__ ;
//$this->_currentNameSpace = __NAMESPACE__;
// 指定默认的man文件
//$this->layout = "home.php";
// 设置该模块的view(theme)的默认layout文件。
Yii::$service->page->theme->layoutFile = 'home.php';
parent::init();
}
......
......@@ -6,8 +6,10 @@
* @copyright Copyright (c) 2016 FecShop Software LLC
* @license http://www.fecshop.com/license/
*/
// 本文件在app/web/index.php 处引入。
// fecshop - apphtml5 的核心模块
/**
* 本文件在@apphtml5/web/index.php 处,会被引入。
* 该配置文件会加载./modules/*.php,并合并成一个数组,返回。
*/
$modules = [];
foreach (glob(__DIR__ . '/modules/*.php') as $filename) {
$modules = array_merge($modules, require($filename));
......@@ -16,13 +18,22 @@ $params = require __DIR__ .'/params.php';
// 此处也可以重写fecshop的组件。供调用。
return [
'modules'=>$modules,
/* only config in front web */
/**
* bootstrap指的是yii2中的初始化(注意,这个bootstrap不是css那个bootstrap),关于Yii2 bootstrap的功能描述可以
* 参看地址:http://www.yiichina.com/doc/guide/2.0/runtime-bootstrapping
*
* 下面的配置的作用为:在fecshop初始化的时候,执行store component的bootstrap方法。
* 也就是 @fecshop/components/Store.php的bootstrap($app)函数。
* 最终是Yii::$service->store->bootstrap($app); 这样,无论执行任何controller,都会执行该函数
* 这也就是bootstap的作用,在Yii2初始化的时候执行的部分代码。
*/
'bootstrap' => ['store'],
// 参数配置部分
'params' => $params,
// Yii组件配置
// Yii组件配置 ,关于yii2组件,可以参看:http://www.yiichina.com/doc/guide/2.0/structure-application-components
'components' => [
// language config.
// yii2 语言组件配置,关于Yii2国际化,可以参看:http://www.yiichina.com/doc/guide/2.0/tutorial-i18n
'i18n' => [
'translations' => [
'apphtml5' => [
......@@ -34,7 +45,7 @@ return [
],
],
],
// Yii2 user组件配置,可以参看:http://www.yiichina.com/doc/guide/2.0/input-validation#client-side-validation
'user' => [
'class' => 'fecshop\yii\web\User',
'identityClass' => 'fecshop\models\mysqldb\Customer',
......@@ -64,7 +75,11 @@ return [
'' => 'cms/home/index',
],
],
/**
* Yii2 Request组件,这里进行了重写,目的是为了实现URL自定义伪静态功能。
* 关于fecshop的url伪静态部分,可以参看:http://www.fancyecommerce.com/2016/05/18/yii2-url-%E8%87%AA%E5%AE%9A%E4%B9%89-%E4%BC%AA%E9%9D%99%E6%80%81url/
* 关于Yii2 request的一些知识,可以参看:http://www.yiichina.com/doc/guide/2.0/runtime-requests
*/
'request' => [
'class' => 'fecshop\yii\web\Request',
/*
......
......@@ -7,8 +7,17 @@
* @license http://www.fecshop.com/license/
*/
return [
/**
* Catalog 模块的配置,您可以在@apphtml5/config/fecshop_local_modules/Catalog.php
* 中进行配置,二开,或者重写该模块(在上面路径中如果文件不存在,自行新建配置文件。)
*/
'catalog' => [
'class' => '\fecshop\app\apphtml5\modules\Catalog\Module',
/**
* 模块内部的params配置。
*/
'params'=> [
],
],
];
......@@ -7,8 +7,15 @@
* @license http://www.fecshop.com/license/
*/
return [
/**
* Catalogsearch 模块的配置,您可以在@apphtml5/config/fecshop_local_modules/Catalogsearch.php
* 中进行配置,二开,或者重写该模块(在上面路径中如果文件不存在,自行新建配置文件。)
*/
'catalogsearch' => [
'class' => '\fecshop\app\apphtml5\modules\Catalogsearch\Module',
/**
* 模块内部的params配置。
*/
/*
'params'=> [
//'categorysearch_filter_attr' =>[
......
......@@ -7,8 +7,15 @@
* @license http://www.fecshop.com/license/
*/
return [
/**
* checkout 模块的配置,您可以在@apphtml5/config/fecshop_local_modules/Checkout.php
* 中进行配置,二开,或者重写该模块(在上面路径中如果文件不存在,自行新建配置文件。)
*/
'checkout' => [
'class' => '\fecshop\app\apphtml5\modules\Checkout\Module',
/**
* 模块内部的params配置。
*/
'params'=> [
],
......
......@@ -7,8 +7,15 @@
* @license http://www.fecshop.com/license/
*/
return [
/**
* cms 模块的配置,您可以在@apphtml5/config/fecshop_local_modules/Cms.php
* 中进行配置,二开,或者重写该模块(在上面路径中如果文件不存在,自行新建配置文件。)
*/
'cms' => [
'class' => '\fecshop\app\apphtml5\modules\Cms\Module',
/**
* 模块内部的params配置。
*/
/*
'params'=> [
'home_title' => [
......
......@@ -7,8 +7,15 @@
* @license http://www.fecshop.com/license/
*/
return [
/**
* Customer 模块的配置,您可以在@apphtml5/config/fecshop_local_modules/Customer.php
* 中进行配置,二开,或者重写该模块(在上面路径中如果文件不存在,自行新建配置文件。)
*/
'customer' => [
'class' => '\fecshop\app\apphtml5\modules\Customer\Module',
/**
* 模块内部的params配置。
*/
'params'=> [
'register' => [
// 账号注册成功后,是否自动登录
......
......@@ -7,10 +7,17 @@
* @license http://www.fecshop.com/license/
*/
return [
/**
* Payment 模块的配置,您可以在@apphtml5/config/fecshop_local_modules/Payment.php
* 中进行配置,二开,或者重写该模块(在上面路径中如果文件不存在,自行新建配置文件。)
*/
'payment' => [
'class' => '\fecshop\app\apphtml5\modules\Payment\Module',
/**
* 模块内部的params配置。
*/
'params'=> [
],
],
];
......@@ -7,8 +7,17 @@
* @license http://www.fecshop.com/license/
*/
return [
/**
* Site 模块的配置,您可以在@apphtml5/config/fecshop_local_modules/Site.php
* 中进行配置,二开,或者重写该模块(在上面路径中如果文件不存在,自行新建配置文件。)
*/
'site' => [
'class' => '\fecshop\app\apphtml5\modules\Site\Module',
/**
* 模块内部的params配置。
*/
'params'=> [
],
],
];
......@@ -17,7 +17,9 @@ use Yii;
*/
class Country
{
// 快捷支付,得到省的html
/**废弃
* 快捷支付,得到省的html
*/
public static function getExpressPaymentStateHtml($countryCode, $stateCode = '', $ischangestate = '')
{
$state = Yii::$service->helper->country->getStateOptionsByContryCode($countryCode, $stateCode);
......@@ -47,7 +49,9 @@ class Country
return $stateHtml;
}
// 标准支付,得到省的html
/**废弃
* 快捷支付,得到省的html
*/
public static function getStandPaymentStateHtml($countryCode, $stateCode = '', $isajaxchange = '')
{
$state = Yii::$service->helper->country->getStateOptionsByContryCode($countryCode, $stateCode);
......
......@@ -15,6 +15,12 @@ namespace fecshop\app\apphtml5\helper;
*/
class Format
{
/**
* @property $price | Float ,价格
* @property $bits | Int , 小数点后几位的格式,譬如4.00
* @return float, 返回格式化后的数据
* 一般用于模板中,按照显示格式显示产品数据。
*/
public static function price($price, $bits = 2)
{
return number_format($price, $bits);
......
......@@ -9,7 +9,7 @@
namespace fecshop\app\apphtml5\helper;
/**
/**废弃
* @author Terry Zhao <2358269014@qq.com>
* @since 1.0
*/
......
......@@ -17,6 +17,7 @@ use yii\base\InvalidValueException;
/**
* @author Terry Zhao <2358269014@qq.com>
* @since 1.0
* Apphtml5 入口的controller的基类
*/
class AppfrontController extends FecController
{
......@@ -29,9 +30,15 @@ class AppfrontController extends FecController
*/
public function init()
{
/**
* 如果模板路径没有配置,则配置模板路径
*/
if (!Yii::$service->page->theme->fecshopThemeDir) {
Yii::$service->page->theme->fecshopThemeDir = Yii::getAlias(CConfig::param('apphtml5BaseTheme'));
}
/**
* 如果layout文件没有配置,则配置layout文件
*/
if (!Yii::$service->page->theme->layoutFile) {
Yii::$service->page->theme->layoutFile = CConfig::param('apphtml5BaseLayoutName');
}
......@@ -45,8 +52,13 @@ class AppfrontController extends FecController
}
/**
* @property $blockName | String
* get current block
* you can change $this->blockNamespace.
* 这个函数的controller中得到block文件,譬如:
* cms模块的ArticleController的actinIndex()方法中使用$this->getBlock()->getLastData()方法,
* 对应的是cms/block/article/Index.php里面的getLastData(),
* 也就是说,这个block文件路径和controller的路径有一定的对应关系
* 这个思想来自于magento的block。
*/
public function getBlock($blockName = '')
{
......@@ -70,6 +82,9 @@ class AppfrontController extends FecController
/**
* @property $view|string , (only) view file name ,by this module id, this controller id , generate view relative path.
* @property $params|Array,
* 这个是fecshop重写的render函数,根据fecshop的多模板机制
* 首先在高级别的模板中找view文件,如果找不到,按照模板路径优先级依次查找
* 直到找到view'文件。
* 1.get exist view file from mutil theme by theme protity.
* 2.get content by yii view compontent function renderFile() ,
*/
......@@ -80,9 +95,11 @@ class AppfrontController extends FecController
return $this->renderContent($content);
}
/**
* @property $view|string
* Get current layoutFile absolute path from mutil theme dir by protity.
* 首先在高级别的模板中找view文件,如果找不到,按照模板路径优先级依次查找
* 直到找到view'文件。
*/
public function findLayoutFile($view)
{
......
......@@ -12,6 +12,7 @@ namespace fecshop\app\apphtml5\modules;
/**
* @author Terry Zhao <2358269014@qq.com>
* @since 1.0
* Apphtml5 入口的Module的基类
*/
class AppfrontModule extends \yii\base\Module
{
......
......@@ -15,6 +15,7 @@ use Yii;
/**
* @author Terry Zhao <2358269014@qq.com>
* @since 1.0
* Catalog Module 模块
*/
class Module extends AppfrontModule
{
......@@ -24,9 +25,11 @@ class Module extends AppfrontModule
{
// 以下代码必须指定
$nameSpace = __NAMESPACE__;
// web controller
// 如果 Yii::$app 对象是由类\yii\web\Application 实例化出来的。
if (Yii::$app instanceof \yii\web\Application) {
// 设置模块 controller namespace的文件路径
$this->controllerNamespace = $nameSpace . '\\controllers';
// 设置模块block namespace的文件路径
$this->blockNamespace = $nameSpace . '\\block';
// console controller
//} elseif (Yii::$app instanceof \yii\console\Application) {
......@@ -36,8 +39,7 @@ class Module extends AppfrontModule
//$this->_currentDir = __DIR__ ;
//$this->_currentNameSpace = __NAMESPACE__;
// 指定默认的man文件
//$this->layout = "home.php";
/// 设置该模块的view(theme)的默认layout文件。
Yii::$service->page->theme->layoutFile = 'main.php';
parent::init();
}
......
......@@ -15,6 +15,7 @@ use Yii;
/**
* @author Terry Zhao <2358269014@qq.com>
* @since 1.0
* Catalogsearch Module 模块
*/
class Module extends AppfrontModule
{
......@@ -24,9 +25,11 @@ class Module extends AppfrontModule
{
// 以下代码必须指定
$nameSpace = __NAMESPACE__;
// web controller
// 如果 Yii::$app 对象是由类\yii\web\Application 实例化出来的。
if (Yii::$app instanceof \yii\web\Application) {
// 设置模块 controller namespace的文件路径
$this->controllerNamespace = $nameSpace . '\\controllers';
// 设置模块block namespace的文件路径
$this->blockNamespace = $nameSpace . '\\block';
// console controller
//} elseif (Yii::$app instanceof \yii\console\Application) {
......@@ -36,8 +39,7 @@ class Module extends AppfrontModule
//$this->_currentDir = __DIR__ ;
//$this->_currentNameSpace = __NAMESPACE__;
// 指定默认的man文件
//$this->layout = "home.php";
// 设置该模块的view(theme)的默认layout文件。
Yii::$service->page->theme->layoutFile = 'main.php';
parent::init();
}
......
......@@ -15,6 +15,7 @@ use Yii;
/**
* @author Terry Zhao <2358269014@qq.com>
* @since 1.0
* Checkout Module 模块
*/
class Module extends AppfrontModule
{
......@@ -24,9 +25,11 @@ class Module extends AppfrontModule
{
// 以下代码必须指定
$nameSpace = __NAMESPACE__;
// web controller
// 如果 Yii::$app 对象是由类\yii\web\Application 实例化出来的。
if (Yii::$app instanceof \yii\web\Application) {
// 设置模块 controller namespace的文件路径
$this->controllerNamespace = $nameSpace . '\\controllers';
// 设置模块block namespace的文件路径
$this->blockNamespace = $nameSpace . '\\block';
// console controller
//} elseif (Yii::$app instanceof \yii\console\Application) {
......@@ -36,8 +39,7 @@ class Module extends AppfrontModule
//$this->_currentDir = __DIR__ ;
//$this->_currentNameSpace = __NAMESPACE__;
// 指定默认的man文件
//$this->layout = "home.php";
// 设置该模块的view(theme)的默认layout文件。
Yii::$service->page->theme->layoutFile = 'one_step_checkout.php';
parent::init();
}
......
<?php
/**
* FecShop file.
*
* @link http://www.fecshop.com/
* @copyright Copyright (c) 2016 FecShop Software LLC
* @license http://www.fecshop.com/license/
*/
namespace fecshop\app\apphtml5\modules\Cms;
use fecshop\app\apphtml5\modules\AppfrontModule;
use Yii;
/**
* @author Terry Zhao <2358269014@qq.com>
* @since 1.0
* Cms Module 模块
*/
class Module extends AppfrontModule
{
public $blockNamespace;
......@@ -13,20 +24,21 @@ class Module extends AppfrontModule
{
// 以下代码必须指定
$nameSpace = __NAMESPACE__;
// web controller
// 如果 Yii::$app 对象是由类\yii\web\Application 实例化出来的。
if (Yii::$app instanceof \yii\web\Application) {
// 设置模块 controller namespace的文件路径
$this->controllerNamespace = $nameSpace . '\\controllers';
// 设置模块block namespace的文件路径
$this->blockNamespace = $nameSpace . '\\block';
// console controller
} elseif (Yii::$app instanceof \yii\console\Application) {
$this->controllerNamespace = $nameSpace . '\\console\\controllers';
$this->blockNamespace = $nameSpace . '\\console\\block';
//} elseif (Yii::$app instanceof \yii\console\Application) {
//$this->controllerNamespace = $nameSpace . '\\console\\controllers';
//$this->blockNamespace = $nameSpace . '\\console\\block';
}
//$this->_currentDir = __DIR__ ;
//$this->_currentNameSpace = __NAMESPACE__;
// 指定默认的man文件
//$this->layout = "home.php";
// 设置该模块的view(theme)的默认layout文件。
Yii::$service->page->theme->layoutFile = 'home.php';
parent::init();
}
......
......@@ -15,6 +15,7 @@ use Yii;
/**
* @author Terry Zhao <2358269014@qq.com>
* @since 1.0
* Customer Module 模块
*/
class Module extends AppfrontModule
{
......@@ -24,9 +25,11 @@ class Module extends AppfrontModule
{
// 以下代码必须指定
$nameSpace = __NAMESPACE__;
// web controller
// 如果 Yii::$app 对象是由类\yii\web\Application 实例化出来的。
if (Yii::$app instanceof \yii\web\Application) {
// 设置模块 controller namespace的文件路径
$this->controllerNamespace = $nameSpace . '\\controllers';
// 设置模块block namespace的文件路径
$this->blockNamespace = $nameSpace . '\\block';
// console controller
//} elseif (Yii::$app instanceof \yii\console\Application) {
......@@ -36,8 +39,7 @@ class Module extends AppfrontModule
//$this->_currentDir = __DIR__ ;
//$this->_currentNameSpace = __NAMESPACE__;
// 指定默认的man文件
//$this->layout = "home.php";
// 设置该模块的view(theme)的默认layout文件。
Yii::$service->page->theme->layoutFile = 'main.php';
parent::init();
}
......
......@@ -29,7 +29,7 @@ class FacebookController extends AppfrontController
*/
public function actionLoginv()
{
Yii::$app->session->set('fbs', 1);
Yii::$service->session->set('fbs', 1);
$thirdLogin = Yii::$service->store->thirdLogin;
$facebook_app_id = isset($thirdLogin['facebook']['facebook_app_id']) ? $thirdLogin['facebook']['facebook_app_id'] : '';
$facebook_app_secret = isset($thirdLogin['facebook']['facebook_app_secret']) ? $thirdLogin['facebook']['facebook_app_secret'] : '';
......
......@@ -29,7 +29,7 @@ class GoogleController extends AppfrontController
*/
public function actionLoginv()
{
Yii::$app->session->set('logintype', 'google');
Yii::$service->session->set('logintype', 'google');
$thirdLogin = Yii::$service->store->thirdLogin;
$googleapiinfo['GOOGLE_CLIENT_ID'] = isset($thirdLogin['google']['CLIENT_ID']) ? $thirdLogin['google']['CLIENT_ID'] : '';
$googleapiinfo['GOOGLE_CLIENT_SECRET'] = isset($thirdLogin['google']['CLIENT_SECRET']) ? $thirdLogin['google']['CLIENT_SECRET'] : '';
......
......@@ -15,6 +15,7 @@ use Yii;
/**
* @author Terry Zhao <2358269014@qq.com>
* @since 1.0
* Payment Module 模块
*/
class Module extends AppfrontModule
{
......@@ -24,9 +25,11 @@ class Module extends AppfrontModule
{
// 以下代码必须指定
$nameSpace = __NAMESPACE__;
// web controller
// 如果 Yii::$app 对象是由类\yii\web\Application 实例化出来的。
if (Yii::$app instanceof \yii\web\Application) {
// 设置模块 controller namespace的文件路径
$this->controllerNamespace = $nameSpace . '\\controllers';
// 设置模块block namespace的文件路径
$this->blockNamespace = $nameSpace . '\\block';
// console controller
//} elseif (Yii::$app instanceof \yii\console\Application) {
......@@ -36,8 +39,7 @@ class Module extends AppfrontModule
//$this->_currentDir = __DIR__ ;
//$this->_currentNameSpace = __NAMESPACE__;
// 指定默认的man文件
//$this->layout = "home.php";
// 设置该模块的view(theme)的默认layout文件。
Yii::$service->page->theme->layoutFile = 'one_step_checkout.php';
parent::init();
}
......
<?php
/**
* FecShop file.
*
* @link http://www.fecshop.com/
* @copyright Copyright (c) 2016 FecShop Software LLC
* @license http://www.fecshop.com/license/
*/
namespace fecshop\app\apphtml5\modules\Site;
use fecshop\app\apphtml5\modules\AppfrontModule;
use Yii;
/**
* @author Terry Zhao <2358269014@qq.com>
* @since 1.0
* Site Module 模块
*/
class Module extends AppfrontModule
{
public $blockNamespace;
......@@ -13,20 +24,21 @@ class Module extends AppfrontModule
{
// 以下代码必须指定
$nameSpace = __NAMESPACE__;
// web controller
// 如果 Yii::$app 对象是由类\yii\web\Application 实例化出来的。
if (Yii::$app instanceof \yii\web\Application) {
// 设置模块 controller namespace的文件路径
$this->controllerNamespace = $nameSpace . '\\controllers';
// 设置模块block namespace的文件路径
$this->blockNamespace = $nameSpace . '\\block';
// console controller
} elseif (Yii::$app instanceof \yii\console\Application) {
$this->controllerNamespace = $nameSpace . '\\console\\controllers';
$this->blockNamespace = $nameSpace . '\\console\\block';
//} elseif (Yii::$app instanceof \yii\console\Application) {
//$this->controllerNamespace = $nameSpace . '\\console\\controllers';
//$this->blockNamespace = $nameSpace . '\\console\\block';
}
//$this->_currentDir = __DIR__ ;
//$this->_currentNameSpace = __NAMESPACE__;
// 指定默认的man文件
//$this->layout = "home.php";
// 设置该模块的view(theme)的默认layout文件。
Yii::$service->page->theme->layoutFile = 'home.php';
parent::init();
}
......
......@@ -25,7 +25,10 @@ return [
// access-token 过期时间。
'accessTokenTimeout' => 86400,
// 速度控制[120,60] 代表 60秒内最大访问120次,
'rateLimit' => [120, 60],
'rateLimit' => [
'enable'=> false, # 是否开启?默认不开启速度控制。
'limit' => [120, 60],
]
],
// language config.
'components' => [
......
......@@ -54,10 +54,13 @@ class AppserverTokenController extends AppserverController
你可以禁用这些头信息通过配置 yii\filters\RateLimiter::enableRateLimitHeaders 为false, 就像在上面的代码示例所示。
*/
$behaviors['rateLimiter'] = [
'class' => RateLimiter::className(),
'enableRateLimitHeaders' => true,
];
$rateLimit = Yii::$app->params['rateLimit'];
if(isset($rateLimit['enable']) && $rateLimit['enable']){
$behaviors['rateLimiter'] = [
'class' => RateLimiter::className(),
'enableRateLimitHeaders' => true,
];
}
return $behaviors;
}
......
......@@ -44,8 +44,8 @@ class CustomerAccessToken extends Customer implements IdentityInterface ,RateLim
# 文档标注:返回允许的请求的最大数目及时间,例如,[100, 600] 表示在600秒内最多100次的API调用。
public function getRateLimit($request, $action){
$rateLimit = Yii::$app->params['rateLimit'];
if(is_array($rateLimit) && !empty($rateLimit)){
return $rateLimit;
if(is_array($rateLimit['limit']) && !empty($rateLimit['limit'])){
return $rateLimit['limit'];
}else{
return [120, 60];
}
......
......@@ -60,15 +60,15 @@ class CustomerLogin extends Model
* 1. 当不开启cookie时,$duration的设置是无效的,yii2只会从user组件Yii::$app->user->authTimeout
* 中读取过期时间
* 2. 当开启cookie,$duration是有效的,会设置cookie的过期时间。
* 如果不传递时间,默认使用 Yii::$app->session->timeout的值。
* 如果不传递时间,默认使用 Yii::$service->session->timeout的值。
* 总之,为了方便处理cookie和session的超时时间,统一使用
* session的超时时间,这样做的好处为,可以让account 和 cart session的超时时间保持一致
*/
public function login($duration = 0)
{
if (!$duration) {
if (Yii::$app->session->timeout) {
$duration = Yii::$app->session->timeout;
if (Yii::$service->session->timeout) {
$duration = Yii::$service->session->timeout;
}
}
if ($this->validate()) {
......
......@@ -194,7 +194,7 @@ class Currency extends Service
protected function actionGetCurrentCurrency()
{
if (!$this->_currentCurrencyCode) {
$this->_currentCurrencyCode = Yii::$app->session->get(self::CURRENCY_CURRENT);
$this->_currentCurrencyCode = Yii::$service->session->get(self::CURRENCY_CURRENT);
}
return $this->_currentCurrencyCode;
......@@ -210,7 +210,7 @@ class Currency extends Service
$currencyCode = $this->defaultCurrency;
}
if ($currencyCode) {
Yii::$app->session->set(self::CURRENCY_CURRENT, $currencyCode);
Yii::$service->session->set(self::CURRENCY_CURRENT, $currencyCode);
return true;
}
......
......@@ -19,9 +19,15 @@ use fecshop\models\mysqldb\SessionStorage;
*/
class PhpSession implements SessionInterface
{
public $timeout;
public function __construct(){
$this->timeout = Yii::$app->session->timeout;
}
public function set($key,$val,$timeout){
if($timeout){
$this->timeout = $timeout;
Yii::$app->session->setTimeout($timeout);
}
return Yii::$app->session->set($key,$val);
......@@ -38,6 +44,7 @@ class PhpSession implements SessionInterface
public function setFlash($key,$val,$timeout){
if($timeout){
$this->timeout = $timeout;
Yii::$app->session->setTimeout($timeout);
}
return Yii::$app->session->setFlash($key,$val);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册