【问题标题】:How do I properly add third party class library to laravel?如何正确地将第三方类库添加到 laravel?
【发布时间】:2015-06-09 15:28:58
【问题描述】:

我正在尝试将这个闭包表类添加到 laravel https://github.com/franzose/ClosureTable 我按照安装说明 我将该文件夹添加到我的 vendor/Franzose 文件夹并更新了 config/app.php

'Franzose\ClosureTable\ClosureTableServiceProvider',

在我的 composer.json 文件中

"require": {
    "laravel/framework": "5.0.*"
    "franzose/closure-table": "4.*"
},

但得到一般类未找到错误 compiler.php 第 6528 行中的 FatalErrorException:找不到类“Franzose\ClosureTable\ClosureTableServiceProvider”

非常感谢任何帮助

【问题讨论】:

  • 你试过运行composer dump-autoload吗?
  • 谢谢,我修正了逗号并再次运行它并 wraycode@ubuserve:~/dev/location-store$ composer dump-autoload 生成自动加载文件然后将它们向上推,但仍然没有找到跨度>
  • 需要在autoload_psr4.php中添加路径吗?
  • 我尝试在 autoload_psr4.php 'Franzone\\' => array($vendorDir . '/franzone/Franzone/ClosureTable') 的数组中添加这个 linie,然后将 Franzone 类移到一个文件夹中/vendor/franzone/Franzone/ 仍然出现同样的错误
  • composer install 是否在您最初安装软件包时运行时没有错误?

标签: laravel


【解决方案1】:

您似乎已经解决了上述问题。但这里有一个提示,可以避免以后遇到麻烦。

只要您只想安装一个包,而不更改或更新其他依赖项,请执行以下操作:

composer require <package-name>

你的情况

composer require franzose/closure-table

您无需在composer.json文件中手动添加包名或将包文件夹添加到vendor文件夹中。 require 命令会为您完成。

这是运行作曲家更新的缺点。从文档中,composer update 执行以下操作:

为了获取最新版本的依赖并更新 composer.lock 文件,您应该使用 update 命令。

这意味着,composer update 会将所有依赖项更新到其最新版本。但是,如果您的代码对特定包的旧版本有紧密的依赖关系,那么您的代码将在您运行更新命令后中断。我从 GitHub 使用的许多软件包都发生了这种情况。直到代码开始崩溃,您才意识到问题所在。

因此,只有在确定更新版本不会影响代码时,才应该运行 composer update。

希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 2017-12-09
    • 2019-10-31
    • 2020-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多