Comments 63
Поддержка ASS? Не-не-не, я сам её поддержу без всякого PHPStorm'а.

Но подозреваю, что имелось ввиду Sass/Scss.
Может это чем-то поможет.
Для CodeIgniter проблемы с автодополнением решились так:

/**
* @property CI_Loader $load
* @property CI_Form_validation $form_validation
* @property CI_Input $input
* @property CI_Session $session
* @property Vidsmodel $model
* @property Ion_auth $ion_auth
* @property CI_User_agent $agent
* @property Twig $twig
*/

Это вставляется перед контроллерами.
youtrack.jetbrains.com/issue/WI-9029
Вы это имеете ввиду? Нечего там исправлять, это ошибка разработчиков фреймворка. Если хотят чтобы работало как надо — пускай делают код по стандартам, а не выдумывают свои мельницы.
Жду исправления критических багов в code completion… Надеюсь, поскорее обратят внимание на полуторогодовалый критикал баг с несколькими соседствующими. Вроде, в последний раз нытья в комментариях в трекере было предостаточно — должны как-то отреагировать в конце концов.
UFO landed and left these words here
Баги:
youtrack.jetbrains.com/issue/WI-2760 Undefined field: Inherited members in subclasses are marked as undefined when multiple potential base classes exist
youtrack.jetbrains.com/issue/WI-9277 Fields reported as undefined when overriding property type
youtrack.jetbrains.com/issue/WI-2450 Language injection into PHP literals: variables escaping vs target language
youtrack.jetbrains.com/issue/WI-8104 Auto complete fails when passing object to itself via use
youtrack.jetbrains.com/issue/WI-4016 Code Completion for «self» and «parent» keywords is missing
youtrack.jetbrains.com/issue/WI-2377 No autocompletion for php variables inside string with injected language

Фичи:
youtrack.jetbrains.com/issue/WI-322 Yii
youtrack.jetbrains.com/issue/WI-241 Symfony
youtrack.jetbrains.com/issue/WI-1063 Zend
youtrack.jetbrains.com/issue/WI-1174 CI
UFO landed and left these words here
Если «проверка» считает 90% кода неверным, то её отключают, потому что она совершенно не помогает искать ошибки. И в баге речь скорее не про инспекцию, а про автодополнение кода, которое в указанном случае не работает вообще. Согласитесь, иметь избыточные варианты лучше, чем иметь пустой список и вручную вбивать каждый символ.

Возьмём, например, JavaScript. Сейчас, кроме отдельных случаев (для встроенных типов, например), после ввода «.» вываливается список со всеми функциями и полями, которые хоть где-то в коде определены, плюс со всеми функциями и полями из подключенных библиотек. Как лучше: так или с пустым списком?
UFO landed and left these words here
Простой пример — тесты, создание фейковых классов, имеющих то же название, что и оригинальный по определению. Какой включать решается в рантайме и определяется, по сути, используемой точкой входа.
Ещё совершенно нет возможности переименовывать классы в библиотеках. Ладно, если в одной класс с конфликтующим именем — можно у себя поменять. А если в двух одинаковый? Всё, автодополнение умирает.

Наверное, проблема должна быть решена пространствами имён, но пока это далёкое светлое будущее где-то там за горизонтом. Даже если все передовые фреймворки перейдут на пространства имён (что, собственно, и происходит), всё равно останутся тонны наследия царского режима, и на их искоренение и 10 лет запросто уйти может.
UFO landed and left these words here
И? IDE станет легче оттого, что есть два класса \VolCh\Blog\Model\Post?
UFO landed and left these words here
Это фейковый класс для теста, мок, стаб. Он обязан быть с тем же именем, что и оригинал, чтобы его можно было подставить на место оригинала, манипулируя require/include/autoload/include_path, но не трогая тестируемый код.
UFO landed and left these words here
Стоит задача покрыть тестами существующий код, чтобы потом безболезненно проводить рефакторинг, в том числе и инвертировать контроль.
UFO landed and left these words here
И всё же, как быть с JS? Там ведь IDE практически никогда не в состоянии определить класс, а если и может, то не в состоянии полноценно понять, что же, собственно, в этом классе есть. По аналогии (принцип «нельзя умалчивать ошибки») получается, что списки автодополнения должны быть пустыми, а практически все вызовы подсвечиваться как неверные. :)
Здорово, а ведь по ощущениям весьма недавно третья версия вышла. Активненько развивается IDE, радует.
Собираюсь по-чесноку заплатить за PHPStorm.
Вот отличный пример успешного программного бизнеса: делай хорошие программы и за них будут платить деньги.
Вот если бы еще под каждую платформу была своя нативная версия, но это уже из области фантастики :)
Скорость? Отказ от виртуальной машины? Нативные контролы? Более глубокая интеграция в ОС?
Работает, ну и пусть работает, зачем трогать :) Если бы все так думали, где бы мы сейчас жили…
Но реально. Как на меня есть десятки более приоритетных вещей, на которые можно потратить ресурсы.
Если у кого уже установлен PhpStorm 3 и собираетесь запустить 4ку, сделайте бекапы.
AP users should know the drill, but since this is a major upgrade – we’ll repeat:
BACK UP YOUR PROJECT INFO BEFORE 1st RUN

