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

时间:2016-06-29 12:21:11

标签: php laravel laravel-5.2

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

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

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

是否有更简洁的方法来创建不与DB对话的类?任何帮助都非常感谢。

1 个答案:

答案 0 :(得分:4)

向Laravel项目中添加不与数据库交互且不受基础数据库表支持的新类是绝对正常的。

例如,如果您要添加名为File的实用程序样式的类,我建议在app/Utility/File.php

中添加它

你的类定义看起来像这样,结果是:

<?php
namespace App\Utility;

class File
{
    //methods and properties here
}

作曲家自动加载器将负责为您找到该文件,因为您将文件放在Laravel的App命名空间中。无论您何时需要使用该类,只需将其实例化即可:

$file = new \App\Utility\File();

在添加这些类型的实用程序类时要小心god object anti-pattern。您应该尽可能地尝试关注single responsibility principle