【问题标题】:Class not found after installing with composer使用 composer 安装后找不到类
【发布时间】:2016-08-14 20:54:27
【问题描述】:

我按照说明安装了这个包:

https://github.com/embedly/embedly-php#installing

在我的代码中我做了:

$api = new Embedly\Embedly(array('user_agent' => 'Mozilla/5.0 (compatible; mytestapp/1.0)'));

$objs = $api->oembed('http://www.bbc.com/news/world-latin-america-37077172?ns_mchannel=social&ns_campaign=bbc_breaking&ns_source=twitter&ns_linkname=news_central');

print_r($objs);

但我收到此错误:

找不到类“嵌入\嵌入”

我错过了什么?我必须在提供者/别名中添加一些东西吗?如果是这样,我不知道是什么。我正在使用 Laravel 5.2。

【问题讨论】:

  • 你有require_once ??
  • 作曲家的重点不是不用require吗?我可以不只是通过它的别名以某种方式引用它吗?
  • 检查你的供应商目录,你看到安装的包了吗?也尝试做composer dump-autoload
  • 当你说“在我的代码中我做了”时,是哪个文件?
  • @user6703162,只需要一个自动加载器是使用 Composer 的好处之一,但我不会说这是“重点”。主要好处是它负责安装您的依赖项(以及它们的依赖项,递归地)。

标签: php laravel laravel-5 composer-php laravel-5.2


【解决方案1】:

我猜你只是按照自述文件,其中缺少作曲家的行。 我已经在PR 中添加了。

为了解释这一点,Composer 会处理您所有的自动加载和依赖项。要显式启用它,您需要包含它的自动加载文件,所有这一切都会发生。

您的index.php(或容器)文件的开头应为:

<?php

require_once __DIR__ . '/vendor/autoload.php';

// your code

【讨论】:

    【解决方案2】:

    只需在开头添加另一个'\',如下所示:

    $api = new \Embedly\Embedly(...) ;

    【讨论】:

    • 这无济于事,因为上面没有命名空间
    猜你喜欢
    • 2018-08-27
    • 2015-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-30
    • 2013-03-17
    • 1970-01-01
    • 2015-04-04
    相关资源
    最近更新 更多