Как стать автором
Обновить

Комментарии 85

Аж захотелось посмотреть, а то сам сижу на Eclipse + phpeclipse =)
Рекомендую пересесть. Сам перепробовал огромное количество редакторов. На данный момент лучшие:
1. Neon
2. Studio 5.5
3. NuSphere PHPEdit
Маленькое уточнение:
3. NuSphere PhpED.

PHPEdit это от WaterProof
Прошу прощения.
Действительно Waterproof PHPEdit :)
Маленькое уточнение.
PHPEdit это может быть и от WaterProof.
А PhpED - все таки от NuSphere.
И это единственный редактор, который по функционалу может действительно конкурировать с Зендом.
А Вы вот что этим хотели сказать? Если это цитата, спасибо. что касается выбора сред, то это бесконечный классический холивар.
Я хотел этим сказать что автор правильно назвал редактор и его производителя, а Вы его зачем то "поправили". Это объективная часть. Все остальное - мое ИМХО.
Упс, извиняюсь. Совсем глаза на }|{опе уже. Или работу пора менять или монитор/моск.
Был неправ, исправлюсь!
а вот интересно, в зенде есть mark occurences?
До меня только сейчас допёрло, что софтина то буржуйская и денюшку стоит.
Посижу я дальше на своём любимом eclipse + phpeclipse
До декабря бесплатна
И некоторую часть под хабракат бы спрятать, думаю будет лучше =)
Уже :) Спс за замечание :)
Спасибо за статью.

Однако:
1. SVN. Прекрасно работало в ZDE, пользовался и был рад.
2. PHPDoc. Прекрасно работал в ZDE, также не нашел принципиальных различий.
3. TODO-лист был в ZDE, правда требовал проинсталлированного Zend Platform.
4. Дебаггер, профайлер в ZDE работали нормально, отличий принципиальных не нашел.

Собственно нового то только по сути оболочка... IDE. Остальное все осталось старое. Новый IDE дает нам прирост скорости, более удобный find/replace (его назвали рефакторингом), кучу настроек и плагинов.
Гм. В зенде профайлера как такового не было. Дебаггер - да, профайлера нет ) Приходилось юзать xDebug.
Вы говорите не было, а я им пользовался. Смысл в том, что кажется нужен был Zend Platform. Но факт остается фактом. Профайлер был и был неплохой, во всяком случае с его помощью я легко находил узкие места в проектах.
профайлер был. если юзался удаленный дебаг(а это удобно), то в меню можно было пользоваться "Debug->Profile URL"

и полного ZP не надо было, достаточно было удаленного экстеншна для дебага. он, кстати, бесплатен, и раньше входил в Zend Studio Server(и теперь лужит где-то в http://downloads.zend.com ). То что информацию про екстеншн больше не распространяют - наверно попытка всех перетащить на платный ZP
Unit-test все же упрощает работу с оным. Попрошу попрошу. Хотя да, могли бы вместо визивига сделать работу с веб-сервисами (soap wsdl всякими), к примеру, или еще чего полезного программистам.
SVN был врапером для консольного клиента, и нормально работать с ним было можно только, если вы на проекте в одиночку.
Автор, а можно по подробнее про Database Explorer. Хочется посмотреть на это, т.к. ищу альтернативу SQLyog. Гугл мне сказал что есть такая вещь но только в сборке MyEclipse, не подскажешь где взять отдельно сам плагин?
Честно говоря входящий в комплект не понравился. Если нужна альтернатива - копай в сторону EMS MySQL Manager. Хотя сам пользуюсь PowerDesigner + MySQL GUI Tools + sqlyog для генерации ченжсета.
Это бета, но ей уже реально можно нормально пользоваться?
пока не падала
Пользуюсь уже второй день. Нареканий пока нет, но нужно много настраивать под себя.
в дополнение, хотя может это уже известно, в папке "\Program Files\Zend\Zend Studio Neon - Beta\docs" лежит user guide
Спасибо, не знал :)
Насчет рефакторинга - оно и понятно. Вы хотели чтоб ZS за вас догадывался что такое, к примеру

