在laravel中创建一个不与数据库交互的模型?

Cai*_*ius 0 php laravel laravel-5.2

我只是想知道 Laravel 5.2 中创建自定义实用程序类的“最佳实践”。

我已经阅读了 App/Http/ 中的帮助程序,可以通过将每个文件注册到 composer.json 文件来使用它们。但我也读到帮助文件应该是普通的函数文件。不是上课。

所以我想知道创建一个名为File的Model,其中包含一系列处理文件的方法是否是正确的方法。既然与数据库没有交互,就应该命名为相关表的单数名称吧?但是,如果我没有这样称呼的表?

没有更简洁的方法来创建不与数据库对话的类吗?任何帮助都非常感谢。

小智 5

将不与数据库交互且不受底层数据库表支持的新类添加到 Laravel 项目中绝对没问题。

例如,如果您想添加一个名为 File 的实用程序样式类,我建议将其添加到 app/Utility/File.php

因此,您的类定义看起来像这样:

<?php
namespace App\Utility;

class File
{
    //methods and properties here
}
Run Code Online (Sandbox Code Playgroud)

Composer 自动加载器会帮您找到文件,因为您将文件放置在 Laravel 的App命名空间中。无论您需要在何处使用该类,只需像这样实例化它:

$file = new \App\Utility\File();
Run Code Online (Sandbox Code Playgroud)

添加这些类型的实用程序类时,要小心上帝对象反模式。只要有可能,您就应该尝试遵循单一责任原则