Pull to refresh

Comments 173

Поздравляю пользователей с релизом! Спасибо за CoffeeScript, будем ждать поддержку Node.JS. :-)
«Доступна для загрузки новая версия PhpStorm»
«Уже скоро: релиз WebStorm 3.0 — поддержка Node.JS, JSLint и JSTestDriver»

Это как? На сайте JetBrains написано, что PhpStorm — это WebStorm+php. По крайней мере раньше было написано.
>работа над 3.0.1 уже идет!
Тем более сомневаюсь в необходимости node.js в phpstorm.
А я не сомневаюсь. К тому же платил я за вот это:
«Note: PhpStorm includes all the functionality of WebStorm (HTML/CSS Editor, JavaScript Editor) and adds full-fledged support for PHP.»

Вот и не понятно немного, что там у них происходит
Ну наверно в этом и разница — я не платил.
Минусуйте счастливые обладатели международных карт.
А вообще пока хватает для основной деятельности Eclipse PDT.

Кстати у всех диаграммы работают? У меня на одном проекте на Yii — никак.
Признаю, оказался не прав. Оплата не только при помощи кредитки.
Кстати как работает EAP — не могу найти ничего толкового.
Я сижу на EAP-ах, т.к. привык, хотя наверное стоит купить когда следующий discount-season наступит, т.к.PhpStorm — IDE действительно сильно упрощающая жизнь.

Смысл EAP-ов в том, что вы опробуете новые функции и баги. За последних 4 месяца у меня EAP-ы раза три просто завершались, но это не так много. По сути EAP — это 30-дневный trial, после истечения срока — нужно установить новый EAP. При этом все настройки сохраняются.

Но все же рекомендую купить нормальную версию и не геморроиться, как я =) Жду следующей рождественской скидки до 49$ и покупаю.
Могу рассказать другой более надежный вариант. И возможно ждать придеться меньше, чем до следующего рождества.
Вот тут иногда появляются дискаунт коды ;)
Смысл EAP — первым попробовать свежие фичи и баги и отрепортить их разработчикам в трекер. Если занятие это вам по душе, ставьте. Если нет — лучше релизы.
Мы принимаем и прямой банковский перевод — например из сберкассы — опция wire transfer. У региональных реселлеров есть и другие варианты — вплоть до СМС. Just google «купить phpstorm»
Уже погуглил. Надо будет тройку приобрести. Прошлый триал когда использовал — остались только позитивные впечатления, а тут и интерфейс подрехтовали.
phpstorm 3.0 так же включает webshtorm 3.0, просто последний не зарелизился еще.
В PhpStorm 3.0 точно есть JSLint (его надо в настройках включить) и JSTD. Насчет Node.JS не знаю, сам его не использую.
Settings | Plugins | Browse -> дальше добавляете все по вкусу Ж)

Просто PS сфокусирован на PHP а WS — на JavaScript, так что набор «из коробки» отличается, да и обновления упомянутых плагинов привязаны к WS.
Спасибо.

Про сфокусированность PS понятно. Купил бы WS, но на php тоже иногда пишу. К WS можно прикрутить поддержку php в минимальном режиме(подсветка синтаксиса и autocompletion)?
autocompletion — точно нет.
но подсветку синтаксиса сделаем.
На заметку: сносный lua плагин есть для самой IDEA.
Написал автору плагина — он обещал в самое ближайшее время его обновить.
Отлично работаете! Не ожидал, что мой пост на форуме с шутливой ошибкой про документацию для array() перенесли в трекер и исправят (:
Думаю, стоит дописать, что обновление бесплатно для тех, кто покупал лицензию меньше года назад. Я покупал весной, и моя лицензия подошла для 3.0.

В общем-то, это и на сайте сказано:

www.jetbrains.com/phpstorm/buy/index.jsp
PhpStorm license is permanent and includes one year of free product upgrades since the purchase date, including even major version upgrades.

Но вдруг кто-то не знает и побежит платить за обновление. :)
Кстати, могу рассказать, как купить PhpStorm за $50

