PHPStorm Когда IDE действительно имеет значение PHP


Оглавление (нажмите, чтобы открыть):

PhpStorm не распознает методы PDO из класса

Не уверен, как именно задать этот вопрос. Но я использую PhpStorm в качестве моей IDE.

Я создал класс, который будет обрабатывать мою базу данных поиска и манипулирования. В нем у меня есть этот метод подключения:

Метод работает нормально, но когда я иду использовать $this->conn в других методах PhpStorm не распознает $this->conn как PDO объект.

Используя этот метод:

PhpStorm говорит, что не может найти метод prepare или же execute ,

Если я пройду $this->conn в метод и использовать блок PHPDoc для параметра, он работает нормально:

Мне любопытно, почему это не позволяет мне использовать $this->conn ? Хотя это не так много кода для передачи $this->conn к методу, просто кажется немного излишним.

Любые идеи о том, что мне нужно сделать по-другому?

Решение

использование @var перед определением свойства:

Таким образом, вы говорите PhpStorm, что следующая переменная (свойство) имеет тип PDO , Обратите внимание, что private здесь зависит от вашего кода, это здесь только пример. Взгляни на этот чтобы узнать больше о комментариях к документации PHP в PhpStorm.

Другие решения

Правильнее всего здесь объявить свойство класса $ conn и поместить туда свою аннотацию

есть та же проблема в моем коде.

Кажется, это не единственное, что вы должны добавить в свой источник:

У меня нормально работает на версии 2020.2.4

PhpStorm или осваиваю свою первую >Раздел: Программирование Дата публикации: 20.04.2011

Идея поста появилась ещё 7 января этого года. В тот день, когда я установил PhpStorm. Это был серьёзный шаг для меня, ведь это была моя первая IDE (Интегрированная среда разработки (англ. Integrated Development Environment)).

Я считаю, что перед тем как пользоваться прогрессивными инструментами разработки, следует освоить программирование на хорошем уровне и замечательную программу Notepad++.

Поэтому для меня начало использования IDE является началом новой эры на моём пути программиста.

Почему PhpStorm

Потому что я долго наблюдал за отзывами о различных IDE, сопоставлял их, слушал советы знакомых программистов. В конце концов чаша весов сильно перевесила в пользу PhpStorm.

И я решил – пора.

Главные плюсы использования IDE

Пожалуй, я уже могу говорить об основных преимуществах работы с IDE, в частности PhpStorm.

Я до сих пор не использую многих возможностей (а тем более дополнительных модулей) этой прекрасной программы. Но даже самый основной функционал делает мою работу быстрее, а код чище.

Ускорение разработки

Это достигается за счёт подсказок (тегов, функций, используемых переменных, классов и т.д.), удобного поиска (строки, переменной, метода, чего угодно) и многих других инструментов.

Сюда же можно отнести автоматически закрывающиеся кавычки и теги, адекватную работу с табуляцией (с одной или несколькими строками сразу), возможность открыть любую страницу в любом браузере.

Улучшение качества кода

Есть множество инструментов для рефакторинга. Я не использую никаких дополнительных настроек, только то, что настроено по умолчанию. Например, очень удобно выделение неиспользуемых переменных или подсветка ошибок и варнингов (в самом тексте документа и сбоку возле скроллбара).

Система не позволяет удалить файл без проверки его использования. Если он подключается в другом месте, то вам будет предложено удалить и все упоминания, либо отменить удаление.

Удобство программирования


Удобна возможность «откатить» изменения. По каждому файлу хранится история изменений. Можно подключить систему для контроля версий, но я пока не пробовал работать с VCS.

Конечно же удобная расцветка синтаксиса, а также сворачиваемые теги, классы, функции.

Удобное управление проектами. По сути проект лежит полностью на вашем компьютере и вы можете сохранить изменения в любой момент, залив обновлённые файлы на хост по FTP. При создании проекта все файлы подтягиваются с сервера на локаль.

Если хочется работать в онлайне, то можно поставить в настройках автоматический аплоад изменений. Перебой связи не помешает работе, разве что оттянет загрузку обновлений на сервер. Также удобно поставить настройку автоматической загрузки при изменениях извне. То есть, вам нужно просто забросить или изменить файлы в директории проекта (в Total Commander, например), они загрузятся на сервер без вашего участия.

Ещё есть удобное сравнение локальной версии и той, что находится на сервере (вы же можете быть не одним разработчиком, работающим с сайтом).

Есть ещё инструменты для дебага (отлова ошибок в коде), но их я также пока обошёл стороной.

Итоги

Удобная и функциональная система. Позволяет существенно улучшить качество кода и увеличить скорость разработки.

Система подходит для написания любого кода и вёрстки. Поддерживает всё, что нужно мне: PHP, JavaScript, HTML, CSS.

Многие функции и настройки я вообще не трогал, поэтому написать конкретные советы и туториалы пока не могу (да и надо ли?). В этом опусе я выразил свои впечатления от первого знакомства с IDE и основные функции, которые мне понравились.

Вот эта статья про PhpStorm мне понравилась, можете почитать её. Даже с иллюстрациями.

Напоминаю

О том, что меняюсь ссылками с хорошими блогами.