define('ROOT_DIR', dirname(__FILE__) . '/');
include ROOT_DIR . 'library/' . $someclass . '.php';

и так далее? Это уж слишком. В java все проще будет, там вы пишете чего используете а чего нет и где копать. В гибкости это лучше для пхп, но в рефакте - нет.
В идеале - да :)
Честно говоря жестко типизированные языки мне нравятся гораздо больше.
На вкус и цвет, как говорится... А вообще думаю что php идет к тому чтоб сделать как в питоне возможность галочки жесткой типизации. Не помню, было ли это в тексте "это будет в пхп 6", однако надо бы поглядеть.

А сия гибкость мне нравится просто потому что можно граммотно разбить на файлы ваш скрипт и, к примеру, делать
require_once 'Kost/Tree/Exception.php'
throw new Kost_Tree_Exception('error with your tree');
- это экономит время так как в остальных случаях о существовании Kost/Tree/Exception.php никто даже спрашивать не будет, уж тем более обрабатывать его. А это такой себе неплохой плюсик.
А в php вы пишете __autoload и ему показываете где копать :)
Ну это пока что нет. Вот если бы все более-менее придерживались стандартов кодирования тех же Zend или PEAR (они похожи между собой), то было бы полегче. А пока - всегда найдется что-то из-за чего придется этот __autoload делать и делать...
Да ради только одного повышения скорости работы стоит непременно пощупать. Спасибо за обзор.
Есть. есть различия. Для меня очень важные :)

Например:
- Автодополнение в Js. Т.е пишем: "window." потом клацаем Ctrl+space и наслаждаемся списком всех свойств/методов класса.
- Тоже самое для css
- Переключалка просмотра xml "Design"/"source"
- Валидация HTML/CSS
- Проверка на наличие подключаемых файлов. там выше писали про:
"
define('ROOT_DIR', dirname(__FILE__) . '/');
include ROOT_DIR . 'library/' . $someclass . '.php';
" >> не будет работать.
Но, позволю себе заметить. Это не правильно. Ну т.е код будет работать. Но так лучше не делать.
За пример я беру ZendFramework. там такого кода не встретишь.
Т.е я хочу сказать, что лучше найти более красивое решение или пересмотреть архитектуру.
Автодополнение для js и css это отлично. Все время этого ждал. Буду качать даже только ради этого;)
понятное дело что такое лучше не делать, но в коде зенда можно найти файлы, подключаемый в середине кода (те же эксепшны), есть и адаптеры которые подключаются по мере необходимости, есть loadClass'ы, вообще являющиеся утилитами. И все это вещи нужные и правильные (в отличии от моего примера, само собой). Может частично ZS и маг, но всего он не умеет делать.
Кстати тоже вот вопрос:
У меня есть один класс в котором я юзаю функцию __call
Ну и естественно есл ия его начну использовать - то для него не будет работать автодополнение.

Вопрос: Надо ли переписать класс таким образом что бы не было __call()?
Я как то не видел нигде информации о том, рекомендуется ли использовать эту функцию или всё же стоит страться проектировать классы таким образом что бы таких ситуаций не возникало?
Глобально мысль сводится к тому что:
Если редактор реагирует на ваш код неадкватно - надо ли его(код) переписывать? Или положится на то что "мой код просто очень хитрый и такое решение на самом деле гениально по сути. А то что IDE на него плюётся так это его проблемы.
Я думаю не стоит прогибаться под редактор, ведь все равно останутся ситуации когда ф-ция возврщает переменную какого-то класса, а так как php не типизированный - IDE теряется и внутренних ф-ций особо не находит. С этим должна бороться IDE и разработчики пхп (насчет строгой типизации должны подзадуматься чтоб была возможность такая), а не вы.
Насчёт этого в ещё в Zend Studio придумали решение.
Там когда обьявляешь функцию пишешь:

