Yii – это высокопроизводительный компонентный PHP фреймворк предназначенный для быстрой разработки современных Web приложений. Слово Yii (произносится `Йи``[ji:]`) в китайском языке означает «простой и развивающийся». Так же, Yii расшифровывается как акроним **Yes It Is**!
Yii – это высокопроизводительный компонентный PHP фреймворк, предназначенный для быстрой разработки современных веб
приложений. Слово Yii (произносится как `Йи``[ji:]`) в китайском языке означает «простой и эволюционирующий». Также Yii
может расшифровываться как акроним **Yes It Is**!
Для каких задач Yii больше всего подходит?
---------------------
Для каких задач больше всего подходит Yii?
------------------------------------------
Yii – это универсальный фреймворк для Web разработки и может быть задействован во всех типах Web приложений. Благодаря его модульной структуре и мощной поддержке кеширования Yii особенно подходит для разработки таких крупных проектов как порталы, форумы, CMS, сервисы электронной коммерции, RESTful-приложения и т.п.
Yii – это универсальный фреймворк и может быть задействован во всех типах веб приложений. Благодаря его компонентной
структуре и отличной поддержке кеширования, фреймворк особенно подходит для разработки таких крупных проектов как
порталы, форумы, CMS, магазины или RESTful-приложения.
Сравнение Yii с другими фреймворками
-------------------------------------------
- Как и многие другие PHP фреймворки, в Yii реализована модель MVC (Model-View-Controller). Предполагается, что Ваш код будет организован в соответствии с этой моделью.
- Yii придерживается философии простого и элегантного кода не пытаясь усложнять дизайн только ради того, что бы следовать каким-либо принципам проектирования.
- Yii представляет собой full-stack фреймворк включая такой проверенный и готовый к использованию функционал, как ActiveRecord для реляционных и NoSQL баз данных, поддержка разработки RESTful API, многоуровневое кеширование и т.д.
- Yii черезвычайно масштабируем. Вы можете настраивать и изменять практически любую часть основного кода. Используйте преимущества модульной архитектуры применяя существующие или разрабатывая свои собственные расширения.
------------------------------------
- Как и многие другие PHP фреймворки, для организации кода Yii использует модель MVC (Model-View-Controller).
- Yii придерживается философии простого и элегантного кода не пытаясь усложнять дизайн только ради следования каким-либо
шаблонам проектирования.
- Yii является full-stack фреймворком и включает в себя проверенные и хорошо зарекомендовавшие себя возможности, такие как
ActiveRecord для реляционных и NoSQL баз данных, поддержку REST API, многоуровневое кеширование и другие.
- Yii отлично расширяем. Вы можете настроить или заменить практически любую часть основного кода. Используя архитектуру
расшрений легко делиться кодом или использовать код сообщества.
- Одна из главных целей Yii – производительность.
Yii — не проект одного человека. Он поддерживается и развивается силами [небольшой команды][] и довольно большим сообществом разработчиков, которые им помогают. Разработчики фреймворка следят за тенденциями веб разработки и развитием других проектов. Наиболее интересные возможности и лучшие практики регулярно внедряются в фреймворк в виде простых и элегантных интерфейсов.
Yii — не проект одного человека. Он поддерживается и развивается [сильной командой][] и большим сообществом разработчиков,
которые ей помогают. Разработчики фреймворка следят за тенденциями веб разработки и развитием других проектов. Наиболее
подходящие возможности и лучшие практики регулярно внедряются в фреймворк в виде простых и элегантных интерфейсов.
На данный момент существует две основные ветки Yii: 1.1 и 2.0. Версия 1.1 является предыдущим поколением и находится в поддерживаемом состоянии. Версия 2.0 – это полностью переписанный Yii адоптированный к таким последним технологиям и протоколам как Composer, PSR, пространство имен, типажи (traits) и многие другие. Версия 2.0 представляет собой последнее поколение фреймворка и на ней будут сосредоточены основные усилия разработчиков несколько следующих лет. Данное руководство именно о версии 2.0.
----------
На данный момент существует две основные ветки Yii: 1.1 и 2.0. Ветка 1.1 является предыдущим поколением и находится
в состоянии поддержки. Версия 2.0 – это полностью переписанный Yii, использующий последние технологии и протоколы, такие
как Composer, PSR, пространства имен, типажи (traits) и многое другое. 2.0 — последнее поколение фреймворка. На этой версии
будут сосредоточены основные усилия несколько следующих лет. Данное руководство именно о версии 2.0.
Требования и предпосылки
------------------------------
Yii 2.0 requires PHP 5.4.0 or above. You can find more detailed requirements for individual features
by running the requirement checker included in every Yii release.
Требования к ПО и знаниям
-------------------------
Для работы Yii 2.0 необходим PHP 5.4.0 и выше. Детальные требования покажет и проверит соответствующий скрипт, который включен в Yii. Для использования Yii требуются базовые знания Объектно-Ориентированного программирования, т.к. Yii основан на ООП. Yii 2.0 так же использует такой новый функционал PHP как [пространство имен](http://www.php.net/manual/en/language.namespaces.php) и [типажи](http://www.php.net/manual/en/language.oop5.traits.php). Понимание этих концепций поможет быстрее разобраться в Yii 2.0.
Yii 2.0 требует PHP 5.4.0 и выше. Чтобы узнать требования для отдельных возможностей вы можете запустить скрипт проверки
требований, который поставляется с каждым релизом фреймворка.
Для разработки на Yii потребуется общее понимание ООП так как фреймворк полностью следует это парадигме. Также следует
изучить такие современные возможности PHP как [пространства имён](http://www.php.net/manual/ru/language.namespaces.php)
и [типажи](http://www.php.net/manual/ru/language.oop5.traits.php).
Вы можете установить Yii двумя способами: используя [Composer](http://getcomposer.org/) или скачав архив с фреймворком.
Первый способ предпочтительнее т.к. позволяет установить новые [расширения](structure-extensions.md)
Вы можете установить Yii двумя способами: используя [Composer](http://getcomposer.org/) или скачав архив.
Первый способ предпочтительнее так как позволяет установить новые [расширения](structure-extensions.md)
или обновить Yii одной командой.
Установка при помощи Composer <a name="installing-via-composer"></a>
-----------------------
Если Composer еще не установлен это просто сделать по инструкции на
Если Composer еще не установлен это можно сделать по инструкции на
[getcomposer.org](https://getcomposer.org/download/), или одним из нижеперечисленных способов:
* на Linux или Mac, используйте следующую команду:
...
...
@@ -20,21 +20,22 @@
```
* на Windows, скачайте и запустите [Composer-Setup.exe](https://getcomposer.org/Composer-Setup.exe).
Вы можете обращаться к документации [Composer Documentation](https://getcomposer.org/doc/) в случае возникновения проблем или если будет необходима более детальная информация.
В случае возникновения проблем или если вам необходима дополнительная информация, обращайтесь
к [документации Composer](https://getcomposer.org/doc/) .
После установки Composer можно устанавливать Yii. Запуститие команду :
После установки Composer устанавливать Yii можно запуститив следующую команду в папке доступной через веб:
Обратите внимание: не используйте экспериментальную версию Yii в продакшн т.к. данный релиз не гарантирует стабильной работы.
Стоит отметить, что нестабилную версию Yii нельзя использовать на рабочем сервере.
Установка из архива <a name="installing-from-archive-file"></a>
...
...
@@ -49,27 +50,30 @@ composer create-project --prefer-dist --stability=dev yiisoft/yii2-app-basic bas
Другие опции установки <a name="other-installation-options"></a>
--------------------------
Ниже приведены инструкции, которые покажут как установить Yii в виде базового приложения готового к работе.
Выше приведены инструкции по установке Yii в виде базового приложения готового к работе.
Это отличный вариант для небольших проектов или для тех, кто только начинает изучать Yii.
Есть два основных варианта такой установки:
* Если Вам нужен только сам фреймворк и Вы хотели бы создать приложение "с чистого листа" воспользуйтесь инструкцией [простой шаблон приложения](tutorial-start-from-scratch.md).
* Если хотите начать с более продвинутого приложения которое поддерживает командную среду разработки и разделено на несколько слоев (frontend/backend) используйте [продвинутый шаблон приложения](tutorial-advanced-app.md).
* Если вам нужен только сам фреймворк и вы хотели бы создать приложение с нуля, воспользуйтесь инструкцией, описанной в
разделе «[Создание приложения с нуля](tutorial-start-from-scratch.md)».
* Если хотите начать с более продвинутого приложения, хорошо подходящего для работы в команде, используйте
Проверка установки <a name="verifying-installation"></a>
----------------------
После установки приложения можно зайти браузером на сервер, где происходила установка Yii приложения. Если Вы, по примеру выше, развернули приложение в директории `basic` в корне (DocumentRoot) вашего Web сервера, то URL доступа к точке входа в приложение будет следующим:
Если вы установили приложение в директорию `basic` в корневой директории вашего веб сервера и имя сервера `hostname`,
запустить приложение можно открыв следующий URL через браузер:
```
http://hostname/basic/web/index.php
```
![Successful Installation of Yii](images/start-app-installed.png)
В результате, Вы должны увидеть страницу приветствия "Congratulations!". Если нет - проверьте в первую очередь требования и зависимости Yii одним из способов:
Вы должны увидеть страницу приветствия «Congratulations!». Если нет — проверьте требования Yii одним из способов:
* Браузером перейдите по адресу `http://hostname/basic/requirements.php`
Для корректной работы фреймворка Вам нужно настроить PHP в соответствии с требованиями Yii приведенными в этом скрипте.
Самое важное - PHP версии 5.4 и выше. Так же, необходимо установить [PDO PHP Extension](http://www.php.net/manual/en/pdo.installation.php) и соответствующий драйвер
(Например, `pdo_mysql` для MySQL), если Вы планируете использовать базы данных в своем приложении.
Для корректной работы фреймворка вам необходима установка PHP, соответствующая его минимальным требованиям. Основное
требование — PHP версии 5.4 и выше. Если ваше приложение работает с базой данных, необходимо установить
[расширение PHP PDO](http://www.php.net/manual/ru/pdo.installation.php) и соответствующий драйвер
(например, `pdo_mysql` для MySQL).
Настройка Web сервера <a name="configuring-web-servers"></a>
> Замечание: можете пропустить этот подраздел если Вы лишь тестируете приложение и не разворачиваете его на продакшн сервере.
> Информация: можете пропустить этот подраздел если вы только начали знакомиться с фреймворком и пока не разворачиваете
его на рабочем сервере.
Приложение, установленное по инструкциям данного раздела находится в рабочем состоянии сразу же после установки как с Web сервером [Apache](http://httpd.apache.org/), так и с [Nginx HTTP server](http://nginx.org/), как в окружении Windows, так и в Linux.
Приложение, установленное по инструкциям, приведённым выше, будет работать сразу как с [Apache](http://httpd.apache.org/),
так и с [Nginx](http://nginx.org/) под Windows и Linux.
На рабочем сервере Вам наверняка захочется изменить URL путь к приложению на более удобный, такой как `http://hostname/index.php` вместо `http://hostname/basic/web/index.php`. Для этого лишь нужно изменить корневую директорию в настройках Web сервера так, что бы та указывала на `basic/web`. Так же, можно спрятать `index.php` из URL строки, подробности описаны в разделе [Разбор и генерация URL](runtime-url-handling.md).
В данном подразделе мы увидим как настроить Apache и Nginx соответствующим образом.
На рабочем сервере вам наверняка захочется изменить URL приложения с `http://hostname/basic/web/index.php`
на `http://hostname/index.php`. Для этого необходимо изменить корневую директорию в настройках веб сервера так, чтобы та
указывала на `basic/web`. Дополнительно можно спрятать `index.php` следуя описанию в разделе «[Разбор и генерация URL](runtime-url-handling.md)».
Далее будет показано как настроить Apache и Nginx.
> Замечание: Устанавливая `basic/web` корневой директорией Web сервера Вы защищаете от нежелательного доступа через Web программную часть приложения и данные, находящиеся на одном уровне с `basic/web`. Такие настройки делают Ваш сервер более защищенным.
> Информация: Устанавливая `basic/web` корневой директорией веб сервера вы защищаете от нежелательного доступа код и данные,
находящиеся на одном уровне с `basic/web`. Это делает приложение более защищенным.
> Замечание: Если Вы работаете на хостинге где нет доступа к настройкам Web сервера, то можно настроить под себя структуру приложения как это описано в разделе [Работа на Shared хостинге](tutorial-shared-hosting.md).
> Информация: Если приложение работает на хостинге где нет доступа к настройкам веб сервера, то можно изменить структуру
приложения как описано в разделе «[Работа на Shared хостинге](tutorial-shared-hosting.md)».
Добавьте следующую конфигурацию в `httpd.conf` Web сервера Apache или в конфигурационный файл виртуального сервера. Не забудьте заменить `path/to/basic/web` на свой корректный путь к `basic/web`.
Добавьте следующее в `httpd.conf` Apache или в конфигурационный файл виртуального хоста. Не забудьте заменить
`path/to/basic/web` на корректный путь к `basic/web`.