[Из песочницы] Почему я выбрал Yii2
Перевод некоторых глав из книги Bill Keck. Yii 2 For Beginners.
Предисловие
Добро пожаловать в Yii2 для начинающих. Эта книга проведёт вас шаг за шагом сквозь установку и развёртывание, а затем программирование на сегодняшний день самом увлекательном фреймворке Yii2.
Yii2 поставляется в двух вариантах, basic и advanced, и может показаться неестественно, использовать для начинающих шаблон advanced(продвинутый), но этот шаблон, по иронии судьбы, облегчает работу с приложением, если оно использует модели, которые хранятся в базе данных. Современные веб-приложения нуждаются в этой функциональности и шаблон advanced имеет в своём распоряжении для этого готовые решения.
Другое большое преимущество у шаблона advanced, это то, что приложение делится на frontend(пользовательская часть) и backend(модуль управления), который дает исчерпывающий ответ на постоянно возникающий вопрос: «куда же поместить модуль управления?»
Я бы хотел не только ввести вас в удивительный мир php фреймворка, но и так, же дать вам точку опоры, включающую все, в чем нуждается надежное веб-приложение управляемое базой данных. Хотя advanced шаблон содержит чрезвычайно полезные возможности, в нем, конечно же, отсутствуют важные части, которые мы будем пополнять с помощью этой книги.
Цель — предоставить вам модель шаблона, которую вы сможете использовать для всех ваших будущих проектов.
Возможности
С инсталляцией advanced шаблона вы получите некоторые возможности веб-приложения, включающие в себя:
- предопределённую схему таблицы пользователей
- форму входа и регистрации пользователей
- функциональность восстановления забытого пароля
- разделённые области пользователей (frontend) и администраторов(backend)
- автоматическую генерацию кода для моделей, контроллеров и представлений
- встроенную интеграцию с Twitter Bootstrap и приоритетную верстку для мобильных устройств
- надежные виджеты и помощники для представления данных
Если вам что-то не понятно в этом списке, не волнуйтесь, мы раскроем их детально в дальнейшем. Только, знайте — это действительно изумительно, что делает Yii2 для вас. Но дело не в том, как велик тот или иной фреймворк, а в том, как вы все, же сможете это поддерживать и развивать в реальном приложении.
Для этого будем добавлять в приложение все, что в нем отсутствует из коробки:
- красивые усовершенствования пользовательского интерфейса подобно jquery календарю
- методы для зависимых моделей, которые облегчат отображения связанных данных
- методы для контроллеров, которые разграничивают доступ
- расширяемая структура данных, которые будут общими для всех ваших будущих приложений
- управление доступом на основе ролей (RBAC)
- ограничение содержания на основе типа пользователей, таких как «бесплатный» и «платный».
- социальный модуль, который позволит поделиться
- регистрация и вход с помощью Facebook
Это всё, вероятно потребуются для вашего приложения, не взирая, кого типа он будет. Поэтому если вы будете изучать Yii2 с помощь этой книги, вы будете в состоянии создать шаблон, который сможете расширять для всех ваших будущих приложений.
Эта книга идеальна для начинающих программистов, кто готов перейти на разработку с помощью фреймворка. Yii2 PHP фреймворк широко масштабируемый и расширяемый, со встроенными возможностями. Мы познакомим вас с этим удивительным фреймворком и объясним детально все, в чём вы будете нуждаться, чтобы знать, как создать и запустить. И вы полюбите Yii2!
Продвинутые PHP специалисты смогут стремительно пронестись сквозь книгу и будут в состоянии быстро создавать и запускать на феноменальном фреймворке Yii2. Что позволит не только сберечь им время на работе, но так, же использовать эффективные рычаги извлечения выгод от фреймворка с открытым кодом, имеющего цельное сообщество за собой.
Тем не менее, стиль изложения в книге рассчитан для начинающих. В книге много подробного описания, чтобы помочь людям, которые имеют небольшой опыт работы с PHP и ещё не могут реально перейти в продвинутое объектно-ориентированное программирование. Мы старались, несомненно, полностью объяснять, как работает фреймворк, как он использует ООП, чтобы создать интуитивный уровень разработки, который позволял бы программистам различного уровня достигать результата, к которому они стремятся.
В любом случае, изучение Yii2 даст вам опыт работы с ООП, с практическим результатом. Вы завершите изучение книги с работающим веб-приложением.
Что делает Yii2 фреймворк особенным?
Программисты должны сделать выбор, что будет лежать в основе программирования. Поэтому одно из самых больших решений, которое вы должны сделать как программист, а, может, скорее всего, решение вы будете делать, как часть команды программистов, использовать или нет фреймворк, и если да, то какой.
Что касается вопроса использования PHP фреймворк, есть так много преимуществ, чтобы поступить так, что это становится и ежу понятно.
Плюсы
Вот несколько очевидных преимуществ использования фреймворка, который:
— Использует стандартные способы решения задач, что уменьшает или устраняет запутанность кода.
— Сокращает время, затрачиваемое на рутинные задачи, такие как проверка форм и безопасность.
— Облегчает командную работу с помощью соблюдения стандартов.
— Облегчает поддержку кода с использованием общей архитектуры и методов.
— Имеет активное сообщество разработчиков, которые поддерживают фреймворк, обобщенные задачи и новые возможности.
Минусы
Существует пара недостатков использования фреймворка, которые следует отметить. Во-первых, весь код, который включает в себя фреймворк, создает нагрузку на сервер и это может стать реальной проблемой. К счастью, доступны варианты кэширование, которые позволяют снизить последствия перегрузки, и для корпоративных приложений, вы можете использовать нативный SQL, чтобы минимизировать время выполнения запроса. Поэтому проблема перегрузки сервера не должна остановить вас от использования фреймворка.
Другое дело, очевидно, когда вы работаете с фреймворком, то работаете с огромным количеством кода, который не вы писали и придётся потратить время, чтобы понять, как это все работает. Некоторые части кода могут быть довольно непонятны в зависимости от вашего уровня мастерства и опыта, поэтому не следует ожидать, что вам будет сразу все понятно. Это не произойдёт мгновенно.
Конечно же, вы знаете, что существует путь обучения, благодаря которому вы сейчас читаете эту книгу. И хотя это занимает время, чтобы разобраться с чужим кодом, что может быть мучительно больно, но куда больнее, написать собственную пользовательскую систему с нуля. Учитывая все обстоятельства, использование фреймворка для корпоративной разработки является разумным выбором.
Итак, самое простое — это понять, что использование фреймворка поможет вам разрабатывать более стройный и надежный проект, но теперь самое трудное. Вы должны решить, какой фреймворк использовать.
Почему я выбрал Yii2
Я не могу сказать какой фреймворк для вас лучший, что вам интересно и вам лично решать, но я могу немного рассказать о дороге, которая привела меня к Yii2. Это не было решением руководимым необходимостью найти легкий путь изучения PHP, это точно. В моей компании еще в 2012 году, я был в команде разработчиков, которые рассматривали различные фреймворки и должен был решить, какой из них использовать. В то время я даже не мечтал, что напишу книги об одном из них.
В любом случае, мы коллективно исследовали все, что могли найти из основных PHP-фреймворков. Я лично прочитал всю документацию и мы имели долгие инженерные дискуссии о том, что мы думали, что будет работать. Вы не представляете мое разочарование, когда я прочитал всю эту документацию и отошел от этого с чувством менее осведомленным, чем я прежде начал читать все это.
Однако наша команда программистов сделала предпочтение. Они чувствовали, что Yii 1.1.14 был лучшим выбором. Это была версия фреймворка, которая была доступна в то время, мы выбрали её. Поэтому команда приняла этот фреймворк и никогда не оглядывалась назад. Они полюбили её.
Я, с другой стороны, остался разочарованным. Так как я был только начинающим программистом, и действительно изо всех сил пытался этому научиться. Я не находил этот фреймворк очень интуитивным и понятным. Особенно после сравнения его с другими платформами, где старались все интегрировать красиво, а архитектура Yii казалась мне просто уродливой.
Я так расстроился в один прекрасный момент, что начал искать другой вариант.
Другие варианты
Я хотел найти красиво написанную документацию для нового фреймворка и запустить её мимо команды. Но всегда получал одинаковый ответ. Команда была довольна фреймворком Yii.
Они мне говорили, что может быть трудно её изучать, но она легка в использовании, как только поймете, как она работает. Поэтому я посвятил себя изучению выбранного командой фреймворка. Дело продвигалось медленно и езда была ухабистая. Я не получал удовольствия. Я прорабатывал главу 10 в книге по Yii 1.1.14, полагая, что никогда по-настоящему не смогу самостоятельно создать приложение менее чем за сто лет. Слишком много дорог, казалось, уходили в никуда.
Затем произошло чудо.
Появление Yii2
Я нашел Yii2 Альфа. Мне было любопытно увидеть, какие различия были в Yii2, по сравнению с бывшей 3 года на тот момент платформой. Так что я нырнул в неё и к моему глубокому и полному удивлению, я мгновенно получил с ней контакт. Я понимал структуры. Я мог бы написать код, который фактически работал!
Какое это было великое чувство. Я лично нашел, что yii 2 будет наиболее интуитивно понятной и элегантной из всех PHP-фреймворков, которые я изучал. У меня столько энтузиазма, что я хочу поделиться им, с каждым программистом которого знаю, и даже тех, кого я не знаю, что побудило меня написать эту книгу.
С помощью yii 2, даже будучи новичком, я смог поднять на ноги рабочий сайт, который имел управляемую базой данных модель пользователей, с пользовательской и администраторской частью. Прямо из коробки, я получил рабочую модель пользователей, с функцией восстановления забытого пароля, которая также интегрирована с начальной загрузки для мобильного, отзывчивого дизайна, без программирования вообще.
Как это здорово! Хотя я был начинающий программист, когда изучал PHP-фреймворки, я не имел опыта работы с базами данных и это одна из областей, на мой взгляд, где Yii2 действительно блещет.