/**
* __getSomeObject
*
*
* @author josser
* @class someClass
* @access public
* @return <b>ObjectClass</b> $someObject
*/
function __getSomeObject() {
... }
И потом при вызове функции резальтат будет иметь тип ObjectClass и для него будет работать автодополнение.

Т.е некоторые вещи можно делать. И как правило это не какие-то хаки. а стандартные всеми принятые варианты реализации чего-либо. (Как например в вашем примере когда функция возвращает обьект).
А что делать с теми которые нельзя?
С той же функцией __call() или __autoload()?
НЛО прилетело и опубликовало эту надпись здесь
Ну тут расчёт на то что вы будете писать в Zend Studio
там есть шаблоны кода.
работает примерно так:
Вы пишете fnc. Выпадает списочек как в автодополнении. Жмакаем Enter.
И вставляется уже готовй шаблон с полями по которым прыгает курсор.
Так что сама IDE уже помомгает следовать этим правилам.
Прошу прощения за незакрытый тег и не совсем адекватно-понимаемые названия классов и методов.. :)
Но я надеюсь суть я передал.
Действительно, я в топике пропустил что идешку научили этому. Но вещь эта совсем даже стандартная и называется PHPDoc. Немного костыли, но уже приятно. (если оно в случае ошибки возвращает false, к примеру? надо описывать как mixed, а потом еще как-то?)

p.s.: ушел проверять на понимание @throws и прочего
> Даже несмотря на то что приходится ставить заглушки вида…
По-вашему, засорять свой код в угоду не совсем умному аналайзеру — это правильно?
Эм. Если взять за сравнение что хуже - такая безобидная заглушка, или реально непроинициализированная переменная - то я выбираю первое. По крайней мере четко знаешь чего от него ожидать.
А зачем эти беды сравнивать? Инициализируйте переменные, не пишите мусора, и будет вам щастье. Пускай они лучче аналайзер поправят, чтобы он на пустой метод обработки исключения не ругался.
Как поправят - будет щастье :) А пока пусть так.
Пускай. Только ведь по-хорошему код в первую очередь пишется для программиста, а потом для интерпретатора. А про аналайзер и вообще речи не идет. Что подумает про Ваш код программист, который не пользуется Zend Studio?
Тут согласен. Возьмем другой аспект. Комментарии. Они же коду не мешают, а улучшают код. Так и здесь - у меня появился еще один инструмент. Но он требует пары десятков ниначто не влияющих затычек по всему проекту. Я счимтаю что адекватная цена.
А Вы с Eclipse PDT знакомы?

Я вчера полчаса пытался найти отличия Neon от PDT с плагинами - так и не нашел. Хочу еще чье-нибудь мнение узнать :)
Пробовали. Лапша на уши от маркетологов, а не серьезный список.
К сожалению ничего лучше предложить не могу :( Может вы сами напишите сей опус?
Может и напишу, только надо побольше времени с Неоном посидеть.
Напишите, работает ли подсветка статических методов в классах, а то Zend Studio светится нормально, а в Eclipse PDT - что то ничего не светилось. То есть вопрос, подстветка в Neon'e унаследована от Зенд студии или от эклипса пдт...?
Вроде подсвечивается :) Завтра на работе гляну.
Да-да, поддерживаю. Я уже второй год работаю только с PDT. (Сказать по правде, когда узнал, что PDT ZEND разарабатывают, был весьма и весьма удивлен).

Из перечисленного в статье к Eclipse нельзя так запросто прикрутить профайлер. Все остальное, ну почти все, это достоинства не Neon, а Eclipse в целом и PDT в частности.

HTML, CSS и JS? Это WTP. База данных? Это DTP. PHPDoc и тайпхинтинг? Это из PDT.
//FIXME и //TODO? Это еще из JDT тянется.
PHPDocumentor и PHPUnit как external tool в Eclipse подключается на ура.
etc

Главная разница - PDT вы накачиваете сами, Neon уже прокачан. Это, безусловно, здорово, но все вышееперечисленое не позволяет говорить о Neon, как о "революционном" продукте.