А также, что здесь можно заказать дешёвую рекламу своего качественного блога.

А вот и обмен

Гилязетдинов Руслан на своём блоге разместил небольшой курс под названием CSS3 для начинающих. На данный момент опубликовано несколько частей курса, пользуйтесь поиском. Верстальщикам будет интересно.

Канат Гайлимов рассуждает о качественной серьёзной разработке. А именно, об архитектуре модульных web-приложений. Тема будет интересна для более менее состоявшихся веб разработчиков – не новичков.

Преимущества PhpStorm в сравнении с Sublime Text

Мне нравится Sublime Text 3, но я расскажу почему PhpStorm лучше. Без последнего редактора вы вряд ли обойдетесь в больших проектах, рассчитанных на разработку нескольких человек.

Заметку решил написать, потому когда со PhpStorm не работаешь, думаешь, что это бесполезный и тяжелый комбайн. А когда в нём начинаешь серьёзно работать, то его особенности тебя поражают своей продуманностью и удобством. А скорость его на современных компьютерах не хуже Саблайма.

PhpStorm на 10 лет ушел вперёд от программ типа Adobe Dreamweaver и предлагает функционал, который тому и не снился.

Sublime Text 3 очень хорош, когда вы работаете один и не нужно постоянно синхронизировать или сравнивать с фтп файлами, чтобы забрать последние редактирования других людей. Также когда не нужно сравнивать, чтобы занести проект на GitHub предварительно скачав из репозитория последние изменения в файлах.

Я рассказываю о преимуществах PhpStorm в сравнении с Sublime Text именно потому, что когда работаешь один не хочется углубляться в огромное количество настроек Шторма. И он тебе кажется громоздким и не нужным. На самом деле это всё оттого, что либо не хватает знаний для работы в Шторме либо проекты не сложные.

Например, какие-то простые вещи я делаю в Sublime Text 3, потому что создавать «Новый проект» в Шторме для небольших изменений никакого смысла нет. Гораздо проще открыть Саблаймом пару файлов и быстро отредактировать нужное содержимое и отправить заказчику. Но когда проекты большие и сложные, написанные не тобой, а работы будет много, завязанные на координации других людей, без PhpStorm не обойтись.

Расскажу о некоторых преимуществах Шторма ниже.

Место редактирования файлов

В PhpStorm продолжить работу с файлами значительно проще, чем в Sublime. В каждом открытом файле запоминается даже курсор и место где вы редактируете. Если вы закроете и откроете программу, то курсор в файлах будет на том же самом месте, в котором он находился в каждом из открытых файлов.

Специальные отметки и избранное

Вы можете на полях файлов делать специальные отметки, которые сохраняются в пункте меню Breakpoints. Таким образом очень легко найти ключевые места в файлах. Кроме того можно любой файл добавить в Избранное и всегда быстро к нему обратиться. Можно создать несколько разных папок для избранного.

Scratch файлы в PhpStorm

В Sublime легко можно создавать пустые файлы, которые не исчезнут после закрытия программы. В PhpStorm вместо пустых и безымянных файлов создаются Scratch файлы. Они никуда не деваются, их не нужно специально куда-то сохранять, они остаются в проекте, пока вы их не удалите. Это удобно.

Сравнение с файлом на FTP

Редактируемый файл можно сравнить с тем, который лежит сейчас на FTP. Это важно, когда разработкой занимаются сразу много человек. Для того, чтобы случайно не удалить чужие наработки.

При сравнении показывается оба файла с изменениями, которые были сделаны с двух сторон:


По стрелочкам можно переносить изменения.

Работа с Git репозиторием

Точно также можно сравнивать файлы с репозиторием GitHub.

Мастер Йода рекомендует:  Алгоритм поиска элемента в отсортированной матрице размером MxN

Если один и тот же файл редактировали несколько человек, то в случае редактирования одних и тех же строк появится конфликт. Такой файл будет подкрашен красным цветом. Для разрешения конфликта, в контекстном меню надо выбрать Resolve Conflicts…

Появится трехколоночное окно. Слева будет ваш файл, по центру конечный, а справа — чужой. В центральную колонку можно выбрать, какие изменения занести с двух сторон.

Все конфликты также можно решить через меню:
VSC -> Git -> Resolve Conflicts…

Поиск в PhpStorm

На удивление поиск в Шторме (когда все файлы проиндексированы, а индексация происходит при создании проекта) работает значительно быстрее. И сделан он гораздо функциональнее.

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

Чертовски удобный поиск. Такого убоства нет в Sublime Text.

Поиск по функциям

В Sublime Text если навести на описанную функцию, то можно пройтись к её описанию:

В PhpStorm-е сделан такой же функционал, но ещё более расширен. Можно переходить не только по функциям. У меня за это отвечает комбинация клавиш Cmd + B (Mac OS), но также если нажать на любую переменную, то переход будет к её описанию.

А если нажать на переменную или саму функцию, там где она описана, то появится окошко со всеми местами, где она используется.

Выделение синтаксиса

