Fecmall

第 2 位会员

会员
个人信息
  • 加入于 2017-05-31 17:38:45
  • 城市 Qingdao
  • GitHub https://github.com/fecshop
  • 最后登录时间 7天前
  • 签名 净化自己,潜心编码
个人简介
Terry,Fecmall开源产品作者,12年电商经验一线程序员开发者,擅长规划产品,架构设计。
个人成就
  • 发表文章次数 744
  • 发布回复次数 5760
  • 个人主页浏览次数 683
fecshop的用户系统能否与fa系统打通6年前

不能,从产品设计角度也不可以

FA和fecshop是一对多的关系,也就是一个FA可以对接多个fecshop站点的设计。

如果你真的想要这样,只能进行二开强制修改。

yii2.0 mongodb怎么实现创建索引6年前

可以直接进mongodb里面加,也可以用fecshop内部加

1.mongodb如何加索引可以自己查询

2.如果用fec的机制,调用一下方法就可以了

参考: https://github.com/fecshop/yii2_fecshop/blob/master/migrations/mongodb/m170228_072455_fecshop_tables.php

你可以写个controller,通过浏览器调用,也可以在console中写,然后通过命令行调用,你也可以写到migrate中, 譬如fecshop安装执行的migrate就是这样搞的

Fecshop 1.6.0.0 发布 - fecshop的完善和安全又上一个新的台阶6年前

找不到依赖包,在重新update试试,网络问题

没事做了下ab,持续更新优化过程 (持续更新)6年前

1.如果并发很慢,你可以试试helloword,也就是写一个test controller,直接输出 echo 1;exit;

2.如果这个helloworld也慢,可以去掉store的初始化,参看文档:http://www.fecshop.com/doc/fecshop-guide/develop/cn-1.0/guide-fecshop-init-sotre.html ,可以在fecshop库包文件中去掉这个store的初始化部分,然后在看看上面的输出并发如何

3.如果还是慢,就需要找找其他的原因了,因为把store也去掉后,基本就是yii2的空框架了(当然,这里面会有一些config文件的合并耗费一点时间),如果还慢,就是外围的问题了

4.fecshop的性能优化参看:http://www.fecshop.com/doc/fecshop-guide/instructions/cn-1.0/guide-fecshop_online_speed.html

5.如果优化好了,找到问题,分享一下哈。

composer create-project 这一步很慢,如何破6年前

@duanzhanling #3楼 github没有vpn也是可以访问的,不排除在某些时间某些网络不能访问

Yii::$service无法获取session,fecshoplang等子服务信息6年前

session配置:@fecshop/config/services/Session.php

1.在@app/web/index.php可以看到

new fecshop\services\Application($config['services']);

也就是执行:https://github.com/fecshop/yii2_fecshop/blob/master/services/Application.php#L66 进行初始化操作

1.1Yii::$service 就是类:https://github.com/fecshop/yii2_fecshop/blob/master/services/Application.php

1.2将 $config['services'] 赋值给 $this->childService

2.下面,当访问 Yii::$service->session的时候,因为没有这个属性,就会执行魔术方法

/**
     * 魔术方法,当调用一个属性,对象不存在的时候就会执行该方法,然后
     * 根据构造方法注入的配置,实例化service对象。
     * @var string $serviceName service name
     * @return \fecshop\services\Service
     * @throws \yii\base\InvalidConfigException if the service does not exist or the service is disabled
     */
    public function __get($serviceName)
    {
        return $this->getChildService($serviceName);
    }

然后执行 getChildService()方法,然后就会到配置中找,session的配置文件是:https://github.com/fecshop/yii2_fecshop/blob/master/config/services/Session.php

找到配置就会实例化,最终的结果就是单例模式的session对象

这个就是整个流程,自己打印排查一下原因吧

升级到1.6.0.0后问题6年前

@dream #7楼

这两个字段有的,不知道你为什么没有

forecopy true,就不用了

升级到1.6.0.0后问题6年前

1.切换属性组这个报错,是一个bug,已经修复

https://github.com/fecshop/yii2_fec_admin/commit/ad646a47e508147af07639b3dd5ad95d361c6796

文件:vendor/fancyecommerce/fec_admin/myassets/dwz_jui-master/js/dwz.dialog.js

