注释:如何在 php 中的文档块中指定时间戳

Annotations: How to specify timestamps in docblocks in php

我有一个 returns 时间戳的方法。 我想做这样的事情:

class MyAwesomeService {
    
    /**
     * @return array<int, timestamp>
     */
    public function myAwesomeMethod(): array
    {
        return [
            1636380000,    
            1636385555,
            1636386666,
        ];
    }
}

但是,我认为 @return array<int, timestamp> 无效。

在文档块中指定时间戳的有效格式是什么?

您可以使用int[],时间戳没有有效值。但是,您可以创建一个 ValueObject。

class MyAwesomeService {
    
    /**
     * @return int[]
     */
    public function myAwesomeMethod(): array
    {
        return [
            1636380000,    
            1636385555,
            1636386666,
        ];
    }
}

如果您使用值对象:

final class Timestamp
{
    private $timestamp;
    public function __construct(int $timestamp) {
        $this->timestamp = $timestamp; 
    }
    
    public function get() : int 
    {
        return $this->timestamp;
    }
}

class MyAwesomeService {
    
    /**
     * @return Timestamp[]
     */
    public function myAwesomeMethod(): array
    {
        return [
            new Timestamp(1636380000),    
            new Timestamp(1636385555),
            new Timestamp(1636386666),
        ];
    }
}