Честно говоря Шторм даже перестарался со своими стилями. Выделяется чуть ли не каждая точка (я утрирую конечно), но из-за обилия стилей, весь код превращается в набор ярких красок. Это минус, но минус такой, от которого легко избавиться в настройках. Для себя я убрал с десяток разных стилей, а какие-то сделал общими, стало читаться гораздо легче. А функционал выделений всё равно остался на порядок выше Саблайма.

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

Также можно обратить внимание, что в функциях пишутся значения свойств. Сначала «лишние объекты» бесят, но постепенно, когда привыкаешь, начинают помогать. Из картинки выше видно, что text: и domain: это вспомогательные элементы, которых нет в коде, но они подсказывают, какие атрибуты использует функция.

Подсветка неиспользуемых переменных

Если переменная не используется, она будет закрашена серым цветом. Часто это помогает в написании кода и поиске ошибок.

Подсказка в функциях

Если в функциях пропущена обязательная переменная, то такая функция будет подсвечена, а наверху будет выведена подсказка.

Изменения в файлах

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

Например, работая с десятком файлов одну неделю, легко потом найти все измененные файлы, чтобы загрузить только их на FTP или на GitHub репозиторий. Делается это также через программу. Никакой отдельной FTP программы для этого не нужно.

Другие преимущества

Сохранение без кнопки. Мне нравится, что PhpStorm позволяет сохранять файлы без нажатия кнопок сохранения. Т.е. файлы сохраняются при любом изменении. Не нужно ничего нажимать. Кроме того, можно настроить чтобы при нажатии, скажем Cmd + S файл сохранялся сразу на сервер. Это также экономит кучу времени. Но поначалу надо привыкнуть и не нажимать каждый раз эту комбинацию, чтобы не отправить не готовую версию на рабочий сервер.

В PhpStorm встроена консоль, логи и много другого функционала. Например, автоматическая компиляция SCSS (SASS) файлов. Вы поправили файл scss и он тут же скомпилировался в css. Для этого придётся установить отдельно ruby и его расширения, а затем настроить в Шторме, в разделе File Watchers:

Также можно копировать пути файлов, чтобы дать ссылку другим или самому получить доступ к файлу. Или делиться референсами (ссылкой на файл и местом в нём).

Есть много и других преимуществ, которых нет в Sublime Text 3. Перечислять их все долго. Может быть постепенно добавлю их сюда.

PHPStorm: Когда IDE действительно имеет значение PHP

Я много лет использовал редактор кода «Сублайм-текст». Он не дотягивал по функциональности даже до «Эдитплюса», которым я пользовался на Винде больше десяти лет назад, но казался мне самым приятным и продвинутым из того, что есть на Маке. Всякие ИДЕ я не рассматривал — они уродские и тормозные. Однажды я видел, как разработчик переименовывал файл в «ПХПШторме». На экране несколько секунд заполнялся прогрессбар. Нет, спасибо.

Давайте я тоже поддержу межблоговые дискуссии и отвечу Илье. А ответить есть что.

Уже лет 5 я использую PhpStorm как один из основных инструментов. Как такое могло произойти, если среды разработки — уродские и тормознутые? Давайте разбираться.


Переход на PhpStorm

Раньше я программировал в Notepad++. Вершина его функций — поиск и замена по всем файлам в папке. Казалось, этого вполне достаточно. Мне тоже нравилась скорость работы редактора, и я тоже относился к IDE снисходительно. «Я и так знаю названия функций, нахрена мне тормознутая подсветка синтаксических ошибок в коде?»

Я не помню, что заставило меня скачать PhpStorm. Мне могли понадобиться возможности, которых не было в плагинах к Notepad++. Или я заинтересовался, что же находят в нем люди. Помню только, что он подсвечивал желтым слишком много подозрительных мест в моем коде.

Тем не менее, PhpStorm у меня прижился. Как автор опенсорсного продукта — движка S2 — я получил бесплатную лицензию. С тех пор PhpStorm стал одним из основных моих инструментов.

Миф №1: PhpStorm тормозит

PhpStorm как IDE отличается от текстовых редакторов:

  • индексирует файлы проекта, чтобы потом мгновенно искать по ним, не перебирая каждый раз содержимое;
  • распознает контекст: понимает, где названия функций, где локальные переменные, где пути к файлам и т. д.

PhpStorm как редактор не хуже Notepad++. С той же скоростью появляются буквы и перемещается курсор. Поиск работает мгновенно за счет индексации. Анализ кода работает в фоне и может отставать от курсора. Но в этом большой проблемы нет, потому что сначала программист пишет код, а потом смотрит на подсказки среды разработки.

Миф №2: переименование файла занимает в PhpStorm несколько секунд с прогресс-баром

Зависит от того, что нужно программисту. PhpStorm способен искать вхождения старого названия файла по всему проекту и по контексту определять, нужно ли это название изменить. Альтернатива в обычных редакторах — поиск и замена по всем файлам — занимает несколько минут рутинной работы. Экономия времени на два порядка.

Поиск старого названия файла можно отключить прямо в окне переименования. Тогда файл переименовывается мгновенно.

Миф №3: PhpStorm «устанавливать и настраивать год»

Установка проходит не сложнее установки любых других программ. Первоначальной настройки PhpStorm не требует. Может открыть любую папку как проект без предварительных вопросов.

