php - 我在哪里放置我的自定义类和函数在 Laravel 中

标签 php laravel function class namespaces

我正在尝试使用一些常用函数构建一个类,我可以在我的项目的任何地方使用这些函数。我不知道在哪里构建包含类的 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/

相关文章:

algorithm - 任何人都可以改进以下 VBA 的 Fuzzyfind 函数吗?

C++ 模板函数优先级

php - 提交我的联系表时,我收到 "No arguments Provided"

php - 在 Laravel 中的 MySQL 中插入 JSON 对象

在类中找不到 PhpStorm 方法

php - Laravel Eloquent ORM whereHas 带有 foreach 循环

c - 为什么不返回修改函数参数值

php - 使用基于 id (cdid) 的 sql 连接查询从 3 个表中获取数据

MySQL 上的 PHP PDO 异常 + 警告消失了吗?

php - mysql_fetch_array()/mysql_fetch_assoc()/mysql_fetch_row()/mysql_num_rows 等...期望参数 1 是资源