文件中找不到Libraries的加载,如何设置才符合CI4的规则?
Config/Autoload.php 修改这个文件中的:
$classmap = [ 'Requests' => APPPATH . 'Libraries/Requests.php' ];
注意,两个Libraries.php 的Libraries包含,第一个目的是为了能自动找到sdk中的类, 第二个目的是为了能自动找到Libraries下的类文件。
<?php defined('BASEPATH') OR exit('No direct script access allowed'); require APPPATH.'third_party/predis111/autoload.php'; require APPPATH."libraries/predis/autoload.php"; class Predis{ private $_redis = null; public function __construct(){ $CI = &get_instance(); $CI ->config->load('predis',TRUE); $predis_config = $CI ->config->item('predis','predis'); $host = isset($predis_config['default']['host']) ? $predis_config['default']['host'] : null; $port = isset($predis_config['default']['port']) ? $predis_config['default']['port'] : null; if(empty($host) || empty($port)){ exit('predis config error'); } $this->_redis = new Predis\Client(array( 'host'=> $host, 'port' => $port )); try{ $this->_redis->connect(); }catch(Predis\Connection\ConnectionException $e){ echo 'Predis connect redis-server has exception! Message:'.$e->getMessage(); exit(); } } public function __call($name,$args){ $callback = array($this->_redis,$name); return call_user_func_array($callback,$args); } }