Настройку дополнительных инструментов делаете тогда, когда они вам понадобятся:

  • путь к git.exe для работы с гитом;
  • доступ к БД, чтобы делать запросы из среды разработки;
  • доступ на сервер по SSH/FTP для загрузки файлов проекта.

Пошаговая отладка через Xdebug настраивается сложнее самой природы . Но если не хотите пользоваться пошаговой отладкой с просмотром значений переменных по всему стеку вызовов, отлаживайте , никто не запрещает 🙂

Миф №4: PhpStorm «выглядит как говно»

Вкусовщина, конечно. Нормально он выглядит. Внешний вид работать не мешает. Чтобы не приводить зря громадный скриншот, покажу заодно «git blame»:

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

PHPStorm: Когда IDE действительно имеет значение PHP

Когда вышел PhpStorm четвёртой версии, я думал, что дальше улучшать уже особо некуда. Работать было уже очень комфортно.

EAP пятой версии приятно удивляли и до релиза скопилась критическая масса улучшений, после привыкания к которой на четвёрке стало уже не так удобно. С шестой версией произошло примерно то же. JetBrains в очередной раз удивили и порадовали.

PhpStorm 5

12 сентября 2012

Релизнулась очередная версия лучшей (по крайней мере для меня) IDE для PHP.

Основные улучшения касаются PHP в общем, но, в этой версии добавили и немного для поддержки фреймворков. А именно поддержку MVC Symfony2 и Yii (ура-ура!).

  • В редакторе PHP переработаны внутренние механизмы распознавая типа переменных и полей классов, что привело заметному улучшению качества и скорости дополнения.
  • Куча дополнений к поддержке SQL и СУБД: рефакторинг схемы, редактирование хранимых процедур, генерация миграций, улучшенное дополнение SQL и другие.
  • Можно использовать свои правила для PHP CodeSniffer.
  • Поддержка стандартов кода Symfony2, PSR1/PSR2, Drupal.
  • «Live Edit» для PHP/HTML/CSS/JS.
  • Большое количество улучшений в редакторах JavaScript и CSS/Sass/LESS.

Кроме того, сделано довольно много косметических изменений интерфейса.

Для тех, кто приобрёл лицензию после 12 Сентября 2011, обновление бесплатно.

До 14 Сентября можно приобрести IDE со скидкой. На обновление скидка не распространяется.

PhpStorm 3.0


Вчера релизнулся PhpStorm третьей версии. Про пару EAP я уже писал. С тех пор вышло семь промежуточных билдов:

  • Поправили большинство ошибок.
  • Ещё чуть увеличили скорость работы.
  • В общем улучшили дополнение и анализ кода.
  • Добавили поддержку нескольких проектов.
  • Переделали интерфейс.
  • Куча новых опций для форматирования кода.
  • Добавили генерацию UML и ER-диаграм по коду и базе и UML-diff.
  • Добавили поддержку JsTestDriver (юнит-тестов для JS-кода) из коробки.
  • Синхронизация с удалённым проектом теперь умеет рекурсивно сравнивать файлы.
  • Добавили поддержку nodejs (для PhpStorm нужно доставить плагин).

Прогресс очень радует, как и планы на будущее.

PhpStorm 3.0 EAP 108.1421

28 сентября 2011

Вот и вторая сборка EAP 3.0. Кроме исправления небольшого числа зависаний и полузависаний есть и очень вкусная штука: поиск дублирующегося кода. Такого пока нет ни в одной известной мне IDE. Я уже успел поиграться и могу сказать, что штука определённо полезная.

Мастер Йода рекомендует:  Как стать настоящим хакером или Capture The Flag

PhpStorm 3.0, первый EAP-билд 108.1343

22 сентября 2011

Вот и вышел первый EAP-билд долгожданной третьей версии полюбившейся многим разработчикам PHP IDE. Остаток дня был проведён за кодом уже в новом билде. Впечатления положительные. Что же интересного принесла нам свежая EAP? Среди просто нереального количества фиксов болячек разной степени важности стоит выделить следующее.

Производительность

Разница действительно очень значительна. Теперь ощущения от работы автодополнения и набора текста в общем очень похожи на работу в «нативных» IDE.

Также обещают более плавную работу с большими проектами при использовании 32-х битной JRE. Как раз мой случай.

Похоже, мне повезло. Коллеги жалуются на задержки в автокомплите. Возможно, связано с комплитом из библиотек.

Интерфейс

Интерфейс претерпел значительные изменения. Сразу бросаются в глаза похудевшие табы, более компактные и продуманные диалоги. Linux и Mac тоже вниманием не обделили. Маку дали более приятный вид и fullscreen, линуксу drag&drop файлов и кучу фиксов.

  • Автоматический перевод курсора в нужное место при записи ассоциативного массива с каждым элементом на новой строке (ура!).
  • Улучшили анализ синтаксиса и подсветку ошибок.
  • Различные улучшения в поддержке XDebug.
  • Добавили тулзу для анализа дампов профайлера XDebug.
  • Поправлены ошибки автоформаттера.
  • Поправили неприятное поведение при вводе кавычек.
  • В настройках можно выбрать конкретный интерпретатор PHP. Зачем, правда, пока не ясно.
  • Улучшили поддержку Twig.
  • Улучшили дополнение по namespace и в замыканиях.
  • Нормально реагирует на ENTER внутри PHPDoc, да и вообще много всего по PHPDoc (ура!)
  • Улучшена поддержка Phing.
  • Поддержка @return $this, @return self и @return static, что очень полезно для дополнения в Yii.