Сдается мне, Zend хорошо все продумали: был у них Zend Studio; они пишут открытый и бесплатный PDT; захватывают значительную часть рынка PHP IDE; переезжают сами на PDT; теперь пользователи PDT легко и безболезненно могут переходить на Neon, как только денег накопят =)

Стратегически - на 5+

P.S. PDT, кстати, не заморожен - новые билды продолжают появлятся
божее.. эклипс... и его АДСКОЕ КОНФИГУРАЦИОННОЕ ОКОШКО.... найти чтото с первого раза просто нереально..
Тогда notepad++. Всё просто до безобразия.
Кстати там довольно просто всё.
В конфигурационном окошке имелось ввиду :)
юзаю VIM ;)
кросплатформенность и все такое :)
хотя нотпад++ тоже хорош, быстро открывается.. чтото подправить очень удобно.
если что-то небольшое поправить то vim хорош. но если дофига файлов - то это похоже на насилие над самим собой.
если много файлов - всегда сложно :)
А для любителей Перла есть что-нибудь сопоставимое по мощи? (под Linux)
Любители перла ставят эклипс и ищут подсветку синтаксиса :) Плюс экстэншны какаи хотят :)
*какие :)
Кстати, на "В Zend Studio 5.5 был баг, из-за которого при настроенной работе с SVN-ом сам редактор начинал тормозить. " - ссылку можно? А то у меня эти тормоза тоже наблюдались.
Нет, на описание бага с svn.
Ага, спасибо. Я как то вылезшие тормоза не связал с svn и винил во всем самбу, на которой файлы проекта были.
Прошло время и ссылка не работает, где бы взять Neon, не посоветуете?
Я так понял, что они встроили SVN в Zend Studio Neon? Интересно, зачем. Есть ведь плагин Subclipse, который прекрасно работает.
На всё воля Аллаха - решили разработчики и встроили :) С subeclipse не работал, поэтому сравнить не могу :(
Попробуйте. У меня вообще никаких проблем с ним не было. Прекрасно работает с любыми типами файлов, с любыми view. Очень удобен.
Просто так нельзя. Они тогда могли бы и Eclipse не использовать, а продолжать писать свою Zend Studio с нуля. Огромный потенциал Eclipse — именно в плагинах. Зачем встраивать в свой и без того монструозный плагин дополнительную функциональность, для которой уже существуют вполне стабильные и мощные решения.
Да в принципе и их плагин отлично работает. Пока не жалуюсь :) А что-то перенастраивать пока рабоатет - увольте-с.
Нет, ну это вполне наш подход — если работает, не трогать! :)

Но я имел в виду, что сами разработчики были не правы, они не поняли главного принципа Eclipse. А это печально.
Может с лицензией что-то не так :) Не знаю. А юзают они svnkit (svnkit.com)
В Zend Studio и раньше были phpdoc и profiler.
Грубо говоря это та же Aptana к которой добавили Zend Framework.
Что-то трудно назвать этого монстра удобным продуктом для разработки, кроме автоматизации работы с фреймворком больших удобств в работе не наблюдается в сравнии с тем как "быстро" эта каракатица работает, у меня не слабый компьютер на коре 2 дуо и даже он бедняга втыкает при сохранении проекта всего на 10к строк. Просто Zend Studio как по мне более живучий и удобный продук, не смотря на перечисленные недостатки.
Почему то у меня в этом неоне для PHP скрипта не работает outline, то есть список функций в классе не отображается. Я что-то не так делаю? Где там покрутить можно?
Может быть кто-то знает как можно руссифицировать zend neon?
В 5.5 версии перевод языка был посредством изменения локали в файле desktop_options.xml.
Всетаки в анализаторе кода достаточно много глюков. Например, передача параметра по ссылке:

function x(&$param){
$param = 123;
}

Выдает ванинг "переменная $param не используется". Если его убрать, получим другой варнинг "неиспользуемый параметр функции".

Конструкция:

class X{
public $var;
function f(){
$this->var++;
}
}

выдает варнинг "Результат выражения $this->var++ не ипользуется". Если заменить на $this->var+=1, то всё ок.

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