【问题标题】:How to create a utils directory in laravel?如何在 laravel 中创建一个 utils 目录?
【发布时间】:2021-11-21 02:56:48
【问题描述】:

我想在 Laravel 8 中为 utils 创建一个目录。我有这个但它不起作用:

app/Utils/DateTime.php:

<?php

namespace App\Utils\DateTime;

const ISO8601_DATE_FORMAT = "Y-m-d\TH:i:s.uP";  

function parseISO8601(string $time): \DateTime {
    if ($time.endsWith("Z")) {
        $time = $time.str_replace($time, "Z", "+00:00");
    }
    return \DateTime::createFromFormat(ISO8601_DATE_FORMAT, $time);
}

app/Http/Controllers/SearchController.php:

<?php

namespace App\Http\Controllers;

use Illuminate\Support\Facades\Http;
use Illuminate\Http\Request;

use function App\Utils\DateTime\parseISO8601 as parseISO8601;

class SearchController extends Controller
{
    public function run(Request $request)
    {
        parseISO8601("2021-10-03T10:00:45.145126+01:00");
    }
}

但我得到一个错误:

Call to undefined function App\Utils\DateTime\parseISO8601()

我错过了什么?由于某种原因,它似乎无法自动加载DateTime。我需要在 Laravel 的某个地方手动配置一个额外的路径吗?

【问题讨论】:

标签: php laravel


【解决方案1】:

我将其更改为一个类并重新启动 PHP。然后它给了我一个错误:

Class App\Utils\DateTime\DateTime located in ./app/Utils/DateTime.php does not comply with psr-4 autoloading standard. Skipping.解释here

我错误地将命名空间指定为App\Utils\DateTime,即使该文件名为DateTime.php。我只需要将命名空间更改为App\Utils

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-27
    • 2017-11-24
    • 1970-01-01
    • 2021-09-19
    • 2016-11-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多