Ассоциативные массивы в PHP

В PHPStorm появилась поддержка ассоциативных массивов, правда синтаксис поддержки крайне неудобный, все аргументы нужно записывать в одну строку, вложенность не поддерживается.

Пример:


    /**
     * Update order data
     *
     * @param $response array{ problem: string, resultState: array, deliveryDurationInMinutes: int, deliveryRestriction: int, deliveryServiceProductInfo: array }
     */
    public function order_update( array $response){} 

TJQvEVD[1]

 

В качестве альтернативы можно использовать атрибут #[ArrayShape]. Доступен начиная с версии PhpStorm 2020.3 и среди его преимуществ: более красивая подсветка синтаксиса, поддержка многострочности, а также возможность использовать константы для описания структуры.