CI4 上手练习总结

先上源码php

GitHub地址html

好戏开始啦…………git

在  CI4】CodeIgniter 4 上手练习 中有基本的安装操做,这里就直接从安装后开始github

1、找到  app\Config\App.phpweb

    一、修改项目为本身的域名redis

    public $baseURL = 'http://localhost:8080/';

    这个改成本身的域名,还能够添加自定义的变量,如:数据库

    public $weblibURL   = 'http://test.oaci4.com/weblic/';

    可是   public weblibURL  = $baseURL.  'weblic/';  这样会提示错误,如今尚未解决  @^_^@json

    二、隐藏路径中的  index.php,把这个数组

    public $indexPage = 'index.php';

        修改成缓存

    public $indexPage = '';

        找到  public\.htaccess 文件 ,把

    RewriteRule ^(.*)/$ index.php/$1 [L,R=301]

        修改成

    RewriteRule ^(.*)/$ index.php?/$1 [L,R=301]

    是否是没看出区别,修改后会多了一个[?],同理修改

    RewriteRule ^(.*)$ index.php/$1 [L]

到这里若是环境没问题,就能够运行CI的welcome了

 

2、开启系统日志

      在  app\Config\Logger.php 文件中,找到

    public $threshold = 4;

     修改成本身须要的等级就能够了,日志文件会记录到  writable\logs 目录

 

3、数据库配置

    找到    app\Config\Database.php 文件,设置默认数据库

    public $defaultGroup = 'default';

    能够本身修改成本身指定的数据配置,先仅支持 MySQL,PostgreSQL,SqlLite3,MySQL 默认端口 3306,PostgreSQL 默认端口 5432

    更多能够查看    【官方文档】

4、缓存配置

    找到  app\Config\Cache.php ,支持  Memcached、Redis 缓存,修改本身使用的缓存数据库对应的配置便可,(没有尝试同时使用两个缓存)

 

5、加载经常使用 (CI4 以前没有使用【命名空间】,…………)

    一、session

         使用 session 命名空间

use CodeIgniter\Config\Services;

    定义静态变量

/**
 * -----------------------------------
 * @Date             2019-04-26
 * @Author           Acclea
 * @Describe         $sessionClass
 * -----------------------------------
 */
public static $sessionClass = '';

    在  initController 方法中实例化

// 加载session
        if(empty(self::$sessionClass)){
            $services           = new Services();
            self::$sessionClass         = $services->session();
        }

    这里不须要调用  session_start  方法,由于在加载时会默认调用

    使用

//存储session
$adminRow    = array("id"=>1,"name"=>"admin",);
self::$sessionClass->set($adminRow);

//读取session
$adminId = self::$sessionClass->get('id');

 

    二、redis

    使用 redis 命名空间,使用 Memcached 一样

use Config\Cache;
use CodeIgniter\Cache\CacheFactory;

    定义静态变量

/**
 * -----------------------------------
 * @Date             2019-04-26
 * @Author           Acclea
 * @Describe         redis
 * -----------------------------------
 */
public static $redisConn = '';

在  initController 方法中实例化

// 加载redis
if(empty(self::$redisConn)){
    $redisFact          = new CacheFactory();
    $config             = new Cache();
    self::$redisConn    = $redisFact->getHandler($config);
}

使用 $adminRow 全文同一

//存储Redis
$cacheKeyAdminInfo      = "ci4_test_admin_info_".$adminRow['id'];
$cacheKeyAdminInfoExp   = 60*60*2;

//读取Redis
self::$adminInfo = self::$redisConn->get($cacheKeyAdminInfo);

 

三、加载 配置文件 

使用 App,Autoload命名空间,

use Config\Autoload;
use Config\App;

   定义静态变量

/**
 * -----------------------------------
 * @Date             2019-04-26
 * @Author           Acclea
 * @Describe         加载系统须要的配置
 * -----------------------------------
 */
public static $sysConf = [];

在  initController 方法中实例化

// 加载autoLoad配置
if(!isset(self::$sysConf['autoLoad'])){
    self::$sysConf['autoLoad'] = new Autoload();
}

// 加载app配置
if(!isset(self::$sysConf['app'])){
    self::$sysConf['app'] = new App();
}

使用

$ref['weblibUrl']       = self::$sysConf['app']->weblibURL;

 

四、加载 post、get 获取提交数据

    使用 ResponseTrait命名空间,

use CodeIgniter\API\ResponseTrait;

在 class 第一行 (推荐)加入

use ResponseTrait;

使用以下获取数据,

//获取经过get提交的数据,
 $getData   = $this->request->getGet();

 //获取经过post提交的数据,
 $postData   = $this->request->getPost();

此处获得的时数组形式,获取每一个参数值

$name   = $postData['name'];

 

五、使用自定义通用方法

    建立class,指定命名空间(推荐在 app\Libraries\ 目录下),调用相应方法步骤,

    建立自定义方法

function refJson(int $code = 0, string $msg = "OK", array $data = array()){

    $refArr     = array(
        'code'  => $code,
        'msg'   => $msg,
    );

    if($data){$refArr['data'] = $data;}

    $jsonStr = json_encode($refArr,JSON_UNESCAPED_UNICODE);
     
    die($jsonStr); 
}

    引用命名空间

use App\Libraries\SelfFunc;

    实例化

$selfFunc   = new SelfFunc();

    调用指定方法

$selfFunc->refJson(-3,"非法请求");

 

更多详细代码,能够在GitHub中查看

相关文章
相关标签/搜索