JavaScript

  • Улучшенная поддержка синтаксиса библиотек.
  • Фиксы форматирования и анализа кода.

  • JSLint / JSHint

CSS / HTML

  • Автоматический перевод курсора в нужное место при записи CSS лесенкой.
  • Фикснули оптимизацию перекрывающих друг друга записей.
  • Улучшили поддержку HTML5.
  • Поменяли диалог для выбора цвета. Добавили пипетку и возможность вводить цвет в hex. Убрали HSB. Попробую привыкнуть.
  • Zen Coding 0.7

Разное

  • Добавили возможность исключать директории из заливки по FTP.
  • XSLT debugger

Так как это первый билд третьей версии, стоит отбэкапить настройки перед обновлением. У меня лично обновилось всё без особых проблем, но мало-ли.

PhpStorm 2.1.3

30 августа 2011

Релизнулся стабильный PhpStorm 2.1.3. Последние внесённые исправления не привносят новых возможностей, но довольно важны так как прилично улучшают поведение автодополнения.

Кроме исправлений добавлена возможность отсылать статистику по использованию разных фич IDE в JetBrains. Включить можно в File → Settings → Usage Statistics . Настоятельно рекомендую т.к. на статистику скорее всего будут ориентироваться, выставляя приоритеты.

Ждём новых EAP с вкусняшками.

PhpStorm 2.1.2 RC build 107.403

С последнего поста про PhpStorm вышло приличное количество билдов и даже пара релизов, в которых кроме обычных багфиксов и улучшения производительности добавили много вкусненького:

  • Улучшили рефакторинг extract. Один из самых полезных. После rename, конечно же.
  • Стало возможно задавать шаблоны для генерации геттеров и сеттеров.
  • Добавили поддержку аннотаций в стиле ZDE и NetBeans /* @var MyClass $obj */ .
  • Добавили проверку PHPDoc.
  • Добавили поддержку Twig.
  • Начал распознаваться TODO в PHPDoc.
  • Добавили новые плюшки отладчику.

2.1.2 RC build 107.403

2.1.1 получился немного глючным. По крайней мере, на моих проектах ему плохело и раз в день отваливался autocomplete. 2.1.2 RC пока ведёт себя очень прилично: ничего не отваливается, работает как часы. Оно и понятно: поработали над ошибками очень продуктивно.

Билды, о которых я не писал

PhpStorm 2.1 EAP build 107.21

Уже давно не писал про EAP PhpStorm потому как просто не успевал. Уж очень шустро он развивается. А произошло действительно много всего.

Во-первых был выпущен апдейт 2.0.1, в котором мне лично понравилось, кроме всего остального, следующее:

  • Добавили рефакторинг «Introduce Constant».
  • Наконец, IDE стала сообщать, что у нас в проекте несколько одноимённых классов и автодополнению плохо. Лучше бы, конечно, дополняло как NetBeans, из всех, но и это уже очень хорошо.

Через некоторое время возобновилась EAP:


  • Добавили рефакторинг «Extract function/method».
  • Прилично улучшили инспекции.
  • В CSS стали автодополняться недавно использованные цвета, что очень сильно экономит время.
  • Добавили удобный способ исключить файл из индекса.
  • Добавили поддержку .htaccess .
  • Добавили удобную подсветку вложенных блоков в HTML.
  • Добавили поддержку Phing.

Ну и свежий EAP тоже порадовал. Особенно:

  • Теперь стало возможно делать diff для директорий. Похоже, скоро можно будет избавиться от отдельного внешнего инструмента.
  • Улучшили навигацию по конструктору и поиск использования класса.

От практики обновления EAP-билдов автоматически, похоже отказались, поэтому установить придётся самостоятельно.

PhpStorm 2

15 февраля 2011

Вышел второй релиз отличной IDE для PHP, направленный, прежде всего на поддержку современных языков и технологий.

  • Полная поддержка PHP 5.3 с пространствами имён и замыканиями.
  • Поддержка Zend Debugger. При этом его не нужно настраивать.
  • Командная строка с поддержкой Zend_Tool и Symfony в комплекте.
  • Редактор SQL-запросов с возможностью их запуска, а также просмотра и изменения данных результата.
  • Поддержка ECMAScript 5 «use strict».
  • Поддержка LESS и SASS/SCSS.
  • Relax NG для XML.
  • Поддержка Mercurial.
  • Интеграция с трекерами GitHub, PivotalTracker и RedMine.

Новый интерфейс для всех платформ.

PhpStorm 98.350 и 98.364

Очередные билды PhpStorm очень порадовали.

  • Добавили нормальную поддержку дополнения и рефакторинга для PHP 5.3 (замыкания, пространства имён).
  • Добавлили поддержку GitHub.
  • Выложили гайды по настройке Zend Debugger: установка, настройка. Настраивается действительно попроще, чем xDebug.
  • Отдельные табы:

