Как задать тип содержания массива с помощью phpdoc?

ChAk

Новичок
Не подскажете как указать тип данных который храниться в массиве с помощью phpdoc.
У меня в массиве объекты.
Хотелось что бы для такого кода работал кодкомплит по методам объекта
PHP:
$objs[]->
Но без указания типа содержания массива он не работает
Пробовал так, ни что не работает
PHP:
/** @var Object $objs */
/** @var array(Object) $objs */
/** @var array[Object] $objs */
$objs[]->
 

ChAk

Новичок
Вурдалак
Спасибо так да работает но не то так как хотелось бы работать именно так
PHP:
$objs[]->
без создания промежуточной переменной
 

Вурдалак

Продвинутый новичок
По-моему, есть какое-то решение для phpStorm, а какого-то общего — нет.
 

ChAk

Новичок
Вурдалак
Я как раз phpStorm использую так что такое решение мне бы очень пригодилось если бы кто посказал
 

Redjik

Джедай-мастер
PHP:
@property CCookieCollection $cookies The cookie collection.
//поменял на
@property CCookieCollection|CHttpCookie[] $cookies The cookie collection.
В итоге автокомплит корректно работает для Yii::app()->request->cookies->...
И для Yii::app()->request->cookies['myCookie']->...
 

Redjik

Джедай-мастер
суть одна, но там обертка Yii::app()->request->cookies['myCookie'] это обьект класса CHttpCookie

это просто как пример написал, ибо оказывается можно указывать в Doc Блоке отдельно для коллекции и элемента коллекции
 

fixxxer

К.О.
Партнер клуба
Yii::app()->request->cookies['myCookie'] и $_COOKIE['myCookie'] - это одно и тоже?
arghhh
вот я даже как-то делал у себя патч, который (если работает в девел-среде) копировал суперглобалсы в врапперы, а суперглобалсы занулял.
нефиг их трогать, иначе зачем вообще фреймворк?
 

Absinthe

жожо
fixxxer по хорошему доступ к кукам должен быть прямо с переменной cookies в контроллере без кучи ненужного чейнинга(тут 3 лишних вызова в цепочке).
 

флоппик

promotor fidei
Команда форума
Партнер клуба
В данном случае, «глобальный враппер» для глобального массива с куками — глобальный бред.
Я понимаю, когда фреймворк прячет во враппер параметры вызова — так что бы независимо от вызова браузер/cli иметь единообразный доступ к этим параметрам. Но куки то...
 

Вурдалак

Продвинутый новичок
Там может быть более удобный интерфейс (стандартные $_COOKIE/setcookie в этом плане вообще полное говно плохи), может понадобиться подзапрос а-ля HMVC (хотя да, тут нужен не глобальный объект $request, а передаваемый в контроллер), etc. С объектами работать удобнее.
 

Redjik

Джедай-мастер
не согласен, что нужно из контроллера иметь доступ к $this->cookies, ибо давайте задумаемся, как часто нам нужно поставить куку именно из контроллера?
 
Сверху