我如何包含OOP" defiant randomdotorg" codeigniter中的库?

时间:2018-03-24 04:09:31

标签: codeigniter oop

The class is here (with instructions).

我已将其添加到application/libraries/randomorg

当我将$this->load->library('RandomOrg\Random');添加到控制器的构造函数中时,出现以下错误。

  

消息:Class' RandomOrg \ Client'找不到

我之前尝试过添加各种文件(例如Client.php),但这并没有帮助。

发生了什么以及如何解决?

1 个答案:

答案 0 :(得分:1)

我知道我已经回答了这个问题,然后才发现在哪里,不知道要搜索什么。所以这里是:Codeigniter只能加载单个 php文件库(不包括完全不同的驱动程序)。要加载这种类型的库(命名空间),您必须使用类似:https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-4-autoloader-examples.md(类示例)的内容。

让它调用它Autoloader_psr4并将其保存在库中(修改类声明以逐字匹配此名称(例如Autoloader_psr4)。删除类中的命名空间声明,使其看起来像:https://pastebin.com/NU8Rbp7Y

我们还将src/randomorg/中的所有文件移至third_party中名为RandomOrg的文件夹中,例如application/third_party/RandomOrg$this->load->library('autoloader_psr4'); $this->autoloader_psr4->register(); $this->autoloader_psr4->addNamespace('RandomOrg', APPPATH . 'third_party/RandomOrg'); $random = new \RandomOrg\Client(); // or whatever... 。您的文件夹应如下所示:https://github.com/defiant/randomorg/tree/master/src/randomorg

用法:

my_alloc(size)