См. линк.
UFO landed and left these words here
2 года уже работаю в PhpStorm под windows — отличная IDE. Вчера поставил на Mac поработал один вечер — работает отменно, а по сравнению с windows просто летает. Обычно первые EAP были сыроваты, но на сей раз не заметил никаких проблем, разве что было непонятно из какого каталога открыт файл, в breadcrumbs не хватало последнего каталога, видимо баг.
Для не больших правок еще использую coda, но не смотря на большой функционал phpStorm он работает намного быстрей и стабильней. Подсел пол года назад, и слезать не собираюсь.
Я постоянно работаю в Netbeans. Решил поставить PHPStorm для сравнения. На мое удивление, угадыватель кода работает «на ура», сама ИДЕшка очень отзывчива. Пусть я написал тестовый код на пару классов, результат меня порадовал. В принципе, сто баксов это норм цена для индивидуальной версии. Правда еще не пробовал как она дружит с Xdebug, PHPUnit, запуском скриптов из коммандной строки.
Правда, меня немного расстроили элементы интерфейса, при создании файла (пока вглубь не вникал), но это мне не помешало начать быстро кодить. Если понравится, то есть большая вероятность покупки.
С XDebug отлично дружит — очень хороший отладчик встроенный.
PHPUnit к своему стыду не использую пока.
Сижу на EAP версиях — они бесплатные — тоже хотела покупать, но все руки не доходят. А EAP обновляются автоматом — раз в месяц и бесплатных 30 дней хватает за глаза — после обновления отчет начинается заново.
На практике получается, что PHPUnit и xDebug почти взаимоисключающие вещи :)
В Storm интерфейс имхо не очень, многое рассчитано на горячие клавиши.
Есть всякие прикольные фишки типа table>tr*3>td*4 потом Tab, также с любыми тегами.
Также он хорошо переваривает всякое, когда и javascript и html и php в одном файле.

Единственный минус у меня — я не нашел как создать удаленный проект не закачивая файлы по фтп. Ну т.е. чтобы можно было сначала скачать к примеру архивом, распаковать, потом ему указать папку и фтп и сразу начать работать, используя autoupload.
я делаю так:
скачиваю архивчик -> распаковываю в нужный каталог -> указываю каталог как существующий код -> потом после индексации настраиваю Deployment на нужный сервер.
С PHPUnit тоже дружит, отдельный шаблон для конфигурации есть, вернее даже два, локально и на сервере.

Есть консоль несколько оригинальная, но в ней можно bash запустить, если хочется привычного — только что проверил :). Правда автодополнение в консоли не работает похоже.

Единственное что огорчает — шрифты в Юнити :(
Так и не починили баг. Либо использовать пробелы, либо испытывать постоянные мучения с курсором =( Этому багу уже минимум год. + До сих пор парсер не понимает сложение и вычитание цветов и строк.
Хтось я запускал под виндой, шрифты в некоторых окнах меня также огорчили
В проекте используется Smarty, и соответственно в в главном файле theme.tpl есть строка вида

где — url сайта.
Как заставить PHPStorm видеть этот css?

Ещё один пример: класс загружается через $oOrderHandler = CatalogFactory::getInstance('Order'); где внутри идёт загрузка этого файла через require_once. Опять же, как заставить PHPStorm это распарсить?

То же самое о конструкциях вида:
$user= какой-то класс
include $filename.«php»;
а во втором $user->isAdmin() — и php storm ругается на undefined variable жёлтым цветом, и unknown class на isAdmin
UFO landed and left these words here
чёрт побери, в первой строке css подключался через /themes/default/css/style.css
Если я правильно понял вашу проблему, то надо сообщить IDE о типе вашей переменной, используя phpdoc во втором файле:
/** @var какой_то_класс $user */
Я бы сделал (собственно так и делаю, когда работаю c DI-контейнером или универсальным репозиторием) конкретную обёртку в виде фабричного метода или класса
class CatalogFactory
{
// ...
  /* @return Order */
  public static function getOrderInstance () {
    return self::getInstance('Order');
  }
}
или
class OrderCatalogFactory
{
  /* @return Order */
  public static function getInstance () {
    return CatalogFactory::getInstance('Order');
  }
}

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

Второй случай использую только в нативных шаблонах, там использую /* @var User $user */, во всех остальных случаях, имхо, это ужасный говнокод, include/require использую только для деклараций классов/функций, никакого непосредственно выполняемого кода. Единственное исключение — перехват вывода, то есть по сути опять же в шаблонах.
Only those users with full accounts are able to leave comments. Log in, please.