Берем на пробу, пользуемся месяц, после этого триал истекает. Потом переходим на покупку из программы и цена волшебным образом становится не $100, а $50.
За что минусуем? Я не предлагал ничего нелегального. Если производитель решил таким образом простимулировать покупку, что в этом плохого?
Удручает, что не работает svn через https. Баг в трекере есть, однако зарелизили без его исправления.
а что насчет «Any framework support»? он как-то незаметно исчез из роадмапа
Видимо, совсем непросто оказалось…
У меня внезапный вопрос! Есть такой вот фреймворк как yii. И там к примеру у model есть методы. К примеру find. Типичный вызов $user = User::model()->findByPk($id). Так вот findByPk не автодополняется. Это так задумано или я что-то не докрутил?
В PHPDoc к методу, должно быть указано тип (класс) возвращаемого объекта.
Эм. Дело в том что нам User это унаследованный от CModel класс который собственно содержит методы. Я так понимаю PhpStorm такое не осиливает.
У меня осиливает. Как выглядят метод User::model() и его PhpDoc?
/**
* Finds a single active record with the specified condition.
* @param mixed $condition query condition or criteria.
* If a string, it is treated as query condition (the WHERE clause);
* If an array, it is treated as the initial values for constructing a {@link CDbCriteria} object;
* Otherwise, it should be an instance of {@link CDbCriteria}.
* @param array $params parameters to be bound to an SQL statement.
* This is only used when the first parameter is a string (query condition).
* In other cases, please use {@link CDbCriteria::params} to set parameters.
* @return CActiveRecord the record found. Null if no record is found.
*/
public function find($condition='',$params=array())

То что в исходнике фреймворка. Я так понимаю если в фреймворке к примеру не используют PhpDoc то работать не будет? :)
Я спрашивал не про CActiveRecord::find(), а про User::model().
У него нет это генерируемый в проекте файл. А что это как-то влияет?

PS Да наследуется класс от CActiveRecord, а не от CModel.
Обязан быть, см. описание в родительском методе. И да, это влияет.

Что от чего в Yii наследуется я в курсе ;)
/**
* Returns the static model of the specified AR class.
* @param string $className
* @return User the static model class
*/

Так должно быть?
/**
* Returns the static model of the specified AR class.
* @return User the static model class
*/
public static function model($className=__CLASS__)
{
return parent::model($className);
}

Вот то что в сгенерированном классе. Что дальше? :)
Ну, всё… после User::model()-> должен выпадать список методов модели User и её родителя CActiveRecord. Если этого не происходит, стоит глянуть на вот это.
В Ignore files and folders добавляем yiilite.php.

Думаю дело в этом :)
Хм… именно в релизе что-то, похоже поломалось. В EAP предыдущем работало.
Не, ошибочка вышла. Работает всё.
Обновился до 3.0. Оставался 1 день до конца триала, а тут опять 30 дней. Живем дальше!
UFO just landed and posted this here
Согласен, «Commit & Push» зря совместили… Сегодня пару раз промахивался, очень раздражает.
Интересует встроенный поиск по документации фреймворка.
т.е.
1) навигацию из render/renderPartial в view.
2) дополнение в view переменных (по крайней мере $this).

Так?
Да, тоже интересное решение.

А про мой вопрос, дабы не плодить комментарии, в последнее время очень часто ресурс Yii «лежит», и если будет поиск по документации в оффлайне да еще и в самой среде разработки — цены ей не будет.
С лежанием мы вопрос уже решаем. Лежать не будет. Документация по API в CHM-ке есть на страничке Downloads.
Не знаю, возможно, я не сумел выразить свою мысль.
Меня интересует возможность прямо в тексте выбрать метод, например, attachBehaviors (линк на апи) и нажать «открыть справку по этому методу».
Как это можно сделать в текущей реализации?
Если речь про навести курсор на код и вызвать справку, то это CTRL+Q.
И что это дает?
Ответ уже из разряда издевательских.

image

Вот что получаю. А должно быть: ссылка
> 1) навигацию из render/renderPartial в view.
Можно еще и по layout.
> 2) дополнение в view переменных (по крайней мере $this).
Да.

А еще-еще хочу:
New Yii project;
Yii::import alias completion — (в идеале конечно лучше сделать и для других методов так как alias доступны много где);
$this->widget alias completion;
Yii::app()->[CWebApplication] type inference. (хотя это скорей не к вам, а просто нужно PHPDoc подправить).
New Yii project, как по мне, очень низкоприоритетная фича. Делается один раз в начале проекта, а сил у JetBrains может прилично отнять.

