Nano Hash - криптовалюты, майнинг, программирование

Intellisense PHPSTORM для литого объекта

У меня есть объект News, который имеет некоторые общедоступные свойства. Я передаю этот объект в массив и передаю в файл для рендеринга. Интересно, есть ли способ создать phpdoc для объекта новостей, который приводится к массиву, поэтому был intellisense. Если эта функция не была реализована, где я могу дать совет сообществу, чтобы они рассмотрели этот вопрос?

Пример кода:

Модель:

/**
 * @property string $content
 */
class News extends ActiveRecord {
  public $date;
  ...
}

Контроллер:

...
$news = new News();
...
$news = (array)$news
$this->render('news_page',compact('news'));
...

Вид:

/**
 * @var News $news
 */
// here should go intellisense for property content and date when pressing ctrl+space
echo $news['content'];
...

Спасибо!

Обновление
Оказалось, что эта функция не реализована, поэтому я создал вопрос на сайте jetbrains. Ссылка здесь: https://youtrack.jetbrains.com/issue/WI-26323. Если вы согласны со мной, пожалуйста, проголосуйте за мою проблему.


  • Содержимое массива вообще не намекается, AFAIK. Почему бы не сохранить его как объект вместо того, чтобы приводить его к массиву? 29.01.2015
  • @deceze на самом деле вы ошибаетесь, создайте многомерный массив следующим образом: $a = ['b'=›'c']; и попробуй получить доступ к его ключам! воаля работает! 29.01.2015
  • Я исправляюсь. Это, кажется, работает только в той же области, поскольку нет определенной структуры данных как таковой. Если вы передадите массив в другое место, непредсказуемо, какое у него будет содержимое, кроме того, что вы можете сказать, что это массив. Итак, я сомневаюсь, что есть способ сделать то, что вы хотите. 29.01.2015
  • @deceze, поэтому у нас есть phpdocs. если какой-то ключ не существует, его проверка должна быть проблемой разработчика, не так ли? 29.01.2015
  • Я не думаю, что это можно сделать. Я знаю, что вы можете аннотировать магические методы, но я не видел, чтобы кто-то аннотировал возможные ключи в ассоциативном массиве. Задать вопрос можно в службе поддержки JetBrains. 29.01.2015
  • Почему вы можете просто получить к нему доступ как к полю (например, $news->content )? 29.01.2015

Ответы:


1

Вы не можете указать пользовательские ключи массива через PHPDoc (будь то имя ключа или тип значения) - в настоящее время это не поддерживается.

Просмотрите эти тикеты (звездочка/голосование/комментарий) и, возможно, некоторые связанные тикеты, чтобы получать уведомления о прогрессе.

29.01.2015
  • Эти проблемы не идентичны. Создал новую проблему. Ссылка здесь: youtrack.jetbrains.com/issue/WI-26323. Буду рад, если кто-то проголосует за него. 30.01.2015
  • С каких пор @property используется для завершения ключа массива? Любые ссылки на документацию PHPDoc, подтверждающую это? В любом случае: вы заполнили заявку, так что теперь разработчики PhpStorm должны решить, что они планируют с этим делать. 30.01.2015
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..