yii что это такое
Что такое Yii
Yii — это высокоэффективный, основанный на компонентной структуре PHP-фреймворк для быстрой разработки крупных веб-приложений. Он позволяет максимально применить концепцию повторного использования кода и может существенно ускорить процесс веб-разработки. Название Yii (произносится как Yee или [ji:] ) означает простой (easy), эффективный (efficient) и расширяемый (extensible).
1. Требования ¶
Для запуска веб-приложений, построенных на Yii, вам понадобится веб-сервер с поддержкой PHP версии 5.1.0.
Для разработчиков, желающих использовать Yii, крайне полезным будет понимание концепции объектно-ориентированного программирования (OOП), так как Yii — это строго объектно-ориентированный фреймворк.
2. Для чего Yii будет лучшим выбором? ¶
Yii — это фреймворк для веб-программирования общего назначения, который может быть использован для разработки практически любых веб-приложений. Благодаря своей легковесности и наличию продвинутых средств кэширования, Yii особенно подходит для разработки приложений с большим потоком трафика, таких как порталы, форумы, системы управления контентом (CMS), системы электронной коммерции и др.
3. Yii в сравнении с другими фреймворками ¶
Подобно большинству других PHP-фреймворков, Yii — это MVC-фреймворк.
Превосходство Yii над другими фреймворками заключается в эффективности, широких возможностях и качественной документации. Yii изначально спроектирован очень тщательно для соответствия всем требованиям при разработке серьёзных веб-приложений. Yii не является ни побочным продуктом какого-либо проекта, ни сборкой сторонних решений. Он является результатом большого опыта авторов в разработке веб-приложений, а также их исследований наиболее популярных веб-фреймворков и приложений.
Основы Yii Framework для чайников
Yii Framework представляет собой один из лучших PHP-фреймворков, предназначенных для разработки больших веб-приложений. В цикле «Yii Framework для чайников» мы научимся разворачивать yii-приложение на сервере, узнаем как работать с фреймворком и познакомимся с основными возможностями, которые он предоставляет. Все это я постараюсь рассказать максимально просто и наглядно.
Развертка Yii-приложения
Для того, чтобы использовать Yii Framework необходимы:
При этом в папке сайта будет развернуто демонстрационное yii-приложение и выставлены требуемые права на папки и файлы.
Структура Yii-приложения
Рассмотрим папки, находящиеся в каталоге /srv/www/site.com/
Настройка Yii-приложения
Любые взаимодействия с пользователем в yii-приложении происходят через bootstrap-файл index.php
Большинство настроек находятся в файле /config/main.php. Файл конфигурации возвращает многомерный ассоциативный массив настроек, некоторые из которых по умолчанию предопределены.
Создание БД для будущего приложения
В качестве примера мы будем работать с базой данных, содержащей некоторое подобие хабра-комментариев и хабра-пользователей. Наглядно ее можно представить следующим образом:
SQL-запросы для создания соответствующих таблиц:
Обзор фреймворка Yii
Общее
Так как PHP один из самых популярных языков программирования на сегодняшний день, то и фреймворков, написанных на нем, немало: Laravel, CakePHP, Symfony, CodeIgniter и многие другие. Yii можно смело назвать одним из лидирующих по популярности фреймворком.
Фреймворк реализует парадигму MVC и подходит для разработки приложений любой сложности, в особенности если речь идет о крупном проекте: форуме, интернет-магазине, портале и так далее.
Сильные стороны Yii
Важно, что Yii не только распространяется бесплатно, но и выходит под лицензией BSD. То есть его можно использовать в коммерческих целях, встраивать в проприетарные продукты.
Yii имеет хорошую документацию. Она долгое время была англоязычной, но силами русскоязычных пользователей перевод все-таки увидел свет и теперь доступен на сайте проекта.
Тем не менее Yii нельзя назвать проектом одного человека, так как сейчас фреймворк поддерживает и развивает большая команда. Она следит за основными IT-тенденциями и внедряет их в проект.
Yii имеет хороший генератор кода. Он сгенерирует исходный код, то есть структуру приложения, в зависимости от параметров, которые вы укажете.
Что еще стоит знать об этом фреймворке? Yii имеет гибкий механизм кэширования и поддерживает несколько хранилищ для кэширования переменных, участков кода и так далее.
Если вы не найдете в Yii нужные вам классы, то их можно будет подключить как расширения из других фреймворков.
Разработчики Yii уделяют много внимания безопасности фреймворка, поэтому в Yii предусмотрены меры против SQL-инъекций, межсайтового скриптинга (XSS), фальсификации файлов cookie и других атак на веб-приложения.
Версии
С чего начать изучение
Заключение
Что такое Yii? ¶
Yii – это высокопроизводительный компонентный PHP фреймворк, предназначенный для быстрой разработки современных веб-приложений. Слово Yii (произносится как Йи [ji:] ) в китайском языке означает «простой и эволюционирующий». Также Yii может расшифровываться как акроним Yes It Is!
Для каких задач больше всего подходит Yii? ¶
Yii – это универсальный фреймворк и может быть задействован во всех типах веб-приложений. Благодаря его компонентной структуре и отличной поддержке кэширования, фреймворк особенно подходит для разработки таких крупных проектов, как порталы, форумы, CMS, магазины или RESTful-приложения.
Сравнение Yii с другими фреймворками ¶
Если вы уже знакомы с другими фреймворками, вам наверняка будет интересно сравнить их с Yii.
Yii — не проект одного человека. Он поддерживается и развивается сильной командой и большим сообществом разработчиков, которые ей помогают. Авторы фреймворка следят за тенденциями веб-разработки и развитием других проектов. Наиболее подходящие возможности и лучшие практики регулярно внедряются в фреймворк в виде простых и элегантных интерфейсов.
Версии Yii ¶
На данный момент существует две основные ветки Yii: 1.1 и 2.0. Ветка 1.1 является предыдущим поколением и находится в состоянии поддержки. Версия 2.0 – это полностью переписанный Yii, использующий последние технологии и протоколы, такие как Composer, PSR, пространства имен, трейты и многое другое. 2.0 — текущее поколение фреймворка. На этой версии будут сосредоточены основные усилия несколько следующих лет. Данное руководство именно о версии 2.0.
Требования к ПО и знаниям ¶
Yii 2.0 требует PHP 5.4.0 и выше и наилучшим образом работает на последней версии PHP 7. Чтобы узнать требования для отдельных возможностей, вы можете запустить скрипт проверки требований, который поставляется с каждым релизом фреймворка.
Для разработки на Yii потребуется общее понимание ООП, так как фреймворк полностью следует этой парадигме. Также стоит изучить такие современные возможности PHP как пространства имён и трейты. Понимание этих концепций позволит вам более легко освоиться c Yii 2.0.
Почему я выбрал Yii2
Перевод некоторых глав из книги Bill Keck. Yii 2 For Beginners.
Предисловие
Добро пожаловать в Yii2 для начинающих. Эта книга проведёт вас шаг за шагом сквозь установку и развёртывание, а затем программирование на сегодняшний день самом увлекательном фреймворке Yii2.
Yii2 поставляется в двух вариантах, basic и advanced, и может показаться неестественно, использовать для начинающих шаблон advanced(продвинутый), но этот шаблон, по иронии судьбы, облегчает работу с приложением, если оно использует модели, которые хранятся в базе данных. Современные веб-приложения нуждаются в этой функциональности и шаблон advanced имеет в своём распоряжении для этого готовые решения.
Другое большое преимущество у шаблона advanced, это то, что приложение делится на frontend(пользовательская часть) и backend(модуль управления), который дает исчерпывающий ответ на постоянно возникающий вопрос: «куда же поместить модуль управления?»
Я бы хотел не только ввести вас в удивительный мир php фреймворка, но и так, же дать вам точку опоры, включающую все, в чем нуждается надежное веб-приложение управляемое базой данных. Хотя advanced шаблон содержит чрезвычайно полезные возможности, в нем, конечно же, отсутствуют важные части, которые мы будем пополнять с помощью этой книги.
Цель — предоставить вам модель шаблона, которую вы сможете использовать для всех ваших будущих проектов.
Возможности
С инсталляцией advanced шаблона вы получите некоторые возможности веб-приложения, включающие в себя:
Для этого будем добавлять в приложение все, что в нем отсутствует из коробки:
Эта книга идеальна для начинающих программистов, кто готов перейти на разработку с помощью фреймворка. 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-фреймворков, которые я изучал. У меня столько энтузиазма, что я хочу поделиться им, с каждым программистом которого знаю, и даже тех, кого я не знаю, что побудило меня написать эту книгу.
С помощью Yii2, даже будучи новичком, я смог поднять на ноги рабочий сайт, который имел управляемую базой данных модель пользователей, с пользовательской и администраторской частью. Прямо из коробки, я получил рабочую модель пользователей, с функцией восстановления забытого пароля, которая также интегрирована с начальной загрузки для мобильного, отзывчивого дизайна, без программирования вообще.
Как это здорово! Хотя я был начинающий программист, когда изучал PHP-фреймворки, я не имел опыта работы с базами данных и это одна из областей, на мой взгляд, где Yii2 действительно блещет.