С алиасами путёво.

Yii::app()->[CWebApplication] type inference уже есть, но это проблема фреймворка и разработчика, а не IDE. Решается вот так: rmcreative.ru/blog/post/yii--avtokomplit-dlja-yiiapp
Жаль плагин к SourceSafe поломался. Я понимаю что он в phpStorm/webStorm «искаропки» не входит, но все равно обидно. Если в проект добавить файл снаружи IDE (читай скопировать файловым менеджером) то его не удастся добавить в VSS. И отправить ошибку в JetBrains не дает. А вот из IDEA отправляет.
В описании тут есть:

You can profile your scripts right from PHPStorm with either xDebug and Zend Debugger. You can see an aggregate report and jump from the execution statistics directly to the function in your PHP code.


Либо IDE всё-таки не может на данном этапе «profile your scripts right from PHPStorm», либо я не нашёл ни в IDE, ни в справке, как именно это сделать.
В Tools есть пункт Analyze XDebug Profiler Snapshot. Не оно?
З.Ы.: как к профайлеру Zend Debugger прицепиться не знаю, давно его не использовал.
Судя по описанию, IDE может на автомате этот snapshot получить как из XDebug, так и из Zend Debugger без лишних телодвижений.
Просто маркетолог текст писал ;)

Вообще на последнем ZendCon мы уговорили автора XDebug сделать нормальный компактный формат лога и такой же протокол передачи snapshot на клиента как у Zend Debugger — но когда руки у него дойдут…

А для Zend Debugger достаточно с помощью букмарклета начать и закончить сеанс профилирования — и результат появится в IDE
Убрать надо бы такие смелые заявления маркетолога. Вводят покупателей в заблуждение…

Чтобы быстрее руки дошли, можно его поспонсировать.

Про букмарклет других источников информации, кроме этого коммента нет. Надо бы в help…
Спасибо, над текстами и инструкцией поработаем.
поиск дупликатов помогут вам найти потенциальные ошибки
Хотел промолчать, но речь о поиске ошибок…

Английское duplicate
Русское же дубль, дубликат.

п.с.
А 3.0 на моей хиленькой машинке долго что то индексирует проекты. Вернулся на 2.1.5.
Раз на моей хиленькой машинке заработало, то думаю и у вас потянет :) Наверное момент неудачный был
Гип-гип ура! У JetBrains самые годные IDE для неMS стэка
Вам удалось увидеть git visual graph в phpstorm?
Прямо сейчас смотрю. Просто открываете в панели Changes закладку Log — и в самой левой колонке — он.
Странно, почему не видит апдейта, через Check Updates? :/
А когда появится нормальная поддержка mercurial'а?
Как я «люблю» такие конкретные вопросы…
Как по мне — она и так нормальная, но я mercurial использовал раза два и те readonly.

Так что наверное когда будут сделаны фичи которые просят другие пользователи и исправлены баги из аналогичного списка.

Рекомендую ознакомиться, проголосовать и добавить описание того, чего, как вам кажется, не хватает до «нормальной».
Как я «люблю» такие конкретные вопросы…
Как по мне — она и так нормальная, но я mercurial использовал раза два и те readonly.


Если ваши use-case'ы системы контроля версий ограничиваются только коммитами и пушами, то, наверное, да, для вас она нормальная. Но как можно пользоваться плагином, в котором нельзя:
— мержить ветки (уже только этого достаточно, чтобы всерьез не рассматривать поделие, которое товарищи из jetbrains гордо именуют поддержкой меркуриала)
— увидеть историю правок (со списком затронутых файлов, я уже на говорю про graphlog). В вашем плагине можно только посмотреть историю конкретного файла.
— увидеть список коммитов, которые будут запушены (я уже не говорю о возможности выборочного пуша коммитов)
— Shelve, Rebase и т.п.

Вы правда считаете это нормальным? Посмотрите на свой же плагин в git'у или на hge для eclipse'а, вот их можно назвать нормальными.
И да, какой толк писать вам в багтрекер, если ваш плагин для меркуриала не обновлялся уже полтора (!!!) года?
Удобно прореагировать на ироничную часть комментария и пропустить конструктивную.

Вы спросили когда — я вам очень конкретно ответил. Голосуйте, пишите. Сейчас, судя по votes — не стоит на mercurial время тратить.

