将第三方库添加到Laravel

时间:2017-07-05 12:06:26

标签: php laravel payment-gateway payment

我有一个RSA算法库通过支付网关给我,当我做

include (app_path().'/PaymentGateway/Crypt/RSA.php');

这个并尝试将对象设为$rsa = new Crypt_RSA();这个它给了我并且错误说

Class 'App\Http\Controllers\Crypt_RSA' not found

我尝试将其包含在web.php中并制作一个有效的对象,当我尝试将其包含在Controller中时会出现问题。

3 个答案:

答案 0 :(得分:1)

您可以通过将基本文件夹添加到以下内容来告诉Composer自动加载任何(非PSR)类:

"autoload": {
"classmap": [
    "app/commands",
    "app/database/migrations",
    "app/database/seeds",
    "app/tests/TestCase.php"
],
....

您还可以通过将自动加载器添加到文件部分来自动加载自动加载器:

"autoload": {
"files": [
    "temboo/src/Temboo_Loader.php"
],

...

添加这些条目后,执行:

composer dumpautoload

检查文件vendor / composer / autoload_classmap.php,必须列出所有可用类,如果没有一个文件,则不会自动加载。

答案 1 :(得分:0)

默认情况下,laravel项目的app文件夹中包含的所有内容都是自动加载的,在项目的 composer.json 中有描述:

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

您唯一需要做的就是使用命名空间:

use App/Path/To/Third/Party/plugin/Class;

但是,如果插件位于App范围之外,则只需将其添加到psr-4自动装载机中:

    "psr-4": {
        "ProjectRootNs\\": "projects/myproject/"
    }

答案 2 :(得分:0)

这就是我所做的。哦,还有一点背景,我在Laravel 4,PHP 5,jpgraph 2中使用它。

我使用jpgraph 4.1Laravel 5.5上使用PHP 7

  1. 在名为jpgraph
  2. 的应用下创建了一个文件夹
  3. 将jpgraph的tarball中的src文件夹放在该文件夹中
  4. 创建文件调用Graph1.php,是使用jpgraph的代码,Custom_GraphsJM文件夹中的类jpgraph
  5. composer.json"app/jpgraph/Graph1.php"添加到"classmap"

    "autoload": {
      "classmap": [
        "database/seeds",
        "database/factories",
        "app/jpgraph/Graph1.php"
      ],
      "psr-4": {
        "App\\": "app/"
      }
    },
    
  6. 在应用程序文件夹中:

    composer dump-autoload

  7. 选中了autoload_classmap.php,我有

    'Custom_GraphsJM' => $baseDir . '/app/jpgraph/Graph1.php',

  8. 在我的模型中,我有

    use Custom_GraphsJM;

  9. 创建班级

    $Two_Graphs_Temp = new Custom_GraphsJM();