在Laravel中,我应该把自定义类和函数放在哪里?

24 浏览
0 Comments

在Laravel中,我应该把自定义类和函数放在哪里?

这个问题已经有了答案

如何在Laravel中创建自定义帮助函数

我正在尝试构建一个包含一些经常使用的函数的类,以便我可以从项目中的任何地方使用它们。我不知道在哪里建立包含这些类的PHP文件,或如何调用它们... 有谁可以帮我弄清楚所有这些东西的归属位置吗?谢谢!!!

/App/Http/Helpers/MyClasses.php


/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();
  }
}

这返回:Class \'App\\Http\\Controllers\\PopularFunctions\' not found。

admin 更改状态以发布 2023年5月22日
0
0 Comments

App/Http 目录下创建一个名为 "Helpers" 的文件夹

在 Helpers 文件夹下创建一个名为 CustomAvatar.php 的类


现在如果你想在你的控制器中使用这个类:

use App\Http\Helpers\CustomAvatar;
 ...
 public function create_user(){
 $customAvatar=new CustomAvatar();
 $defaultAvatar = $customAvatar->default_avatar;
 $user=new User();
 $user->avatar=$defaultAvatar;
 $user->save();
 }

0
0 Comments

基本上,我们可以在app目录下创建另一个目录(例如 MyCustomStuff),然后正确namespace我们的文件。

我知道两种方法。

1. 通过Composer创建全局函数

App/MyCustomStuff/MyGlobalTools.php


然后在"autoload": { }中添加

"files": [
    "app/MyCustomStuff/MyGlobalTools.php"
]

所以目录结构将会是

"autoload": {
    "classmap": [
        "database/seeds",
        "database/factories"
    ],
    "psr-4": {
        "App\\": "app/"
    },
    "files": [
        "app/MyCustomStuff/MyGlobalTools.php" 
    ]
},

更改autoload后,运行composer dump-autoload

然后在控制器中,只需调用全局函数(无需导入),例如:

public function index() {
  $res = sayHi();
}

2. 或普通的类

App/MyCustomStuff/MyClass.php


在您的控制器中

sayhi();
  }
}

0