Сюда писать — только пар выпустить.
Полностью разделяю ваше негодование, но для всего этого есть (частичное) объяснение
Во первых плагин был взят «под крылышко», а не написан с нуля. Тоесть фактически он был немного подправлен чтобы работать с актуальными версиями IDE и всё.
Еще как фактор что самими разработчиками используется git, тоесть на специфику рабочего процесса в Mercurial скорее всего мало кто обращает внимание
Кроме того в баг трекере крайне низкая активность по Меркуриалу, максимум 2-3 голоса за репорты. А, как известно, реализовывают в первую очередь фичи за которые больше всего голосуют

Вот к примеру мой баг-репорт по отображению diff: youtrack.jetbrains.net/issue/IDEA-73535, прошу проголосовать
Очень не хватает FTPs (FTP over SSL) — тогда можно будет отказаться от Filezilla :)
Пока нет. Есть экспериментальный плагин для SVN 1.7 но пока далеко не релизного качества. Работы идут полным ходом.
Очень рад долгожданному обновлению.
К сожалению jsdoc так нормально и не работает :(
Хотя, конечно, в любом случае несравненно круче конкурентов.
Хотел бы еще задать вопрос — у нас тут все сидели на WebStorm. Но не так давно часть виндузятников перешли на Komodo.
Причина проста — жуткие тормоза шторма. Бывает на минуту виснет.
От этого страдают столы, клавиатуры, девичьи ушки.
При этом на маках и линуксах — летает (ну подвисает иногда, но максимум секунды на 2)
Что делать?
Почему нигде нет доки по настройки .vmoptions, а приходиться читать интернеты?
К сожалению jsdoc так нормально и не работает :(

Ага, я тоже в личку писал об этом. Но подробнее, что именно Вы имеете ввиду?
Я даже тебе в личку писал об этом :)
Главная суть что не работает типизирование в js.
Если сказано что функция что-то возвращает, то у этого чего-то не будет методов.
var obj = new Class1();
obj.[ctrl+space] — хрен

в общем случае есть var someVar = someNamespace.subnamespace, то нельзя получить автокомплит для someVar. Точнее для someVar то можно, а для subnamespace который он в себе хранит — нет.
По факту если я прошу комплит или доку на некое имя шторм мне выдаст ВСЕ переменные с таким именем, хотя бы по середине названия.
Я понимаю что js не типизированный, и тем более ничто не регламентирует как различные файлы друг друга подключают, но…
Мечтать не запретишь.
А вы на в баг трекер напишите и мы зачиним (или в личку :)
А типизация массивов в PHPDoc откладывается ещё с 2.1. Теперь вот обещается в 3.5… :(
Я бы понял ваше расстройство если бы для этого был хоть какой «стандарт» де факто…
А так — приходится придумывать все включая нотацию.
В общем прогресс есть, хоть и небольшой, как будет что показать — сразу выкатим :)
Старый phpdoc умер… может сделать новый стандарт да привлечь к нему разработчиков IDE и генераторов документации?
Как умер? Почему умер?
Эээ… она же есть ещё с 2.1! @param Post[] $posts.
Ого, а зачем настолько подробно? Реально используется?
Хеш массивов, например, встречается.

А на основе типов ключей можно было бы и статический анализ сделать.
Я помню, что писал. Думал, может новое что =)
«jsdoc так нормально и не работает» — надеюсь репорт с примером кода уже в трекере?

Тормоза лечим тоже только по багрепорту — с профилированием. И пожалуйста, убедитесь что проект находится на локальном диске а не в сети.

А .vmoptions трогать вообще не стоит если кто-то из нас по результатам профилирования не дал вам конкретный совет.
Кстати, всегда хотел узнать, для какой типовой машины подобран .vmoptions?
он корректируется на основе статистики фидбека, и скорее не для машины а для проекта разумного размера и общего поведения JVM и современных OS.
Ясно. Я себе просто чуть -Xms, -Xmx поднял. Проект большой…
[sarcasm]Новшество в туликонках, развернуть на весь экран — теперь стрелочки, а не квадратик.[/sarcasm]
Это полноэкранный режим на маке.
на маке 3 версия стала лучше выглядеть?
Ну это дело вкуса, но судя по фидбеку большинство пользователей новый UI порадовал.
Может я что-то делаю не так, но свежескачанный PhpStorm упорно не видит подмонтированную сетевую шару. Для IDE, которую продают за деньги, было бы неплохо уметь видеть не только локальные диски, но и сетевые тоже.
1) это эффект взаимодействия Windows UAC и installer — просто перезапустите IDE после установки

