В последнем опросе о лучшей PHP IDE 2014 года мой любимый давний PhpED отсутствовал. Я не действовал тогда, но лучший способ распространить любовь, чем посвятить ей статью.
Я провел первую часть моей карьеры программиста без настоящей IDE. UltraEdit удовлетворял большинство моих потребностей. В определенный момент вы начинаете понимать, что чего-то не хватает, и начинается поиск настоящей IDE.
В течение некоторого времени я был относительно счастлив с NetBeans; хотя через некоторое время я столкнулся с этим слишком много раз. Я снова пришел к выводу, что пришло время двигаться дальше. Наличие исторической ненависти к Eclipse (у нас было серьезное недоразумение в версии 3, что-то, из чего я до сих пор не пришел в себя) означало, что мне пришлось тестировать коммерческие IDE.
Почему я выбрал PhpED
Скорость, обзор и простота. Это подводит итог, на самом деле. Есть несколько вещей, которые имели значение для меня, в отношении скорости; переключение проектов, получение предложений кода и быстрая отладка. Обзор — это то, чего я хочу, потому что мои проекты порой становятся довольно сложными. Такая среда, как Eclipse, переполняет меня слишком большим количеством опций и кнопок, которыми я вряд ли когда-либо пользуюсь, будьте проще. Я считаю, что нашел свои требования и многое другое в PhpED …
1. Мастер проектов
Мастер проектов поможет вам настроить ваш проект так, как вы этого хотите; простой локальный проект, локальный сервер или удаленный сервер. Запустите на веб-сервере и / или CLI. Настройте каталоги, кодовую страницу, версии PHP / HTML / CSS и, наконец, проверьте, работает ли отладчик. Это будет довольно точно о том, как исправить проблемы или предложить исправить их, если они будут.
2. Автозаполнение
Когда дело доходит до редактирования кода, присутствуют все обычные вещи: динамическая подсветка синтаксиса для нескольких языков, подсветка переменных, быстрый поиск и многое другое. Кодовое предложение является мгновенным; IDE представляет возможности, которые соответствуют введенному вами началу. Когда вы найдете то, что вам нужно, и ваш код задокументирован с использованием PHPDoc, он покажет это при вводе переменных.
В приведенном выше примере вы можете заметить что-то, что можно улучшить; он не показывает многострочные комментарии документации. Это хорошо, чтобы получить простой обзор вызова функции, но довольно часто вы что-то документируете по какой-то причине и хотите все это увидеть.
3. Отладка
PhpED поставляется с расширением DBG для отладки. Отладчик устанавливается как модуль PHP. Мастер проектов автоматически установит модуль для вас, если вы используете локальный сервер. Для удаленного сервера вам придется сделать это самостоятельно. Опять же, мастер очень помогает здесь, как это сделать, предлагая правильные пути и содержимое файла для вашего сервера. PhpED автоматически прослушивает входящие отладочные соединения и помогает вам получить соединение через брандмауэры и маршрутизаторы, если это будет необходимо.
Отладчик имеет все функции, которые мы можем ожидать; одиночный шаг, бег к или от позиции курсора. Точки останова могут иметь дополнительные условия, которые оцениваются при каждом прикосновении к ним. Отладчик может быть запущен из IDE с помощью «Run in debugger», но также может быть запущен для запуска в любое время, просто добавив параметр DBGSESSID в запрос. Этот параметр также сохраняется как файл cookie сеанса, поэтому каждый последующий запрос может быть автоматически отлажен.
Отладчик ускорил мой рабочий процесс разработки во многих случаях. Понимание локальных и глобальных переменных превосходно. Весь стек вызовов отслеживается, и все переменные при каждом вызове в стеке доступны.
Отладчик также способен профилировать память, SQL и выполнение. Профилирование памяти было добавлено недавно. Это дает вам представление о вашем коде и о том, сколько памяти он использует, где, понимание, которое может вас удивить.
Линейный профилировщик покажет вам, куда ушло время ожидания страницы. Он будет сгруппирован и агрегирован по модулю или функции, чтобы найти критические точки вашего кода.
Ваш код SQL, конечно, все прослеживается. От времени подключения до команд настройки и запросов каждая часть взаимодействия SQL подробно регистрируется.
Пример здесь был сделан с использованием PDO, обратите внимание, что параметры запроса не регистрируются. Если вы когда-нибудь пытались оптимизировать SQL-запросы, вы будете знать, что вы хотите, чтобы конкретный запрос мог правильно выполнять EXPLAIN. Некоторая возможность для улучшения, я бы сказал.
4. Обзор
В PhpED есть функция, называемая навигатором кода, которая показывает структуру файла, который вы редактируете в любой момент. Вверху есть быстрый поиск, позволяющий перейти к определенным частям в файле. Представление адаптируется к текущему файлу и также может отфильтровывать различные части, если оно содержит более одного языка. Нижние вкладки PHP / HTML / CSS и JS позволяют переключаться между отдельными разделами.
Недавнее добавление для поддержки SCSS также приветствовалось. Хьюго Жираудель много писал об этом здесь, на SitePoint, и я думаю, что большинство из нас видит преимущества. Мне больше всего нравится SCSS за его структурированный подход. Мне обещали, что поддержка языковых дополнений LESS также скоро появится; чем скорее, тем лучше.
И это еще не все …
Список возможностей длинный. Я уверен, что я не использую их всех. Несколько версий назад PhpED также начал поддерживать фреймворки PHP. Это сработало очень хорошо, потому что теперь известно об отношениях между контроллерами и представлениями. В нижней части окна редактирования будут показаны вкладки для (частичных) представлений, которые вы используете в текущем файле, или для контроллера, связанного с вашим представлением.
С поддержкой фреймворка также появилась возможность сопоставления URL; довольно часто вы не можете запустить или отладить файл, который вы редактируете. Платформа, которую вы используете, имеет свой собственный менеджер URL, который, например, отображает контроллер на URL. Вы можете указать PhpED, как сопоставить файлы в вашей структуре с URL, который он может запустить. Затем он откроет правильный URL, если вы нажмете Run. Если вы используете контроллер с несколькими действиями, он даже покажет всплывающее окно с вопросом, какое действие вы хотите запустить.
Это идеально?
Будет ли когда-нибудь IDE? Как разработчик, вы постоянно развиваетесь; открывая новые возможности, и вы надеетесь, что ваша IDE сможет идти в ногу с вами. Эта IDE, с другой стороны, время от времени удивляла меня новыми функциями. У меня есть привычка время от времени проверять другие IDE, чтобы не пропустить что-то. Пока что я не вижу каких-либо серьезных вещей, которые заставили бы меня всерьез задуматься о переходе.
Для меня есть одно настоящее раздражение; Выбор цвета. Это как машина времени назад к Windows 95. Не чувствителен к коду под рукой, не выполняет кодов RGB () или HSL (), не способен к непрозрачности, не удобен для пользователя, даже не пытайтесь его попробовать.
Есть и другие приятные вещи, которые я видел в других IDE, но они еще не изменили баланс. Среди функций, которые могут быть хорошими дополнениями, — интеграция с Composer, проверка орфографии и, возможно, плагины.
Я сделал несколько предложений команде PhpED некоторое время назад и получил быстрый отзыв об этом. Меня также пригласили стать бета-тестером для PhpED, и предлагаемые функции вошли в продукт — это, по крайней мере, создает впечатление, что вы воспринимаете всерьез, когда предлагаете что-то.
Вывод
Я показал только некоторые особенности PhpED здесь. Этот выбор, тем не менее, делает PhpED победителем для меня. Эта IDE определенно помогла мне стать более гибким разработчиком, но, как всегда, все относительно; Я уверен, что у вас есть те же чувства по поводу вашей IDE.
Вы используете PhpED? Или вы используете другую IDE, которая делает работу еще лучше? Расскажите нам о своем опыте.