2.编辑role,是没有报错的,你自己排查一下原因。

升级到1.6.0.0后问题6年前

可能数据库升级失败, 数据库升级文件:https://github.com/fecshop/yii2_fecshop/tree/master/migrations/mysqldb

查看最后的几个sql文件,是否在你的数据库里面执行了

你这个报错,是找不到updated_at 字段,这个在admin_role表中是存在的

升级到1.6.0.0后问题6年前

1.清空一下浏览器缓存,这次有js更新

2.如果线上assetManager 中forceCopy = false, 那么清空一下 @app/web/asset/下面的js和css文件

3.有错误把错误复制出来粘贴,很多信息看不到

4.升级需要遵从升级文档

关于服务层错误收集反馈的咨询Yii::$service->helper->errors6年前

1.首先,得先了解services,services是一个单例模式(不明白什么是单例模式自行查询)

譬如:Yii::$service->helper,对应的class是:https://github.com/fecshop/yii2_fecshop/blob/master/services/Helper.php

第一次执行的时候,这个class就会实例化对象,第二次访问Yii::$service->helper,就不会实例化对象了, 因此每次执行 Yii::$service->helper,对应的都是同一个对象,这也就是单例模式 ,yii2 service的单例模式的实现参看: http://www.fecshop.com/doc/fecshop-guide/develop/cn-1.0/guide-fecshop-service-abc.html#3

2.通过上面可以了解, Yii::$service->helper->errors是单例模式,每次访问都是同一个对象(无论我在任何地方执行)

也就是类文件:https://github.com/fecshop/yii2_fecshop/blob/master/services/helper/Errors.php

那么我就可以通过Yii::$service->helper->errors->add('$attribute is empty or is not array');, 将错误信息通过这个函数,写到对象变量中

/**
     * 添加一条错误信息
     * @param string $errors 错误信息,支持模板格式
     * @param array $arr 错误信息模板中变量替换对应的数组
     * Yii::$service->helper->errors->add('Hello, {username}!', ['username' => $username])
     */
    public function add($errors, $arr = [])
    {
        if ($errors) {
            $errors = Yii::$service->page->translate->__($errors, $arr);
            $this->_errors[] = $errors;
        }
    }

也就是 $this->_errors,因为这个是一个数组,那么我每次调用Yii::$service->helper->errors->add(''),就会往这个对象变量数组$this->_errors中添加数据

3.然后我就可以从这个对象变量中取出来数据了

public function get($separator = false)
    {
        if ($errors = $this->_errors) {
            $this->_errors = false;
            if (is_array($errors) && !empty($errors)) {
                if ($separator) {
                    if ($separator === true) {
                        $separator = '|';
                    }
                    return implode($separator, $errors);
                } else {
                    return $errors;
                }
            }
        }
        return false;
    }
}

fecshop errors的设置为error只能取出来一次,取出来后就清空$this->_errors,所以你会看到代码 $this->_errors = false;

Yii::$app->getHomeUrl()6年前

目前是通过端口443来判断https的, 在入口文件index.php中, @app/web/index.php

<?php
error_reporting(E_ALL & ~E_NOTICE & ~E_COMPILE_WARNING ); //除去 E_NOTICE E_COMPILE_WARNING 之外的所有错误信息
ini_set('session.cookie_domain', '.fancyecommerce.com'); //初始化域名,
$http = ($_SERVER['SERVER_PORT'] == 443) ? 'https' : 'http';
$homeUrl = $http.'://'.$_SERVER['HTTP_HOST'].rtrim(dirname($_SERVER['SCRIPT_NAME']), '\\/');

homeUrl在入口文件中获取,是为了多种多语言方式的实现。

如果不是443,可以通过其他的方式验证https,试试这个:https://blog.csdn.net/weixin_39461487/article/details/82621291

Yii3.0即将来临了 fecshop决定翻写不?6年前

yii3的新变化介绍:https://cloud.tencent.com/developer/article/1349267

yii3 github地址:https://github.com/yiisoft/yii-core

等yii3出来再看吧

Yii1 -> Yii::app()
Yii2 -> Yii::$app
Yii3 -> Yii::getApp()

:persevere: :stuck_out_tongue: :stuck_out_tongue: :stuck_out_tongue:

Your Site Analytics