【问题标题】:Laravel use external classLaravel 使用外部类
【发布时间】:2017-05-09 07:19:29
【问题描述】:

我是 laravel 的新手,需要一些帮助。 实际上我使用 5.3 laravel 版本。 我需要在 laravel 中使用外部公司框架(将其称为 F 表示简洁)。 这个框架有点像流程管理器。实际上,为了将它与 laravel 集成,我将它放在 laravel/public 文件夹中,这样我就可以在同一个域中使用 laravel 和 F 的页面。在 laravel 中,我需要访问一些 F 功能,这些功能都收集在 FFramework\Facade\FInterface 类中; 然后我想从 laravel 控制器 FController 访问这个类。 但是当我运行代码时,我得到了 Class Not Found Exception。

这是文件夹结构:

  • laravel
    • 应用程序
      • http
        • 控制器
        • FController.php
  • 公开
    • CSS
    • js
    • index.php
    • f框架
      • 门面
        • FInterface.php
      • index.php

这是代码示例:

FController.php

<?php
  namespace App\Http\Controllers;

  use FFramework\facade\FInterface;

  class FController extends Controller {

      public function getSimpleDAta() {
          $f = new FInterface();
          return $f->getSimpleData();
    }
  }

FInterface.php

<?php
  namespace FFramework\facade;

  use some\internal\function;

  class FInterface {

      public function getSimpleDAta() {
          $simpleData = ...omg so much computation :) ...
          return $simpleData;
    }
  }

我得到的例外:

找不到类“FFramework\facade\FInterface”

其他信息

我使用标准 LAMP 配置 PHP 版本是最新的 5.6 稳定版

问题

如何使用 Laravel 控制器中的 FInterface 将 FFramework 留在公共文件夹中?

【问题讨论】:

  • Laravel 使用 composer 的自动加载器,将命名空间和路径添加到 composer.json 中的自动加载部分。

标签: php laravel laravel-5.3 lamp


【解决方案1】:

您需要更新composer.json 文件的自动加载部分,以告知您的项目在FFramework 命名空间中的何处查找文件。

"autoload": {
    "classmap": [
        "database"
    ],
    "psr-4": {
        "App\\": "app/"
        "FFramework\\": "public/fframework"
    }
},

【讨论】:

    猜你喜欢
    • 2021-06-19
    • 2019-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多