phpstorm — как описать переменную phpdoc’ом вне класса?

Внутри класса описываю переменную:

И автоподстветка методов работает:

Данный пример (выше) не относится к проблеме ниже!

Вне класса почему-то не пашет (на скриншоте контроллер, по сути это файл целиком), phpstorm не видит phpdoc-блок и подсвечивает красным метод объекта «Метод . не найден.» Как побороть бяку?

1 ответ 1

Попробуйте указать в аннотации название переменной

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

Также следите за правильностью написания неймспейса(PhpStorm может не отобрать подсказки если ему он не понравился)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками php phpstorm или задайте свой вопрос.

Похожие

Подписаться на ленту

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

дизайн сайта / логотип © 2020 Stack Exchange Inc; пользовательское содержимое попадает под действие лицензии cc by-sa 4.0 с указанием ссылки на источник. rev 2020.11.7.35374

Впечатления от >

Решил попробовать часто упоминаемую в последнее время >

    Выглядит все достаточно стандартно. Сверху панель инструментов и табы, слева — вспомогательные навигационные панели типа project browser.

Основное окно PhpStorm


Поиск классов по имени

Звездочка могла бы быть и посимпатичнее

Метод переопределен к потомках

Метод переопределяет родительский

Почему-то хинт не показывается целиком

Расширенная подсказка куда-то уплыла

Подсветка неиспользуемых переменных

Контекстное меню Git

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

PS. Повторюсь, «обзор» поверхностный, это по сути первые впечатления от работы с IDE, так что прошу сильно не пинать

Комментарии (63)

Будьте в курсе обсуждения, подпишитесь на RSS ленту комментариев к этой записи.

@biakaveron
Просто поставить нетбинс 6.9.1 (не настраивая), открыть любой кохановский файл, тот же bootstrap и кликнуть Source->Format.
И нетбинс форматируя код, разорвет строку

на две строки:

На версиях до 6.8 (включая 6.8) такой проблемы нет. Узнавал у товарища, такая же ситуация и он откатился на 6.8. Я тоже пока на 6.8 сижу.

@bagir
Посмотрите в настройках Editor->Formatting->(language PHP)->(category «blank lines»), возможно там.

Кстати, кто-нибудь знает, как настроить PhpStorm, чтобы он делал отступы табами, а не пробелами? Например, когда я открываю массив ( array( ) и нажимаю Enter, у меня генерируется отступ в три пробела (т.е. длина таба), но не таб. Аналогично с внутренностями методов и классов (отступ после открывающей после фигурной скобки)

@biakaveron
File | Settings | Code Style | General | Tabs and Indents
Выбираем закладку PHP, тикаем «Use tab character» и настраиваем отступы под себя (примечание: все значения задаются в количестве пробелов. Для себя я настроил 4, 4, 4)

> Посмотрите в настройках Editor->Formatting->(language PHP)->(category “blank lines”), возможно там.

Сейчас любопытства ради пробежался по настройкам переноса строки в 6.9.1 — действительно не получилось найти штуку, которая влияет на перенос строки после 13 октября 2010, 12:39

@biakaveron
Попробовал все настройки поизменять, и как и avis не обнаружил ничего влияющего на перенос строки после 13 октября 2010, 14:37

@Andriy Bazanov
У меня все это было настроено. Поковырявшись как следует, нашел что-то похожее — в Code Style|Wrapping and Braces секция Array Initializer должна содержать значение Chop down if long . Все остальное не помогало.

Блин… то ли у меня руки крюки, то ли не понимаю чего-то, но уже неделю не могу нормально ни одну IDE под php состыковать с denwer

Подскажите пожалуйста насчет автодополнения кода в CodeIgniter 2. Много читал в гугле насчет этого. Но полностью удовлетворяющий вариант так и не нашел.
Итого как работает худо-бедно сейчас. Вставляю строки :

В какой-либо свой контроллер. Тогда во всех файлах работает автодополнение. Писать можно. Но… php ругается на двойную декларацию класса CI_Controller. Ну оно и понятно Приходится при просмотре результатов работы в браузере все время вырезать эти строки, а потом заново вставлять.

С другой стороны вставка этих строчек в файл …system/core/Controller.php как советовали в решениях совсем не помогает, автодополнение не работает вообще.

Посоветуйте пожалуйста, очень хочется человеческое решение.

UPD. И кстати появилась еще одна неприятность. При написании кода PhpStorm начинает сыпать на меня ошибки, которых по сути нет. Например когда я пишу что-то на манер

получаю подчеркивание строки и «data — undefined variable»

@Evgeny
1) Как вариант: вставляйте эти строки для class MyController extends CI_Controller <>; и потом используйте MyController как базовый класс для всех Ваших классов.

2) «вставка этих строчек в файл …system/core/Controller.php» — вообще то должно работать (по идее). Какие ошибки выдает? Просто так ведь не может не работать.
З.Ы. Я сам с CodeIgniter не работаю, но разбирался раньше как его подружить с PhpStorm — и один из этих загугденых советов таки работал. Также — http://youtrack.jetbrains.com/issue/WI-1174

