Ide для yii2 какую выбрать
На западе популярнее Laravel, в СНГ - Yii. Команда Artjoker решила выяснить, стоит ли гнаться за зарубежными трендами или же нет. На каком фреймворке разрабатывать сайты?
Дисклеймер. В статье мы озвучиваем свое субъективное мнение, основанное на личном опыте и сравнительном анализе. Если вы не согласны, спецы Artjoker с удовольствием подискутируют ;)
Натолкнулись на статью 2017 года о востребованности PHP программистов на рынке труда. Да, она - старая, но в 2018 картина изменилась не существенно. В материале приведена интересная зависимость количества вакансий от типа фреймворка.
Диаграмма для СНГ -
Данные по западному рынку -
Зачем мы приводим эту информацию? Она позволяет сделать выводы как заказчикам, так и исполнителям.
Рассмотрим обе стороны. Если вы программист и хотите быть востребованным, вам необходимо либо:
- осваивать популярные инструменты;
- смотреть в завтрашний день и выбирать перспективные направления.
Если вы заказчик, вам стоит держать в фокусе несколько моментов:
- не возникнет ли дефицита кадров из-за массового отказа от устаревших фреймворков;
- насколько затратно поддерживать проект;
- с какой регулярностью выходят обновления (это влияет на производительность вашего сайта).
Именно поэтому важно сравнивать фреймворки. Посмотрите на диаграммы еще раз. CodeIgniter можно смело исключить. Он некогда был на волне, а сейчас его вытеснили более прогрессивные решения. Большое количество заказов объясняется наличием проектов, которые нуждаются в саппорте. Со временем владельцы сайтов переедут и спецы по CodeIgniter останутся без работы.
В сухом остатке выделяются 2 лидера - Yii и Laravel. Причем на территории СНГ пальма первенства принадлежит Yii. Нужно разбираться, стоит ли отечественным заказчикам и разработчикам гнаться за западными трендами или отдать предпочтение проверенному на родине фреймворку?
- удобно читаемые Laravel-коллекции и хелперы по работе с ними;
- storage - отдельное место в структуре для хранилища;
- eloquent - ORM для работы с базой, реализация шаблона ActiveRecord. Помимо стандартных CRUD-операций, в ней есть: методы доступа и мутаторы, безопасное удаление, области запросов, отношения, наблюдатели модели;
- artisan - позволяет управлять командной строкой,
- простая маршрутизация, валидация входящих параметров;
- интегрированный сборщик scss и скриптов (elixir);
- интегрированный шаблонизатор Blade;
- очереди заданий, планировщик задач;
- миграции и сиды;
- интегрированная система модульного тестирования phpunit;
- поддержка WebSockets для создания настоящих интерактивных приложений;
- ACL плагины;
- высокая популярность на западе;
- частые релизы новых версий.
- отсутствуют интегрированные шаблоны интерфейсов.
“Love beautiful code? We do too” - цитата с официального сайта соответствует действительности. Laravel - клад для любителей красивых решений. Код читается легко, структура файлов будет ясна даже новичку. Кстати, есть потрясные видеоуроки, основы бесплатные.
Laravel - дружественный фреймворк. Встроенные artisan-команды здорово ускоряют процесс разработки.
Ключевой момент - правильная архитектура базы данных. Во время разработки каждый из доступных роутов желательно покрывать тестами, наполнять БД тестовыми данными, придерживаться основы философии Laravel - лаконичности. Чтобы избежать нагромождения в методах контроллеров нужно использовать классы-репозитории, мутаторы и акселераторы в моделях.
Laravel дает разработчику большую свободу в выборе решений и способов их реализации. Это одновременно и хорошо, и плохо. С одной стороны облегчается процесс кодинга, с другой - увеличивает трудозатраты на разработку и согласование конвенций.
Выбирая Laravel, вы получаете наиболее перспективный (на сегодняшний день) PHP-фреймворк. Проекты на нем, при грамотной разработке, легко расширяются.
- Active Form - создание форм по свойствам модели;
- использует общепринятую архитектуру и методы;
- интегрировано множество стандартных решений для интерфейсов (Kartik);
- встроены автотесты форм и безопасности;
- сравнительно просто изучить;
- реализован визуальный генератор CRUD, контроллеров, моделей (gii).
- новые версии выходят редко;
- склеенные библиотеки фронта и бэка;
- недостаточно гибкий процесс формирования роутов.
- редко выходят новые релизы.
Yii2 - отличное решение для контентных сайтов с типовыми админ-панелями и минимумом бизнес-логики. Если нужно реализовать простые манипуляции данными, то не стоит заморачиваться с Laravel. В этих случаях монолитность кода не будет проблемой и разработка на Yii2 займет меньше времени за счет уймы готовых решений.
Разработка отдельных проектов ускорится в среднем быстрее на 10% (из личного опыта).
*- относительный параметр (из личного опыта).
Когда речь заходит о надежности и Yii, и Laravel стоят на равных. Фреймворки обеспечивают безопасность на нескольких уровнях (включая пароли, аутентификацию, SQL-инъекции, кросс-сайтную подделку запросов, скрипты сайта и т. д.)
Если же останавливать свой выбор на чем-то одном, то мы бы советовали Laravel. Специалистам Artjoker приходилось поддерживать проекты на обоих фреймворках, но с Laravel на реализацию дополнительного функционала уходит меньше времени. Аналогично с поиском багов. На наш взгляд, все дело в лаконичности.
На хабре этот мусор бы заминусили конечно). В статье фреймворк рассматривается ни как инструмент, а как тренд. Но особенно доставило сравнение Laravel и Yii2.
Я использовал как Yii2, так и Laravel в работе. Но автор судя по всему в Yii2 дальше quickstart не заглядывал, ибо большинство преимуществ, которые приписали в Laravel, реализованы в Yii2
удобно читаемые Laravel-коллекции и хелперы по работе с ними;
ArrayHelper в Yii2
storage - отдельное место в структуре для хранилища;
Yii2 не навязывает вам конкретную директорию, создайте себе любую и просто пропишите алиас
eloquent - ORM для работы с базой, реализация шаблона ActiveRecord.
аналогичный функционал есть и в Yii2. С отношениями и прочими плюшками
миграции и сиды;
Ага, и в Yii2тоже
интегрированная система модульного тестирования phpunit;
Тоже есть. И codeception вдогонку
ACL плагины;
RBAC в Yii2 ничем не хуже
частые релизы новых версий.
Это вам не Wordpress. Поэтому слишком частые релизы скорее минус, нежели плюс. В Laravel нередко ломают обратную совместимость в некоторых компонентах фреймворка частыми релизами и это боль
Теперь о "преимуществах" Yii2
Active Form - создание форм по свойствам модели;
Это скорее минус Yii2. ActiveForm подойдет разве что для формошлёпов. В валидаторах activeForm мешанина из php и jquery. С кастомизацией всегда будет боль.
использует общепринятую архитектуру и методы;
Это ложь! Yii2 не навязывает никакой архитектуры. Он только предоставляет примерные шаблоны, чтобы вы видели как использовать его среду.
сравнительно просто изучить
Сравнительно с чем? У Laravel ничуть не хуже документация.
Про минусы Yii2
новые версии выходят редко;
За это его и выбирают разработчики и команды. Ежегодные релизы новых версий, ломающие обратную совместимость — это боль для разработки.
склеенные библиотеки фронта и бэка;
В большинствах модулей с бекендом и фронтендом можно (в шаблоне Advanced) замапить в конфигах и разделить фронт и бэк части.
недостаточно гибкий процесс формирования роутов.
Не хуже чем в Laravel. И группировка есть и фильрация, нормализация роутов. Динамические роуты и кастомные классы обработчики тоже можно реализовывать.
редко выходят новые релизы.
Про это уже было.. Исправления безопасности и некоторые улучшения в yii2 выпускаются регулярно и это главное. А мажорные сырые релизы каждые полгода, исправляющий одни баги и добавляющий другие не нужны. Это не преимущество.
Из этого можно сделать вывод, что автор что то видел в Laravel и где то слышал про Yii2. Никакой объективности в этой статье нет. Статья — мусор!
Продолжаем разработку нашего чудо-сервиса на Yii2. На прошлом уроке мы создали через Composer новый проект и дополнили его раздельной системой конфигурационных файлов. Сегодня мы внедрим в проект модульную структуру и немного лучше познакомимся с базовыми настройками и некоторыми возможностями авторефакторинга в PhpStorm IDE. Другими IDE я не пользуюсь, поэтому с ними не могу вам помочь.
Предварительная настройка IDE
При работе с использованием IDE нужно учитывать и её нюансы.
Во-первых, у нас в проекте есть временные мусорные папки runtime и web/assets . Их желательно исключить из зоны видимости любой IDE, чтобы они попусту не захламляли её внутреннюю историю изменений, не участвовали в поиске, и чтобы список файлов внутри них не занимал оперативную память.
Во-вторых, у нас есть внушительных размеров папка vendor . Включение её в проект полезно, так как это позволит работать автоподстановке, сканирующей все константы, классы и методы.
Но в IDE кроме сканера автоподстановки имеется множество других инструментов для обхода файлов проекта. Это может быть банальный поиск по содержимому, рефакторинг, поиск ошибок с помощью инспектора Code → Inspect Code или вывод списка TODO из всех файлов. Этим инструментам нежелательно сканировать папку vendor , чтобы, например, не выводить сотни найденных TODO и стилистических ошибок из тех же встроенных минимизированных сркриптов.
Соответственно, в PhpStorm IDE войдем в настройки нашего проекта File → Settings , выделим каждую «лишнюю» папку и исключим её, пометив как Excluded :
Также нам нужно пометить корневую папку как Source Root и папку tests как Tests. При этом щёлкнув на значок P этим папкам укажем неймспейсы app и tests , чтобы PhpStorm проставлял правильный namespace при создании классов.
Мы исключили и папку vendor из проекта, поэтому все классы фреймворка потеряются. Нам нужно вернуть её, но при этом не добавлять как папку проекта, а подключить как одну из системных библиотек в Settings - Lnaguages and Frameworks - PHP - Include Path. Это можно сделать вручную, нажав там + и выбрав папку vendor , а можно и воспользоваться умением IDE парсить зависимости:
При открытии проекта PhpStorm спросит нас, хотим ли мы испортировать пути автозагрузки из composer.json . Если не спросил, то мы можем настроить импорт путей вручную:
При этом нужно настроить PHP-интерпретатор и путь до глобального файла composer. Если всё прошло успешно, то после сохранения настроек в список Include Path секции PHP будут автоматически импортированы пути всех библиотек из vendor :
Теперь сканер автоподстановки благополучно найдёт все файлы фреймворка, классы будут также находиться через Ctrl+N , но поиск по содержимому будет проводиться только по вашим файлам. Если же нужно будет произвести поиск внутри папки vendor , то просто специально станьте на неё мышкой и нажмите Ctrl+Shift+F для поиска конкретно в ней.
Теперь не будет проблем с заменой какой-либо строки посредством Ctrl+Shift+R , так как автозамена больше не затронет файлы фреймворка.
Продолжим работу с нашим проектом.
Переход к модульной структуре
Хранить все контроллеры и другие классы в одних и тех же папках может быть удобно, но приятнее разделять функциональность на модули.
Сейчас у нас имеется всего один контроллер и три модели:
Один контроллер и выводит страницы, и авторизует пользователя, и обеспечивает обратную связь. Исходя из принципа единой ответственности (обязанности) такое смешение не очень оправдано и удобно.
Первым делом откроем web/index.php и проверяем, что там установлено окружение dev :
Вспомним, что в config/web.php у нас находится фрагмент:
Он определяет, что в окружении разработки (development) к приложению подключаются модули debug (выводящий панель отладки и её внутренние страницы) и gii (генератор моделей, модулей и прочего), Вот именно Gii нам и пригодится.
После нажатия Preview и Generate мы получим соответствующую папку:
Также генератор нам подскажет, что в конфигурационный файл (в нашем случае в config/web.php ) нужно подключить наш сгенерированный класс:
Аналогично нам нужно сгенерировать и подключить заготовку модуля user . В итоге у нас будет добавлена секция modules с двумя модулями:
Gii помог нам сгенерировать заготовки. А теперь аккуратная ручная работа. Нужно раскидать действия из SiteController.php , существующие классы и представления по этим модулям.
Сначала переносим модели. Создаём папки modules/main/models и modules/user/models . Если у вас тоже есть хорошая IDE, то самое время задействовать её возможности по автоматическому рефакторингу.
Открываем класс LoginForm.php и щелчком по имени класса правой кнопкой мыши (или горячей клавишей <F6>) выбираем Refactor → Move . В появившемся окне изменяем пространство имён на app\modules\user\models :
и жмём Refactor и после сканирования Do Refactor . Автоматически файл перекинется в новую папку, у класса изменится namespace и во всех местах использования автоматически поменяется строка use .
Если ваш редактор так не умеет, то нужно будет переместить классы вручную.
Аналогичным образом переносим модель формы ContactForm в модуль main и User в модуль user .
Теперь дело за контроллером SiteController . Его содержимое необходимо разнести по контроллерам всех модулей.
Контроллер обратной связи сделаем отдельным в модуле main :
Мы перенесли в него действия captcha и actionContact .
Обратите внимание, что actionContact мы переименовали в actionIndex и соответственно заменили имя файла представления. Теперь файл views/site/contact.php поместим как modules/main/views/contact/index.php .
В модели ContactForm находим строку подключения CaptchaValidator :
и указываем новый маршрут:
Аналогично в файле представления modules/main/views/contact/index.php находим конструкцию вывода виджета:
и добавляем такой же параметр:
Теперь контактная форма должна нормально работать.
Контроллер по умолчанию в модуле main будет выводить страницы и ошибки:
К нему нужно перенести все его представления index.php и error.php из папки views/site в папку modules/main/views/default .
Мы пропустили только действие actionAbout и представление about.php , так как статические страницы нам не нужны. Если потребуется организовать раздел помощи, то его можно сделать потом.
И последний модуль user . В его контроллер мы перенесём авторизацию и представление login.php :
Теперь пустые папки controllers , models и views/site в корне можно удалить. Вместо них будет только папка modules .
В итоге получилась новая файловая структура, состоящая из двух модулей:
И немного доработаем представления. Если зайдём в любое представление вроде modules/user/views/default/login.php , то увидим там вспомогательный класс, помогающий по HTML-коду страницы в браузере определить текущий маршрут:
Это полезная подсказка для разработчика проекта. Также этот класс может быть полезен для установки персональных стилей для каждой страницы в CSS-файле. Но теперь у нас есть модули и мы перенесли это представление. Оставлять старые значения мы не будем, поэтому теперь пробежимся по всем файлам и поменяем классы на новые. Например, у этого представления теперь новый маршрут:
Теперь необходимо немного доработать файлы конфигурации. Первым делом, укажем маршрут по умолчанию вместо site/index и действие для вывода ошибок вместо site/error в config/web.php . Помимо этого нужно добавить новый путь для свойства loginUrl :
Также дополним правила маршрутизации с учётом новых модулей в config/common.php :
Теперь исправим маршруты ссылок в главном меню views/layouts/main :
Если всё сделано верно, то снаружи у приложения ничего не изменится. Все страницы будут работать как и раньше. Но теперь и вы можете испытать то волшебное чувство, когда заказчик на вас кричит: «Жулики! Хватит меня обманывать! Видимость работы создавать! Целый день просидели, ничего не сделали! Вообще! Верните мои деньги!».
А сейчас, как всегда, задавайте вопросы, излагайте эмоции и вносите предложения в комментариях.
В этой статье рассматриваются три наиболее популярных PHP-фреймворка: Symfony, Laravel и Yii2. Автор сравнивает их возможности и пытается помочь читателю выбрать лучший инструмент. Статья предназначена для начинающих разработчиков, которые ещё не работали с PHP-фреймворками.
Зачем нужен PHP-фреймворк
PHP — один из самых популярных и востребованных языков программирования. Его активно используют крупные проекты, например, Facebook и «ВКонтакте». На PHP написаны популярные системы управления контентом (CMS), в том числе WordPress. На этом движке работает около трети всех сайтов в интернете и около 60 % сайтов на CMS.
PHP развивается, а версия 7 сделала этот язык стабильным. В таком случае, зачем нужны фреймворки и почему их часто используют вместо нативного языка? Вот несколько причин:
- Фреймворки ускоряют разработку. Например, PHP-фреймворк избавляет вас от необходимости писать запросы к базам данных. В фреймворках реализованы базовые функции CRUD, которые необходимы для работы с базами данных.
- Написанные на фреймворках приложения легко масштабируются.
- Поддерживать легче проект на фреймворке, чем на нативном PHP. Код фреймворков лаконичный, поэтому с ним просто работать.
- В PHP-фреймворках используется модель MVC. Она упрощает разработку.
- Приложения на фреймворках лучше защищены, чем приложения на чистом PHP.
- В фреймворках реализован принцип DRY. Это позволяет разработчикам писать меньше кода.
Нативный PHP позволяет делать приложения. Но перечисленных выше преимуществ достаточно, чтобы обратить внимание на фреймворки.
Полезная информация Почему Django — лучший фреймворк для разработки сайтов: статья о характеристиках и особенностях популярного веб-фреймворка.
Как выбрать PHP-фреймворк
Выбрать фреймворк помогут ответы на следующие вопросы:
- Какая функциональность у фреймворка, соответствует ли она нуждам проекта?
- Насколько сложно изучать выбранный фреймворк?
- Легко ли масштабировать проект, созданный с помощью данного фреймворка?
- Насколько активно развивается инструмент?
- Есть ли гарантированная долгосрочная поддержка (LTS)?
- Есть ли активное сообщество?
Symfony, Laravel и Yii2
Перед погружением в детали коротко рассмотрим главные особенности наиболее популярных PHP-фреймворков. Это Symfony, Laravel и Yii2.
Symfony
Symfony представляет собой набор PHP-компонентов, которые подходят для повторного использования. Фреймворк позволяет делать масштабируемые и производительные приложения. API Symfony интегрируется со сторонними приложениями, а также с инструментами для фронтенд-разработки, например, Angular JS.
Symfony используют многие популярные проекты, например, Drupal и phpBB. Даже самый популярный PHP-фреймворк Laravel построен на основе Symfony.
Laravel
По состоянию на середину 2019 года это самый популярный PHP-фреймворк в мире. Текущая стабильная версия — 5.8.10. Популярность Laravel подчёркивает следующий факт: многие хостеры предлагают специальные решения для приложений, созданных с помощью этого фреймворка.
Yii был представлен в 2008 году. Это безопасный, быстрый и производительный фреймворк для разработки веб-приложений. Текущая версия — 2.0.19.
В Yii2 используется пакетный менеджер Composer для управления зависимостями. Благодаря ленивой загрузке Yii2 считается самым быстрым PHP-фреймворком.
Ещё одна особенность Yii2 — интеграция с jQuery. Благодаря этому фронтенд-разработчикам удобно работать с приложениями, созданными на Yii2. Как и в Symfony, в Yii2 используются готовые компоненты. Это ускоряет разработку.
Какой PHP-фреймворк лучше
Все перечисленные фреймворки подходят для разработки веб-приложений. Однако у этих инструментов есть отличия, которые разработчик должен учитывать. Подробности ниже.
Шаблонизаторы
Шаблонизаторы ускоряют разработку и упрощают создание фронтенда приложения. Например, с помощью шаблонизаторов решается задача автоматического экранирования HTML.
Symfony
В Symfony по умолчанию используется Twig. Это обработчик шаблонов, который позволяет писать чистый код и расширяет возможности нативного PHP. Например, Twig упрощает создание экранирующих последовательностей.
Laravel
В этом фреймворке применяется шаблонизатор Blade. Он позволяет использовать код PHP в представлениях. Blade практически не влияет на скорость работы приложений, так как представления хранятся в отдельных файлах с расширением .blade.php . Код представлений преобразуется в нативный PHP.
Этот фреймворк не использует сторонних шаблонизаторов по умолчанию. Но разработчик может выбирать инструменты в зависимости от решаемых задач. В число рекомендуемых шаблонизаторов входят Twig и Smarty.
Промежуточный вывод: по данному критерию чистого победителя нет. Все фреймворки поддерживают работу с шаблонизаторами, что ускоряет разработку фронтенда приложений. Небольшое преимущество имеет Yii2, так как в нём не используется какой-либо шаблонизатор по умолчанию.
Изучайте Laravel на Хекслете Курс по Laravel входит в профессию «PHP-программист». Первые курсы в профессии доступны бесплатно после регистрации.
Модульность
В Symfony есть стандартные компоненты, которые можно использовать для создания приложений. То есть Symfony — отличный пример модульного фреймворка.
В Yii2 реализован подход MVC. В этом фреймворке тоже есть компоненты, однако модульность реализована не так хорошо, как в Symphony.
Laravel уступает Symfony и Yii2 в возможности использовать модульный подход для разработки приложений.
Промежуточный вывод: если вам нужен модульный PHP-фреймворк, выбирайте Symfony.
Установка
Каждый фреймворк поддерживает несколько вариантов установки. Например, Symfony, Laravel и Yii2 можно установить с помощью пакетного менеджера Composer. Все фреймворки после установки позволяют работать с шаблонным приложением.
Промежуточный вывод: по критерию простоты установки победителей нет, каждый из трёх инструментов легко устанавливать.
Скорость разработки
Symfony считается надёжным фреймворком, за которым стоит многочисленное и активное сообщество. Laravel быстро развивается и удерживает первое место в списке самых популярных фреймворков. Yii2 обеспечивает производительность приложений.
Если вам нужно как можно быстрее создать веб-приложение, и вы никогда не работали с PHP-фреймворками, выбирайте Laravel. Его проще всего изучать, и в сети больше всего руководств именно по Laravel.
Производительность
По мнению автора оригинальной статьи, наиболее производительным фреймворком является Yii2. Это оптимальный выбор для создания высоконагруженных приложений.
Производительность Laravel — дискутабельный вопрос. По этому критерию он уступает Yii2 и Symfony. Тем не менее в сети можно найти много рекомендаций по ускорению приложений на Laravel.
Поддержка баз данных
По этому критерию бесспорным лидером становится Symfony. Yii2 и Laravel отстают. Конкретную информацию можно увидеть в таблице.
Laravel | Yii2 | Symfony |
---|---|---|
Microsoft BI | Microsoft BI | Apache Jackrabbit |
MongoDB | MongoDB | CouchDB |
MySQL | MySQL | DynamoDB |
PostgreSQL | PostgreSQL | GraphDB |
Redis | Redis | MemBase |
SQLite | SQLite | MemCasheDB |
Microsoft BI | ||
MySQL | ||
MongoDB | ||
NoSQL | ||
Oracle | ||
PostgreSQL |
Сообщество и ресурсы
Многочисленное активное сообщество можно считать гарантией долгосрочной поддержки и развития инструмента. Вокруг рассматриваемых фреймворков сформированы большие сообщества. Комьюнити Symfony можно назвать наиболее зрелым.
Важный момент — будущее фреймворка лучше оценивать не по статичной величине сообщества, а по его динамике и активности.
Если оценивать такой ресурс, как документацию и обучающие материалы, здесь лидером будет Laravel.
Расширяемость
Функциональность фреймворков увеличивается с помощью расширений или пакетов. По этому критерию лидером остаётся Laravel. В каталоге Packalyst можно найти около 9000 пакетов для Laravel.
Yii2 и Symfony могут похвастаться 2800 и 2830 расширениями соответственно. Если для вас важна возможность расширить стандартную функциональность фреймворка с помощью дополнительных пакетов, выбор очевиден.
Схожесть характеристик
Выше мы рассматривали разницу между фреймворками. Пришло время сосредоточиться на похожих характеристиках. Вот они:
- Все три инструмента относятся к fullstack-фреймворкам. Они обеспечивают полный цикл разработки веб-приложения, включая фронтенд и бэкенд.
- Это проекты с открытым исходным кодом, который можно найти на GitHub.
- За Symfony, Laravel и Yii2 стоят многочисленные активные сообщества.
- Все три фреймворка поддерживают объектно-реляционное отображение (ORM). Поэтому эти инструменты удобно использовать в парадигме объектно-ориентированного программирования.
- Перечисленные фреймворки представляют собой надёжные и безопасные инструменты для создания веб-приложений.
Всё ещё не можете выбрать фреймворк? Вот тезисная информация, которая поможет определиться.
- есть LTS версии фреймворка;
- широкая функциональность из коробки;
- это самый стабильный фреймворк;
- есть готовые компоненты, что позволяет использовать при создании приложений модульный подход.
- поддерживает Ajax;
- обеспечивает быстродействие и производительность приложений;
- легко расширяемый фреймворк;
- есть встроенный обработчик ошибок;
- подходит для разработки веб-сервисов, построенных с учётом REST (RESTful web-service).
- самый популярный PHP-фреймворк;
- есть встроенный пакетный менеджер Composer;
- поддержка юнит-тестирования из коробки;
- большое количество пакетов для расширения функциональности.
Заключение
Symfony, Laravel и Yii2 можно назвать отличными инструментами для разработки веб-приложений. Автор оригинальной статьи предпочитает Laravel. В то же время он считает Symfony и Yii2 не менее мощными инструментами. Особенностью Symfony можно назвать развитое сообщество, а особенностью Yii — надёжность и безопасность.
Пожалуйста, напишите в комментариях, какой PHP-фреймворк выбираете вы.
Адаптированный перевод статьи Michael J. Garbade How to choose a PHP framework. Мнение автора оригинальной публикации может отличаться от мнения администрации и сотрудников Хекслета.
Я использую Zend Studio довольно часто для своих проектов Zend и ищу IDE, которая будет хорошо работать с Yii Framework.
ОТВЕТЫ
Ответ 1
Yii - это просто PHP. Таким образом, любая среда IDE для PHP будет работать нормально.
Я использую Eclipse. Если вы правильно включите фрейм, вы получите все подсказки и преимущества завершения кода. Мне нравится сквозная отладка и точки останова с Xdebug, поэтому я использую среду IDE вместо Emacs/Vim/Notepad ++, но они тоже будут работать очень хорошо.
Я не знаю, как интегрированная Zend Studio с Zend Framework, но она должна отлично работать для разработки Yii. Не делайте жизнь более сложной для себя, изучая новую среду. Сэкономьте время и прыгайте с Zend. Опять же: любая PHP 5 IDE будет отлично работать для Yii, лучший из которых вы наиболее знакомы!;)
Ответ 2
Ответ 3
Я рекомендую NetBeans, поскольку он дает вам автозаполнение переменных, а также комментарии PHPDOC и множество других полезных свойств.:)
Ответ 4
Я не уверен, что для работы с Yii есть IDE (например, Zend Studio поддерживает Zend Framework). На странице Yii Wiki вы можете найти способ настроить IDE для работы с Yii-каркасом лучше, и выбор там ограничен NetBeans, Eclipse, PHPStorm IDE (последний, кажется, не бесплатный). Вы можете взглянуть на эту страницу вики, а также на описание IDE и посмотреть, какая среда IDE предоставляет более простой способ кодирования, интеграции фреймов, отладки и т.д. И принимает ваше решение.
Ответ 5
Как сказано ранее, NetBeans хорош, но также, если вам нравится что-то более легкое, то отправляйтесь на vim или emacs.
Ответ 6
Я использую Nusphere phpEd, автозаполнение кода и навигацию с помощью ctrl + click по имени класса/метода отлично подходит для Yii.
Рекомендации по улучшению интеллекта IDE: Белый комментарий DocBlock с @var ClassName. Например:
Также, если вы включите Yii из внешнего каталога в свой проект, вы можете указать его в настройках проекта Nusphere phpEd.
Я предпочитаю phpEd, потому что он написан не на Java (быстро!), имеет отличный отладчик (не xdebug) + профайлер и приятный, эстетически красивый интерфейс.
Ответ 7
Мне очень нравится использовать Netbeans, он просто чувствует себя хорошо. Однако я обнаружил, что настройка отладки и модульного тестирования была немного больной. Недавно мне пришлось переустановить мой компьютер, поэтому я даю Zend Studio 8 попробовать, отладка и профилирование (я использую Zend Server), очень хорошие и не требуют настройки. Однако это не так хорошо, как Netbeans, не совсем как полированный, может быть. это трудно объяснить. У Zend есть очень хорошие функции и связи с Zend Server, однако некоторые другие параметры конфигурации очень сложны. Кажется, слишком много опций время от времени, в то время как Netbeans сохраняет это просто.
В идеальном мире Netbeans будет поставляться с отладкой, модульным тестированием и т.д., поскольку я хочу сделать сайты не настроенными серверами. Я думаю, что это часть проблемы с некоторым программным обеспечением с открытым исходным кодом/бесплатным, для этого требуется немного кривая обучения или готовность вручную настраивать настройки - это понятно, что они бесплатны. Но это также сдерживает их принятие большего потока. Извините, это было немного не по теме в конце!
Ответ 8
Может использовать eclipse с PDT + Yiiclipse. Yiiclise добавляет мастер для создания нового приложения yii (с инициализацией одного из демо-приложений). Но самой интересной особенностью является Навигация. Теперь можно легко перемещаться между методами визуализации и соответствующими представлениями, между методом виджетов и источником виджетов. Действительно полезно.
Читайте также: