我有一个RSA算法库通过支付网关给我,当我做
时include (app_path().'/PaymentGateway/Crypt/RSA.php');
这个并尝试将对象设为$rsa = new Crypt_RSA();
这个它给了我并且错误说
Class 'App\Http\Controllers\Crypt_RSA' not found
我尝试将其包含在web.php
中并制作一个有效的对象,当我尝试将其包含在Controller中时会出现问题。
答案 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.1
在Laravel 5.5
上使用PHP 7
。
jpgraph
src
文件夹放在该文件夹中Graph1.php
,是使用jpgraph的代码,Custom_GraphsJM
文件夹中的类jpgraph
。在composer.json
将"app/jpgraph/Graph1.php"
添加到"classmap"
"autoload": {
"classmap": [
"database/seeds",
"database/factories",
"app/jpgraph/Graph1.php"
],
"psr-4": {
"App\\": "app/"
}
},
在应用程序文件夹中:
composer dump-autoload
选中了autoload_classmap.php
,我有
'Custom_GraphsJM' => $baseDir . '/app/jpgraph/Graph1.php',
在我的模型中,我有
use Custom_GraphsJM;
创建班级
$Two_Graphs_Temp = new Custom_GraphsJM();