我在哪里将自定义代码放在Laravel中

use*_*788 5 laravel

美好的一天,

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

Alb*_*n N 10

你的意思是自定义课程吗?有时我把我的一些类放在一个单独的目录中,因为正如你所说,它们不适合模型,视图或控制器(或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"
}
Run Code Online (Sandbox Code Playgroud)

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

这将使自定义类自动加载,您可以通过调用它来在项目中的任何地方使用它 YourClass::yourfunction($params)

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