Laravel使用外部类

时间:2016-12-23 15:18:39

标签: php laravel laravel-5.3 lamp

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

这是文件夹结构:

  • laravel
    • 应用
      • HTTP
        • 控制器
        • FController.php
  • 公共
    • CSS
    • JS​​
    • 的index.php
    • fframework
      • 门面
        • 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留在公共文件夹中?

1 个答案:

答案 0 :(得分:1)

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

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