当前位置: 首页 > 知识库问答 >
问题:

我在Laravel中的自定义类和函数放在哪里[重复]

慕容嘉熙
2023-03-14

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

共有3个答案

伊裕
2023-03-14

在Laravel Framework中,您只能在app\Http\Controller文件夹中创建控制器。如果要创建自定义类,请在app文件夹中创建。

例子:

文件:app\FAReports.php

命名空间应用程序

等级票价端口{

//DEF//

}

云育
2023-03-14

在App/Http中创建一个目录,比如“Helpers”

在Helpers目录下创建一个类。php

<?php

class CustomAvatar{
    public $default_avatar='avatar.png';

    public function make_custom_avatar(){
        // do your operation here
    }
}

?>

现在,如果您想在控制器内使用此类:

use App\Http\Helpers\CustomAvatar;

 ...

 public function create_user(){

 $customAvatar=new CustomAvatar();
 $defaultAvatar = $customAvatar->default_avatar;

 $user=new User();
 $user->avatar=$defaultAvatar;
 $user->save();

 }
沈巴英
2023-03-14

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

我知道两种方法。

1.Composer的全局函数

App/MyCustomStuff/MyGlobalTools。php

<?php
function sayhi() {
    echo 'hi';
}
?>

然后在composer.json"自动加载": { } 中添加

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

因此,结构将

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

更改自动加载后。然后运行composer dump autoload

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

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

2、或普通班

App/MyCustomStuff/MyClass。php

<?php
namespace App\MyCustomStuff;
class MyClass {
    function sayhi() {
        echo 'hi';
    }
}

?>

在控制器中

<?php

namespace App\Http\Controllers;

use App\MyCustomStuff\MyClass;

class TasksController extends Controller {

  public function index() {

    $myfunctions = new MyClass();
    $res = $myfunctions->sayhi();

  }

}

 类似资料:
  • 很好的一天, 我有一些自定义代码从以前的非mvc应用程序。这都是单元测试之类的。现在,我需要把它放在laravel应用程序中。它们不是控制器、模型或视图?这是否意味着我必须将它们与Symfony和Swiftmailer文件夹一起放入供应商文件夹?

  • 我正在尝试为没有它们的包装提供类型: 我在带有打字稿 2.4.2 的 webpack 中使用 ts-loader,并且在 tsconfig.json 中设置了以下类型根: 我试图模仿: < code>index.d.ts中包含以下内容: 但是错误仍然存在。我做错了什么?我应该把那些自定义的. d.ts文件放在哪里? 和任何其他类型根之间有什么区别?为什么TypeScript会区别对待它们?

  • 问题内容: IOS编程的新手,只是想知道在哪里放置可以在我的代码中使用的函数的最佳位置。例如,我想编写一些函数来执行对Web服务的POST请求并返回字典。也许是另一个函数来做一些计算。最好创建另一个.swift文件并将所有功能放在那里。如果可以的话,给该文件一个好名字是什么? 问题答案: 最好的方法是使用静态函数创建一个帮助器类,如下所示: 现在,每次需要使用时,您都可以像这样使用: 希望对您有所

  • 问题内容: 当我在其中放置bean定义时,出现一条错误消息,指示Tomcat 7无法启动,因为有一个。我将整个堆栈跟踪上传到了文件共享站点,您可以通过单击此链接来阅读。但是,当我注释掉bean定义并尝试重新启动服务器时,我收到另一条错误消息,指示没有的bean定义。您可以通过单击此链接在文件共享站点上阅读第二个堆栈跟踪。 那么我应该将bean定义放在哪里,其语法应该是什么? 我认为问题可能在于,我

  • 严重程度代码说明项目文件行列警告CS1998此异步方法缺少await操作符,将同步运行。考虑使用'await'运算符来等待非阻塞API调用,或者使用'await task.run(...)'在后台线程上执行CPU绑定的工作。ImageParser C:\users\johny\documents\visual Studio 2015\projects\ImageParser\imdbsample\

  • 问题内容: 来自代码标题的问题: 与 问题答案: 来自http://static.springsource.org/spring/docs/2.0.x/reference/transaction.html Spring团队的建议是,您只应使用注释对具体的类进行注释,而不是对接口进行注释。您当然可以将注释放置在接口(或接口方法)上,但这仅在您使用基于接口的代理时才能按预期使用。注解 未继承 的事实意