用户
 找回密码
 入住 CI 中国社区
搜索
查看: 936|回复: 9
收起左侧

[版本 4.x] 欢迎交流CI4实际开发中的问题,本人正在开发的小项目

[复制链接]
发表于 2020-8-3 21:43:24 | 显示全部楼层 |阅读模式
一直在使用ci 框架,做为学化工出生,用这框架真是得心应手.从ci3 到 ci4 , 质的飞跃, 命名空间的使用 太好用了 ,还在继续挖掘和学习中
感觉好多功能都还没用到, 目前最多的还是 最常用的 curd 操作 ,比较我还是棵 菜菜

现在忙着做个小型分销商城,支持模块氏开发,截图展示一下,(欢迎各位留帖交流心得)

微信截图_20200803213920.png

微信截图_20200803214217.png



发表于 2020-8-4 22:13:03 | 显示全部楼层
如果将模块放在app目录下面,helper函数不能同时加载应用helper文件与模块helper文件。
官方的示例是将模块放在ROOTPATH下面(与app目录同级)
 楼主| 发表于 2020-8-4 22:18:12 | 显示全部楼层
blackice 发表于 2020-8-4 22:13
如果将模块放在app目录下面,helper函数不能同时加载应用helper文件与模块helper文件。
官方的示例是将模块 ...

我的多模块 里面只有控制器,模型,类文件...带命名空间的就可以用
比如
Apps/School/Controller/Home.php
Apps/School/...

Apps/News/Controller/Home.php
Apps/News/.....
helper 统一放在主项目,可以用不同的文件区分就行
发表于 2020-8-5 09:07:09 | 显示全部楼层
兄弟,ApiBase.php能分享下吗?我参考参考你是怎么实现的。
 楼主| 发表于 2020-8-5 09:16:41 | 显示全部楼层
xgdd1987 发表于 2020-8-5 09:07
兄弟,ApiBase.php能分享下吗?我参考参考你是怎么实现的。

我是菜鸟啊 小老弟,
不是restfull形式,是普通的 路由访问

PHP复制代码
 
 
<?php
namespace App\Controllers;
 
/**
 * Class BaseController
 *
 * BaseController provides a convenient place for loading components
 * and performing functions that are needed by all your controllers.
 * Extend this class in any new controllers:
 *     class Home extends BaseController
 *
 * For security be sure to declare any new methods as protected or private.
 *
 * @package CodeIgniter
 */

 
use App\Controllers\BaseController;
use App\Models\ApisModel;
 
class ApiBase extends BaseController
{
 
    /**
     * An array of helpers to be loaded automatically upon
     * class instantiation. These helpers will be available
     * to all other controllers that extend BaseController.
     *
     * @var array
     */

    protected $helpers = [];
    protected $apisModel;
    protected $mokappkey;
    protected $mokappsecret;
    protected $moktoken;//接口令牌 有效期1周 过期后 重新换取
    protected $mokapp; //当前接口应用信息
    protected $usertoken;//用户令牌
    protected $user;
 
    /**
     * Constructor.
     */

    public function initController(\CodeIgniter\HTTP\RequestInterface $request, \CodeIgniter\HTTP\ResponseInterface $response, \Psr\Log\LoggerInterface $logger)
    {
        // Do Not Edit This Line
        parent::initController($request, $response, $logger);
 
        $this->apisModel = new ApisModel();
 
        $this->usertoken = $this->request->getHeaderLine('token');
        $this->moktoken = $this->request->getHeaderLine('moktoken');
        $this->mokappkey = $this->request->getHeaderLine('mokappkey');
        $this->mokappsecret = $this->request->getHeaderLine('mokappsecret');
 
 
            $this->checkApiToken();//
 
        $this->getUserInfor();
 
    }
 
    //通过mokappkey 和 mokappsecret 生成 token 一周有效期
    protected function createApiToken()
    {
        $data = $this->apisModel->getOpenByKey($this->mokappkey);
        if (!$data) {
            $this->_json(1, '应用不存在');
        }
        $this->mokapp = $data;
        $secret = md5($data['secret'] . $data['key']);
        if ($secret != $this->mokappsecret) {
            $this->_json(1, '应用授权错误');
        }
        $this->moktoken = md5($secret);
        //生成apptoken
        $this->cache->save($this->moktoken, ['id' => $data['id'], 'key' => $data['key'], 'userid' => $data['userid'], 'platform' => $data['platform']], WEEK);
        $this->_json(0, 'ok', $this->moktoken);
    }
 
    protected function checkApiToken()
    {
        $value = $this->cache->get($this->moktoken);
        return $value;
    }
 
    public function getUserInfor()
    {
        $cache = $this->cache->get($this->usertoken);
        if (!$cache) {
            $this->userid = 0;
            $this->user = null;
            return '';
        }
        if (isset($cache['userid']) && $cache['userid']) {
            $this->userid = $cache['userid'];
            $this->session->set('userid', $this->userid);
            $this->user = $this->userModel->getUser($this->userid);
            $this->renderer->setData(['user' => $this->user, 'userid' => $this->userid]);
        }
 
    }
 
}
 
 
 
 
复制代码

 楼主| 发表于 2020-8-5 09:24:13 | 显示全部楼层
xgdd1987 发表于 2020-8-5 09:07
兄弟,ApiBase.php能分享下吗?我参考参考你是怎么实现的。

你用的是 RESTFUL 风格 还是什么样的
我看手册里有 RESTFUL 相关的资料,打算下一波优化的时候,再考虑 RESTFUL形式接入
发表于 2020-8-5 11:12:11 | 显示全部楼层
连普科技 发表于 2020-8-5 09:24
你用的是 RESTFUL 风格 还是什么样的
我看手册里有 RESTFUL 相关的资料,打算下一波优化的时候,再考虑 RES ...

我在考虑用RESTFUL的方式去写,CI4第一次用,还不熟悉。多谢啦。等我写出来,我会分享下。
发表于 2020-9-18 08:52:47 | 显示全部楼层
在开发中涉及到 CI4 动态加载语言包的问题了吗? 比如加载 中文包 还是英文包。 我看手册只有本地化检验,没介绍怎么样手工加载。
发表于 2020-9-18 09:42:34 | 显示全部楼层
已解决

        $language = service('language');
        $language->setLocale('cn');
 楼主| 发表于 2020-9-18 10:43:18 | 显示全部楼层
binhaiit 发表于 2020-9-18 09:42
已解决

        $language = service('language');

标记一下 以后估计会用到 谢谢

本版积分规则