【问题标题】:Laravel: How to include file from Vendor folder in LaravelLaravel:如何在 Laravel 中包含 Vendor 文件夹中的文件
【发布时间】:2014-02-10 08:03:06
【问题描述】:

我正在尝试包含 Google 的 YouTube 分析服务,但我无法通过 Vendor 文件夹访问它。

include(app_path.'path/to/analytics/Google_YoutubeAnalyticsService.php')

它不起作用,因为它默认为 App 文件夹。

如何退出 App 文件夹并进入 Vendor 文件夹(YouTube 分析文件所在的位置)?

错误是{

包括(C:\xampp\htdocs\mysite\app/path/to/analytics/Google_YoutubeAnalyticsService.php): 无法打开流:没有这样的文件或目录

【问题讨论】:

  • 显然,使用../ 也不起作用

标签: php laravel youtube-analytics


【解决方案1】:

您想从哪里包含该文件?

composer.json 自动加载对象中放置对您文件的引用:

"autoload": {
    "files":["your_file_path"]
}

运行 composer dumpautoload,你就会得到你的文件 :)

【讨论】:

  • 谢谢!我从C:\xampp\htdocs\mysite\app\controllers\User\DashboardController.php 包含它,然后抛出的错误是include(C:\xampp\htdocs\mysite\app/include/config.php): failed to open stream: No such file or directory 我从哪里开始将链接放在自动加载->文件中?
  • 所以用作曲家包含那个文件——不要使用包含。在 Laravel 中,所有对类、文件和命名空间的引用大部分都是通过 composer 完成的。
  • 例如,您可以像这样包含 Requests HTTP 库 (github.com/rmccue/Requests): "autoload": { "classmap": [], "files":["vendor/Requests/library/Requests .php"] }
  • 我已将文件包含在我的组合自动加载块中,现在如何在控制器中使用文件类或方法?
  • 获取“Script Illuminate\Foundation\ComposerScripts::postAutoloadDump 处理 post-autoload-dump 事件并以异常 [ErrorException] 未定义索引:HTTP_HOST”错误终止。怎么办
【解决方案2】:

实际上你在帮助函数中有路径,所以基本上函数 base_path 给出了你项目根目录的方向,所以

echo base_path() . '/vendor';

应该是您的供应商文件夹的路径。

您可以查看所有文档 Helper Functions Laravel

确保您看到的是您使用的 laravel 版本的文档(我放了 4.2 版本的链接)。

【讨论】:

  • 更好的是base_path('vendor')
【解决方案3】:

这个问题是很久以前提出的,答案反映了这一点。大多数时候,如果您使用 composer 安装它,您现在需要做的就是使用“use”语句导入它。 Composer 已经引用了所有重要的目录。

应该是这样的,但会因项目而异。

use FolderNameUsuallyGitHubUserName\ClassNameorGitHubProjectName\Class;

这可能包括一个基类以及一些异常类。

use FolderNameUsuallyGitHubUserName\ClassNameorGitHubProjectName\ClassException;

如果符合现代作曲家和 php 标准,通常大多数包都以这种方式工作。

【讨论】:

    猜你喜欢
    • 2017-05-03
    • 2017-06-23
    • 2018-09-28
    • 2016-12-02
    • 2019-05-22
    • 2018-09-01
    • 2016-03-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多