我正在尝试使用一些常用函数构建一个类,我可以在我的项目的任何地方使用这些函数。我不知道在哪里构建包含类的 PHP 文件,也不知道如何调用它们...谁能帮我找出所有这些东西的位置?谢谢!!!
/App/Http/Helpers/MyClasses.php
<?php
class PopularFunctions {
public function sayhi() {
echo 'hi';
}
}
?>
/App/Http/Controllers/TasksController.php
<?php
namespace App\Http\Controllers;
use App\Http\Helpers\MyClasses;
class TasksController extends Controller {
public function index() {
$myfunctions = new PopularFunctions();
$myfunctions->sayhi();
}
}
这将返回:找不到类“App\Http\Controllers\PopularFunctions”。
最佳答案
基本上,我们可以在 app
内创建另一个目录。目录(例如 MyCustomStuff
),然后是 namespace
我们的文件正确。
我知道两种方法。
1. 全局函数通过 Composer
应用程序/MyCustomStuff/MyGlobalTools.php
<?php
function sayhi() {
echo 'hi';
}
?>
然后在 composer.json 中 "autoload": { }
添加"files": [
"app/MyCustomStuff/MyGlobalTools.php"
]
所以结构将是"autoload": {
"classmap": [
"database/seeds",
"database/factories"
],
"psr-4": {
"App\\": "app/"
},
"files": [
"app/MyCustomStuff/MyGlobalTools.php"
]
},
更改自动加载后。然后运行 composer dump-autoload
然后在 Controller 中,只需调用全局函数(无需导入),例如:public function index() {
$res = sayHi();
}
2. 或普通类应用程序/MyCustomStuff/MyClass.php
<?php
namespace App\MyCustomStuff;
class MyClass {
function sayhi() {
echo 'hi';
}
}
?>
在您的 Controller 中<?php
namespace App\Http\Controllers;
use App\MyCustomStuff\MyClass;
class TasksController extends Controller {
public function index() {
$myfunctions = new MyClass();
$res = $myfunctions->sayhi();
}
}
关于php - 我在哪里放置我的自定义类和函数在 Laravel 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53436841/