Комментарии 63
Поддержка ASS? Не-не-не, я сам её поддержу без всякого PHPStorm'а.
Но подозреваю, что имелось ввиду Sass/Scss.
Но подозреваю, что имелось ввиду Sass/Scss.
С FuelPHP проблемы так и не поправили (
А что там за проблемы?
Так напишите в багтрекер Jetbrains.
Может это чем-то поможет.
Для 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
*/
Это вставляется перед контроллерами.
Для 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
Вы это имеете ввиду? Нечего там исправлять, это ошибка разработчиков фреймворка. Если хотят чтобы работало как надо — пускай делают код по стандартам, а не выдумывают свои мельницы.
Вы это имеете ввиду? Нечего там исправлять, это ошибка разработчиков фреймворка. Если хотят чтобы работало как надо — пускай делают код по стандартам, а не выдумывают свои мельницы.
в релизе жду svn 1.7.
Жду исправления критических багов в code completion… Надеюсь, поскорее обратят внимание на полуторогодовалый критикал баг с несколькими соседствующими. Вроде, в последний раз нытья в комментариях в трекере было предостаточно — должны как-то отреагировать в конце концов.
Баги:
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
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
Если «проверка» считает 90% кода неверным, то её отключают, потому что она совершенно не помогает искать ошибки. И в баге речь скорее не про инспекцию, а про автодополнение кода, которое в указанном случае не работает вообще. Согласитесь, иметь избыточные варианты лучше, чем иметь пустой список и вручную вбивать каждый символ.
Возьмём, например, JavaScript. Сейчас, кроме отдельных случаев (для встроенных типов, например), после ввода «.» вываливается список со всеми функциями и полями, которые хоть где-то в коде определены, плюс со всеми функциями и полями из подключенных библиотек. Как лучше: так или с пустым списком?
Возьмём, например, JavaScript. Сейчас, кроме отдельных случаев (для встроенных типов, например), после ввода «.» вываливается список со всеми функциями и полями, которые хоть где-то в коде определены, плюс со всеми функциями и полями из подключенных библиотек. Как лучше: так или с пустым списком?
Простой пример — тесты, создание фейковых классов, имеющих то же название, что и оригинальный по определению. Какой включать решается в рантайме и определяется, по сути, используемой точкой входа.
Ещё совершенно нет возможности переименовывать классы в библиотеках. Ладно, если в одной класс с конфликтующим именем — можно у себя поменять. А если в двух одинаковый? Всё, автодополнение умирает.
Наверное, проблема должна быть решена пространствами имён, но пока это далёкое светлое будущее где-то там за горизонтом. Даже если все передовые фреймворки перейдут на пространства имён (что, собственно, и происходит), всё равно останутся тонны наследия царского режима, и на их искоренение и 10 лет запросто уйти может.
Наверное, проблема должна быть решена пространствами имён, но пока это далёкое светлое будущее где-то там за горизонтом. Даже если все передовые фреймворки перейдут на пространства имён (что, собственно, и происходит), всё равно останутся тонны наследия царского режима, и на их искоренение и 10 лет запросто уйти может.
И? IDE станет легче оттого, что есть два класса \VolCh\Blog\Model\Post?
И всё же, как быть с JS? Там ведь IDE практически никогда не в состоянии определить класс, а если и может, то не в состоянии полноценно понять, что же, собственно, в этом классе есть. По аналогии (принцип «нельзя умалчивать ошибки») получается, что списки автодополнения должны быть пустыми, а практически все вызовы подсвечиваться как неверные. :)
Здорово, а ведь по ощущениям весьма недавно третья версия вышла. Активненько развивается IDE, радует.
Собираюсь по-чесноку заплатить за PHPStorm.
Вот отличный пример успешного программного бизнеса: делай хорошие программы и за них будут платить деньги.
Вот отличный пример успешного программного бизнеса: делай хорошие программы и за них будут платить деньги.
2 года уже работаю в PhpStorm под windows — отличная IDE. Вчера поставил на Mac поработал один вечер — работает отменно, а по сравнению с windows просто летает. Обычно первые EAP были сыроваты, но на сей раз не заметил никаких проблем, разве что было непонятно из какого каталога открыт файл, в breadcrumbs не хватало последнего каталога, видимо баг.
интересно, кто-нибудь, когда-нибудь додумается подсвечивать SQL в php-коде?
Я постоянно работаю в Netbeans. Решил поставить PHPStorm для сравнения. На мое удивление, угадыватель кода работает «на ура», сама ИДЕшка очень отзывчива. Пусть я написал тестовый код на пару классов, результат меня порадовал. В принципе, сто баксов это норм цена для индивидуальной версии. Правда еще не пробовал как она дружит с Xdebug, PHPUnit, запуском скриптов из коммандной строки.
Правда, меня немного расстроили элементы интерфейса, при создании файла (пока вглубь не вникал), но это мне не помешало начать быстро кодить. Если понравится, то есть большая вероятность покупки.
Правда, меня немного расстроили элементы интерфейса, при создании файла (пока вглубь не вникал), но это мне не помешало начать быстро кодить. Если понравится, то есть большая вероятность покупки.
С XDebug отлично дружит — очень хороший отладчик встроенный.
PHPUnit к своему стыду не использую пока.
Сижу на EAP версиях — они бесплатные — тоже хотела покупать, но все руки не доходят. А EAP обновляются автоматом — раз в месяц и бесплатных 30 дней хватает за глаза — после обновления отчет начинается заново.
PHPUnit к своему стыду не использую пока.
Сижу на EAP версиях — они бесплатные — тоже хотела покупать, но все руки не доходят. А EAP обновляются автоматом — раз в месяц и бесплатных 30 дней хватает за глаза — после обновления отчет начинается заново.
В Storm интерфейс имхо не очень, многое рассчитано на горячие клавиши.
Есть всякие прикольные фишки типа table>tr*3>td*4 потом Tab, также с любыми тегами.
Также он хорошо переваривает всякое, когда и javascript и html и php в одном файле.
Единственный минус у меня — я не нашел как создать удаленный проект не закачивая файлы по фтп. Ну т.е. чтобы можно было сначала скачать к примеру архивом, распаковать, потом ему указать папку и фтп и сразу начать работать, используя autoupload.
Есть всякие прикольные фишки типа table>tr*3>td*4 потом Tab, также с любыми тегами.
Также он хорошо переваривает всякое, когда и javascript и html и php в одном файле.
Единственный минус у меня — я не нашел как создать удаленный проект не закачивая файлы по фтп. Ну т.е. чтобы можно было сначала скачать к примеру архивом, распаковать, потом ему указать папку и фтп и сразу начать работать, используя autoupload.
С PHPUnit тоже дружит, отдельный шаблон для конфигурации есть, вернее даже два, локально и на сервере.
Есть консоль несколько оригинальная, но в ней можно bash запустить, если хочется привычного — только что проверил :). Правда автодополнение в консоли не работает похоже.
Единственное что огорчает — шрифты в Юнити :(
Есть консоль несколько оригинальная, но в ней можно 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
где — url сайта.
Как заставить PHPStorm видеть этот css?
Ещё один пример: класс загружается через $oOrderHandler = CatalogFactory::getInstance('Order'); где внутри идёт загрузка этого файла через require_once. Опять же, как заставить PHPStorm это распарсить?
То же самое о конструкциях вида:
$user= какой-то класс
include $filename.«php»;
а во втором $user->isAdmin() — и php storm ругается на undefined variable жёлтым цветом, и unknown class на isAdmin
чёрт побери, в первой строке css подключался через /themes/default/css/style.css
Если я правильно понял вашу проблему, то надо сообщить IDE о типе вашей переменной, используя phpdoc во втором файле:
/** @var какой_то_класс $user */
Я бы сделал (собственно так и делаю, когда работаю c DI-контейнером или универсальным репозиторием) конкретную обёртку в виде фабричного метода или класса
Можно ещё проверку прикрутить с instanceof в виде выброса исключения или ассерта (в девелоп рантайме, естественно).
Второй случай использую только в нативных шаблонах, там использую
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 использую только для деклараций классов/функций, никакого непосредственно выполняемого кода. Единственное исключение — перехват вывода, то есть по сути опять же в шаблонах.Ссылки на скачивание не работают, актуальная ссылка на данный момент http://confluence.jetbrains.net/display/WI/Web+IDE+EAP
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Вышел первый публичный билд PhpStorm 4.0