第三方 php 库未在 Codeigniter 中加载



我正在为我的应用程序使用代码点火器。我想对我的数据库 ID 进行哈希处理。出于这个原因,我使用以下php库:HashIds for php

此库位于应用程序/库/哈希 id 中.php

这是我的控制器代码。我已经尝试了不同的方法,例如文件名大写等等,但它说无法加载请求的类

<?php 
if ( ! defined('BASEPATH')) exit('No direct script access allowed');
//require_once(APPPATH.'');
//require_once(APPPATH.'libraries/hashids.php-master/src/Hashids.php');

class Pages extends CI_Controller {
public function __construct() {
parent::__construct();
// include APPPATH . 'libraries/Hashids/Src/HashidsInterface.php';
//include APPPATH . 'libraries/Hashids/Src/Hashids.php';
//require_once(APPPATH.'libraries/Hashids/Src/HashidsInterface.php');
require_once(APPPATH.'libraries/Hashids/Src/Hashids.php');
//use Hashids/Src/Hashids.php;
$this->load->model('post_model');
$this->load->model('comment_model');
$this->load->model('media_model');
//$this->load->library('Hashids');
}

public function postFunc() {
$this->load->library('hashids');  
//$hashids = new hashids(); 
$hashids->encode(1);
echo $hashids;
exit(); 
}

上面提到的库也为此实现了接口,因为我是编码点火器的新手,所以不知道为什么会抛出错误。

尝试使用作曲家,我认为现在和将来使用库会更容易。请参阅此处如何安装作曲家。

首先执行命令composer require hashids/hashids或将 lib 添加到 require 对象(如 bellow)中的composer.json文件中,然后执行命令composer install

{
"description": "The CodeIgniter framework",
"name": "codeigniter/framework",
"type": "project",
"homepage": "https://codeigniter.com",
"license": "MIT",
"support": {
"forum": "http://forum.codeigniter.com/",
"wiki": "https://github.com/bcit-ci/CodeIgniter/wiki",
"slack": "https://codeigniterchat.slack.com",
"source": "https://github.com/bcit-ci/CodeIgniter"
},
"require": {
"php": ">=5.3.7",
"hashids/hashids": "3.0.0"
},
"suggest": {
"paragonie/random_compat": "Provides better randomness in PHP 5.x"
},
"require-dev": {
"mikey179/vfsStream": "1.1.*",
"phpunit/phpunit": "4.* || 5.*"
}
}

在配置文件中application/config/config.php确保设置编辑器自动加载脚本的路径,如下所示:

$config['composer_autoload'] = 'vendor/autoload.php';

通常,autoload.php文件位于项目根文件夹上创建的vendor文件夹中。

然后在您的代码中尝试使用 lib 在脚本之上指定命名空间use HashidsHashids;,如下所示:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
use HashidsHashids;    
class Pages extends CI_Controller {
public function __construct() {        
parent::__construct();
$hashids = new Hashids(); // use the lib
$this->load->model('post_model');
$this->load->model('comment_model');
$this->load->model('media_model');
//$this->load->library('Hashids');        
}

相关内容

  • 没有找到相关文章

最新更新