2) работа НЕПОСРЕДСТВЕННО с шары, без создания локальной копии через «New project from existing files» wizard — официально не поддерживается. Проект должен жить на low-latency storage. Оно конечно обычно работает без проблем, но багрепорты и жалобы на тормоза мы в этом случае не примем.
Эклипс тоже тормозит в тех же случаях. Просто мы сразу об этом предупреждаем Ж)
но Eclipse не указывает мне, как я должен работать с проектом
Да работайте как хотите — просто обычно мы баги шустро бежим исправлять, а в случае сети — только после того как он воспроизведется на локальном диске.
Все тормозят. Перешёл с Eclipse на
Все «большие» по сети тормозят. Перешёл с Eclipse на Sublime Text 2, и не жалею.
Так ведь зависит от ширины канала (если интернет), по локалке должно быть всё быстро, если не виртуальный сервер. У меня быдлопроект с говнокодом на 500 метров без особых проблем Zend Studio переваривает по сети.
Если бы вы еще продлили скидку, купил бы тотчас же:) Не успел по акции
Вообще-то, надо было покупать по скидке — покупка дает бесплатные обновления на год — теперь же кусай локти.
К новому году, скорее всего, ещё будут.
Возможно ещё не проснулся, но в упор не вижу кнопки, чтоб UML смотреть, даже намека не него %)
Кнопки — они на клавиатуре Ж)
Подмотреть какие — можно в контекстном меню — на имени класса, файле, папке
Просветите пожалуйста, что в нём такого крутого по сравнению с eclipse PDT, за что стоит отдавать 99$?
Eclipse надо «готовить». PHPstorm — коробочное решение (поставил и работаешь) + субъективно storm работает шустрее.
Это надо самому пробовать — причем основательно, чтобы преодолеть начальное «все по другому ничего не понятно»
Поставьте триал, поработайте чуть-чуть. Желательно в проекте, где ценят ООП(с лапшакодом хоть в блокнотах можно работать — разница будет небольшая). Я купил PHPStorm где-то через полчаса после закачки триала 2.1.5.
Поставил, поработал. Также поставил netbeans, поработал. Удалил оба. Хотя оба работают шустрее и имеют более компактный вид, но в моём проекте с ООП, переходами, подсказками eclipse справляется не хуже.

Возможно, есть какие-то специфические случаи, когда целово ряда фич вообще нет в eclipse. Я сообственно поэтому вопрос и задал. (Например: в eclipse нет интеграции с phpunit).
Предыдущей моей средой был Eclipse PDT.
PhpStorm:
Настоящий рефакторинг,
Иногда просто изумительные подсказки, которые выдает анализатор кода.
Ммм… можно перечислять различные мелочи, но общее впечатление такое, что иногда эта среда в программировании понимает не меньше моего, ее подсказки предупреждают некоторые ошибки, её рефакторинг делает именно то, что я хотел(в отличие от даже Eclipse для Java или МЫ для .NET).
Возможно просто мой образ мышления совпадает с разработчиками PhpStorm, а ваш нет… мне все равно. Я рад что такая среда появилась для PHP.
Отсутствие настоящей IDE было одним из основных минусов PHP. Я рад что по этому показателю с помощью PhpStorm он стал гораздо лучше.

З.Ы. Я пользуюсь то всего пару недель(не для основной работы). Еще не все фичи исследовал. Думаю меня ожидает еще много приятностей.
Все довольно важно:

  1. Не падает.
  2. Подсветка грамматических ошибок в названиях переменных, классов, etc (оказалось очень удобно, сам не ожидал).
  3. Нормальный поиск.
  4. Зачетный редактор HTML и CSS, в Eclipse был вообще неюзабельный, сейчас уже забыл когда последний раз Dreamweaver открывал.
  5. Куча мелких плюшек, в основном связанных с рефакторингом (Shift+F6), а вот еще: подсветка и редактирование HTML в кавычках языка программирования, ведь так просто.


