【问题标题】:laravel 5 Class implements Iteratorlaravel 5 类实现迭代器
【发布时间】:2016-10-24 21:42:23
【问题描述】:

我正在尝试将现有库集成到 Laravel5 中,该库本身没有命名空间,并使用 require 在子文件夹中使用自己的类。 我把它放在'app/API/libname/mainlibclass.php'。 同级目录位于“app/API/libname/toolkit”,其中包含库使用的类。

从 Laravel 控制器调用我无法在之前使用 require 语句创建类(正确吗?)

$objectinstance=new Mainlibclass();

所以在我的主 Laravel 应用程序中

use app/API/libname/Mainlibclass

以后照常

$objectinstance=new Mainlibclass();

在现有的库和我设置的每个自己使用的类中

namespace app/API/libname

并在需要的地方“使用”。 我现在没有找不到类,但其中一个文件使用了“实现迭代器”-我收到错误接口“未找到 App\API\libname\Iterator”。

【问题讨论】:

    标签: php class interface laravel-5 iterator


    【解决方案1】:

    尝试在其前面添加\,使其看起来像这样:

    class ABC implements \Iterator {
    

    编辑

    我认为最好保持外部非psr-4/0 库不受影响(以便将来需要时更容易更新)和app/ 目录之外。

    您可以为此使用composer classmap autoload feature

    【讨论】:

    • 我曾尝试过使用 \Iterator;并且得到了相同的结果 - 然后找不到该类
    • 您的链接不是最适合我的情况,但您让我走上了正确的道路,因此接受它作为答案。另外,您不更改原始代码中的任何内容的理想是我从一开始的意图 - 它不是我维护的库。因此,我将路径添加到作曲家中,作曲家转储自动加载并准备好进行一些自己的代码更正。原件完好无损,我有一个来自 Laravel5 的包装器。谢谢
    • PS 现在不需要 '\Iterator' 这种方法也不需要要求 - 回顾一下有一个主库类 - 我对文件夹进行了类映射,现在它就像一个 PHP 泛型类
    猜你喜欢
    • 1970-01-01
    • 2016-03-30
    • 2023-03-27
    • 1970-01-01
    • 2020-11-09
    • 1970-01-01
    • 2012-02-18
    • 1970-01-01
    相关资源
    最近更新 更多