我在哪里把自定义代码放在 Laravel

Posted

技术标签:

【中文标题】我在哪里把自定义代码放在 Laravel【英文标题】:Where do I put custom code in Laravel 【发布时间】:2014-01-04 20:03:36 【问题描述】:

早安,

我有一些来自以前的非 mvc 应用程序的自定义代码。这是所有单元测试的东西。现在,我需要把它放在一个 laravel 应用程序中。它们不是控制器、模型或视图?这是否意味着我必须将它们与 Symfony 和 Swiftmailer 文件夹一起放在 vendor 文件夹中?

【问题讨论】:

【参考方案1】:

您还应该将路径添加到 /start/global.php

这里有更完整的答案:What are the best practices and best places for laravel 4 helpers or basic functions?

【讨论】:

【参考方案2】:

你的意思是自定义类吗?有时我把我的一些类放在一个单独的目录中,因为正如你所说,它们不适合模型、视图或控制器(或 routes.php)。

我所做的是在app 下创建一个名为libraries 的新目录。你可以随意命名它。然后将其添加到composer.json 文件自动加载部分。


    "require": 
        "laravel/framework": "4.0.*",
    ,
    "autoload": 
        "classmap": [
            "app/commands",
            "app/controllers",
            "app/models",
            "app/database/migrations",
            "app/database/seeds",
            "app/tests/TestCase.php",
            "app/libraries" // <---Added here
        ]
    ,
    "scripts": 
        "pre-update-cmd": [
            "php artisan clear-compiled"
        ],
        "post-install-cmd": [
            "php artisan optimize"
        ],
        "post-update-cmd": [
            "php artisan optimize"
        ]
    ,
    "config": 
        "preferred-install": "dist"
    ,
    "minimum-stability": "dev"

不要忘记从终端或 CMD 运行 composer dump-autoload 以更新您的自动加载器。

这将使自定义类自动加载,您可以在项目中的任何位置使用它,方法是像这样调用它YourClass::yourfunction($params)

如果您更喜欢截屏视频,我想推荐 Jeffrey Ways 关于验证的截屏视频。他创建了一个用于验证模型的自定义类。他还展示了如何在您的应用程序中全局设置自定义类。 https://tutsplus.com/lesson/validation-services/

【讨论】:

以上是关于我在哪里把自定义代码放在 Laravel的主要内容,如果未能解决你的问题,请参考以下文章

我在哪里放置 C++ 自定义异常代码?

自定义 Laravel 验证规则示例

把自定义的demuxer加入ffmpeg源码

把自定义的decoder加入ffmpeg源码

自定义的cell,在编辑状态不会右偏

phpcmsv9怎么把自定义表单去掉了?