先上源码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中查看