【问题标题】:Adding a composer package to my Laravel project在我的 Laravel 项目中添加一个 composer 包
【发布时间】:2019-09-27 21:27:13
【问题描述】:
  • 我正在尝试将“cedarmaps-php-sdk”composer 包添加到我的 Laravel 项目中

包可以在这里找到:https://github.com/cedarstudios/cedarmaps-php-sdk

  • 我已经成功安装了这个包

    作曲家安装 & 作曲家更新

  • 问题是当我想使用“CedarMaps”时出现错误: "main(): Failed opening required 'vendor/autoload.php' (include_path='C:\xampp\php\PEAR')"*image

  • 目前,我已经通过更改手动绕过了这个问题

require('vendor/autoload.php');

require('../vendor/autoload.php');

在下面的文件(存储库文件)中

供应商/cedarmaps/cedarmaps-php-sdk/src/CedarMaps.php

我做错了吗?

++++++++++++++++++++++++++++++++++++

让我问一个问题:这个包本身是否需要 autoload.php ,我的意思是作曲家不会自动处理所有包的自动加载吗?

【问题讨论】:

  • 你在哪里使用CedarMaps?可以分享一下吗?
  • use CedarMaps\CedarMaps; 然后new CedarMaps($access_token); 这似乎工作正常,因为错误是从包的文件本身内部抛出的\vendor\cedarmaps\cedarmaps-php-sdk\src\CedarMaps.php

标签: php laravel composer-php


【解决方案1】:

您需要使用composer require 'package name' 将软件包安装到您现有的项目中,然后执行composer dump-autoload

【讨论】:

  • 我之前运行过这个“composer dump-autoload”来重新生成自动加载。我的供应商文件夹中有一个 autoload.php 文件
  • 首先撤消对vendor/autoload.php所做的所有更改,您只需要执行以上两个步骤,然后您就可以在控制器中使用$cedarMaps = new \CedarMaps\CedarMaps('$api_key');类。
  • composer dump-autoload 将包括所有添加的新包,并通过类映射使它们可用于您的项目。你不需要改变任何东西。
  • 还要获取 api 密钥,您需要从方法本身发出 curl 或 guzzle 请求。
  • 事实上,我没有对我的 autoload.php 和 composer.json 进行任何更改,但我首先运行 composer require cedarmaps/cedarmaps-php-sdk,它将更新我的 composer.json 并添加新的 require "cedarmaps/cedarmaps-php-sdk" : "^2.0"
猜你喜欢
  • 2014-07-03
  • 2018-01-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-13
  • 2015-11-01
  • 2017-06-27
  • 1970-01-01
相关资源
最近更新 更多