3) «UPD. И кстати появилась еще одна неприятность.» — самый обычный фрагмент, ничего криминального не замечено — у меня работает. Попробуйте воспроизвести эту проблему в новом пустом проекте и попробуйте «File | Invalidate caches…» — помогает в некоторых вот таких «х.з. че это» ситуациях. Если не работает только в Вашем конкретном коде — нужен тогда полный код что бы проанализировать возможную причину…

@Andriy спасибо за ответы)
1) Решил проблему простым созданием пустого контроллера autoload.php с указанными строками, который в проекте не используется. Дополнение подхватилось.
2) Не знаю, почему не получалось подхватить с родительского файла Controller.php, он ведь наследуется моими контроллерами… но тем не менее.
3) И ошибки тоже исчезли )) Так что теперь можно кодить и разбираться с фреймворком. Как немного разберусь, перейду наверное на Кохану.

Добрый день. Помогите разобраться
Поставил Эту IDE. Все замечательно, Только вот она «не видит классы фреймвока»
Из-за этого получается что не работает автодополнение, нельзя провалиться из любого места кода в класс фреймворка, чтобы посмотреть как там что работает.
Классы же которые внутри модуля видны и работаеют как надо.

P.S приложение работает, т.е дело только в настройке IDE.
P.P.S zend Framework


Есть подозрение, что к проекту подключены только непосредственно разрабатываемые Вами файлы и папки. Их и видно. Чтобы добавить в проект другие директории, откройте Настройки (Settings) и там в Настройках проекта (Project Settings) необходимо указать подключаемые директории либо в Directories (Add Content Root), либо в PHP (добавляем include_path). Вообще, рекомендую обратить внимание на настройки в Directories, если указать Resourse roots (IDE будет подсказывать пути к картинкам, скриптам и стилям) и Exclude Folders (зачем индексировать всякие там логи и кэш?), то работать будет удобнее и пошустрее.

Продуктивное использование PhpStorm

Коротко о главном

Речь в статье идет о последней на момент ее написания версии, восьмой. Так же я использую PhpStorm на Windows, поэтому и все хоткеи буду писать с упоминанием Ctrl и Alt. Если у вас Mac, скорее всего вместо них можно жать CMD, либо придется порыться во вкладке Keymap настроек.

Автогенерация кода

Довольно банальная функция, но многие о ней и не подозревают. Поставьте курсор внутрь класса и нажмите Alt + Insert. Появится меню автогенерации кода. Можно создавать конструкторы, геттеры/сеттеры (сразу для нескольких выбранных вами свойств), PHPDoc блоки, а так же реализовывать методы интерфейсов или переопределять методы родительского класса.

Очень удобно работает реализация/переопределение методов. Автоматически именуются параметры и создается PHPDoc. Так же можно по-быстрому вызвать только переопределение методов (Ctrl + O) или только реализацию иинтерфейсов (Ctrl + I).

Понажимайте Alt + Enter в различных положениях курсора. Например, на неимпортированном классе, это позволит автоматически импортировать его. А вообще это мега сочетание, которое умеет очень многое.

Форматирование кода

Совсем очевидная фича, но некоторые о ней не знают. По нажатию Ctrl + Alt + L осуществляется автоформатирование текущего файла, либо выбранного фрагмета кода. Если в дереве проекта выбрать файл и нажать то же сочетание, то он полностью будет отформатирован. Можно так же выбрать папку и будет отформатирована все файлы в этой папке.

Рефакторинг

PhpStorm умеет кучу всего: выделять одинаковые участки кода в метод (Extract -> Method), выделять участки кода в переменную (Extract -> Variable), выделять поля и константы. Просто покапайтесь в разделе Refactoring. Или есть прекрасная статья на эту тему.

Переключение проектов

Стандартный механизм переключения проектов не слишком удобен. Я советую использовать Frame Switcher для быстрого переключения между проектами.

Задачи

Если вы еще не пользуетесь системой контроля версий в PhpStorm, то самое время начать. Именно потому, что в этой IDE реализована потрясающая система разбиения текущих изменений на задачи (tasks).

Допустим, вы работаете над неким функционалом, уже изменен десяток файлов и идет второй день работы без коммитов. Прибегает манагер и просит «нувотпрямщаспоправьэтуфигню». И тут начинаются неудобства. Нужно запомнить какие изменения относятся к вашей основной задаче, а какие относятся к этой мелкой правке, чтобы правильно разбить изменения на два коммита.

PhpStorm решает эту проблему за вас. Все что вам нужно, создать отдельную задачу (Task) или Changelist (не понял в чем между ними принципиальная разница, если кто-то объяснит, опубликую), назначить его активным и сделать быструю правку. При этом вы увидите, что PhpStorm отнесет изменения в файлах к вашей активной задаче. А если вы случайно затроните файлы из другой параллельной задачи, то увидите предупреждение.

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

Быстрое открытие файла аля SublimeText

По Ctrl + N можно быстро открыть файл с нужным классом, а по Shift + Ctrl + N вообще любой файл по имени. А через Ctrl + Shift + Alt + N можно найти любой «символ», т.е. переменную, функцию и т.п.

Метки в проекте

Нажимая Ctrl + Shift + 0..9 можно оставлять в проекте метки. Чтобы быстро перейти к какой-либо метке нужно нажать Ctrl + 0..9 (номер метки).