Основная причина моего перехода — нестабильная работа Eclipse, но обнаружилась еще куча плюсов каждый из которых, в моему случае, быстро отбивает 100$, и тем более 50$.

Выгодно ли это вам я не знаю, если пару дней в месяц что-то пописать, то можно и в Eclipse, основные фичи присутствуют и переплачивать действительно нет смысла.
Интерфейс порадовал, очень сильно, порадовал :)
а у меня на arch недавно обновление vim было. очень няшный. могу свой vimrc прислать.
хорошая IDE. задумал, вот, переходить на нее в netbeans'а и у меня возник вопрос. в netbeans есть папочка, в которую можно кинуть свои php-файлики и в IDE будут работать подсказки по phpDoc-ам описанных там функций. В phpStorm'е эти все файлы, как я вижу, спакованы в jar. Можно ли без лишних телодвижений положить куда-то файлы с пхп-кодом, чтоб IDE их подхватила и подсказывала? Спасибо:)
всегда рад помочь. я всего два дня настраивал. и все работает. даже почти уже кириллица отображается. надо только патч небольшой написать.
ага — буквально в любое место проекта.
или подключите в Settings|Directories.
ну, у меня ситуация немного другая. у меня есть файлики со специфическими для меня описаниями некоторых стандартных функций (тех, которые у Вас задокументированы в php/lang/psi/stubs/data/*.php). если кинуть эти файлы в папку проекта, то они там не нужны, а если указать в Settings|Directories — что-то мне подсказывает, что подсказки будут дублироваться. Как-то так.
Ну, вообще jar = zip. Только делать придётся при каждом обновлении IDE.
Использовал Settings|Directories для указания на файлы с доками по pecl_gearman, всё работало как нужно.
За новые опции выравнивания отдельное спасибо :)
Научитесь понимать нативный fixedsys — куплю.
После того, как пересел на PhpStorm, все же изредка доводится открывать какой-нить Notepad++, буквально на минуту, чтоб какие-нибудь совсем мелкие правки внести. И стал ловить себя на том, что пропала привычка постоянно Ctrl+S жать (раньше это на автомате было), из-за чего периодически возникает недоумение: я же поправил код, чего же он?

Это, пожалуй, единственный «минус» перехода на эту IDE
Только у меня вылазиет ошибка «bad_record_mac» при работе с SVN?
У меня абсолютна такая же проблема (Beanstalk, OSx 10.7.2 и PHPStorm 3.0).
Подскажите пожалуйста, как заставить работать переход по ctrl+ЛКМ или ctrl+b по пути к файлу в таких случаях:

include(TEMPLATE_DIR . 'some.php');
include(WWW_DIR . 'some/long/path/template.php');
include($_SERVER['DOCUMENT_ROOT'] . '/fucking/bitrix/header.php');


phpStorm постоянно отвечает: «Cannot find declaration to go to». Константы он детектит (по ним работает ctrl+b) и они определены в единственном месте. $_SERVER['DOCUMENT_ROOT'] является корнем проекта.
Попробовал на реальном проекте и столкнулся с тем, что не работает поиск класса с учётом его неймспейса. Например, если есть класс \Foo\Bar\MyClass, то я могу его найти только набрав MyClass, но не \Foo\Bar…
Eclipse, к слову, позволяет это делать.
а можно ли как-то указать, что метод возвращает массив объектов конкретного класса, чтоб потом в циклах оно красиво подставляло методы этого класса? спасибо.
Мы придумали и соответственно поддерживаем вот такую нотацию:
@return TypeName[]
Для того чтобы получить бесплатную версию phpstorm, нужно иметь опенсорс проект.
Скажите а расширение для Yii проканает за такой проект?
Поразил меня на первой же строчке:
require "../../config.php";

«can't resolve target of expression»

«самая» продвинутая PHP IDE не умеет парсить двоеточие. Добавьте это кто-нибудь в багтрекер.
Оказывается багу полее полугода (!!!), youtrack.jetbrains.net/issue/WI-6604?projectKey=WI#tab=History, обещают в 3.0.1 исправить. Workaround — удалить external library.

Парсер несмотря на все обещанные уровни вложенности спотыкается о простейшее и ругается на invalid CSS property «забывая» о php конкатенции:
echo "
Sign up to leave a comment.

Articles