Быстрое обертывание

Выделив фрагмент кода и нажав Ctrl + Alt + T можно быстро обернуть блок в if-else или какой-либо цикл. Так же при редактировании HTML срабатывает Ctrl + Alt + Enter. Это обертывание с помощью Emmet.

Сравнение двух файлов

PhpStorm имеет очень няшное окно diif-а, т.е. сравнения двух файлов. Если в дереве проекта выделить пару файлов и нажать Ctrl + D, то можно сравнить содержимое этих двух файлов.

Список использований

Не уверены, используется ли где-то ваш метод? Поставьте на него курсор и нажмите Ctrl + F7. Появится список использований метода, переменной или другого «символа». Можно использовать Ctrl + Alt + F7, тогда список появится в виде контекстного меню, что иногда чуть удобнее.

Быстрый переход к объявлению

Все вкурсе, что по Ctrl + клик можно перейти к определению «символа». Но по нажатию Ctrl + Alt + Left можно вернуться назад. А по Ctrl + Shift + Backspace можно вернуться к последнему месту редактирования кода, если вы вдруг заблудились в длинном скролле.

Мульти буфер обмена

Как часто бывало, что скопированное в буфер терялось из-за еще одного копирования? PhpStorm из коробки запоминает все что было в буфере и можно использовать Ctrl + Shift + V для вставки прошлых значений.

Автогенерация спрайтов

Автоматическая генерация CSS спрайтов не доступна из коробки, однако настраивается за 15 минут без особых проблем. В итоге вы получите полностью автоматическое создание PNG спрайтов с готовыми CSS/LESS стилями.

Представление типа PhpStorm для возвращаемого значения производного класса

Можно ли намекнуть PhpStorm, что в приведенном ниже коде значение возвращаемого значения метода item() имеет тип DOMElement ( БЕЗ модификации фактических операторов PHP, то есть с помощью некоторых внешних настроек PhpStorm или плагин или использование комментариев PHPDoc и т.д.)?

Опять же, пожалуйста, не предлагайте мне изменять инструкции в коде, в частности, часть $list->item(0)->getAttribute(‘test’) .

Кроме того, я нашел несколько аналогичный вопрос тип типа-намека PhpStorm для фабрик?, но он касается типа-намека на пользовательские функции, в моем случае функция item() является предопределенной библиотечной функцией.

В соответствии с официальными документами $list->item(0) возвращает элемент класса DOMNode , у которого нет метода getAttribute() . PhpStorm следует за официальными документами здесь.

Но если вы добавите дополнительную строку в свой код и проанализируете его в отладчике (например, $z = $list->item(0); ), вы увидите, что $z является экземпляром DOMElement , который имеет такой метод.

A. Вы не можете добавлять документацию к предопределенным методам (особенно в цепочке) на лету. Ни в коем случае.

B. Как вы можете видеть — «проблема» здесь находится в документах: они говорят, что item() возвращает экземпляр одного класса, в то время как в вашем конкретном случае он возвращает экземпляр другого класса.

1. Измените свой код, чтобы ввести промежуточную переменную, к которой вы можете дать правильный намек типа. Насколько я понимаю, вы не хотите его использовать.

2. Игнорировать эти предупреждения: вы можете полностью или полностью отключить этот файл; вы можете снизить степень серьезности (например, «информация» вместо «предупреждения» ) и т.д.

3. Измените документацию (не уверен, что это хорошая идея).

Это можно сделать на глобальном уровне, изменив фактический файл-заглушку (часть дистрибутива PhpStorm. так что это повлияет на ВСЕ проекты, и вам придется повторить это после обновления до более новой версии).

Или вы можете сделать это на локальном уровне (только для этого проекта):

  • извлечение заглушки для класса DOMNodeList из исходного файла заглушки
  • поместите его в отдельный файл в любом месте вашего проекта.
  • alter @return тег метода item() — сделайте @return DOMElement того, что вам там нужно.

Это приведет к «объединению» документов IDE из двух источников: сорт @return DOMNode|DOMElement .

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

3 совета по использованию > Добавлено 03.06.2012 by uglide

Каждый мастер своего дела должен превосходно владеть инструментами с которыми он работает. И конечно же веб-разработчики — не исключение.

Сегодня мы поговорим о любимой многими (в том числе и мной) PHP >

1. Используйте «горячие» сочетания клавиш

Еще со 2го курса университета мне прививалась любовь к сочетаниям клавиш и пережиткам прошлого Borland Turbo C++ 4.5. О втором я вспоминаю как о страшном сне, но а первое стало отличной практикой, которая была усвоена и активно используется мной до сих пор.

О преимуществе использования горячих клавиш думаю много говорить не стоит, так как они вполне очевидны — заметное ускорение при работе с IDE (как в принципе и с любым другим софтом) и уменьшение количества лишних телодвижений.

Перечень сочетаний клавиш для пользователей Windows / Linux :

(примеры кликабельны)
Счастливые и не очень пользователи MacOS могут ознакомится с хоткеями тут

Мастер Йода рекомендует:  Викторина «Hello World» — угадай язык программирования
Добавить комментарий