Commit 6bca1817 by Alexander Makarov

Edited Russian guide translation

parent 789091d5
...@@ -9,18 +9,18 @@ All Rights Reserved. ...@@ -9,18 +9,18 @@ All Rights Reserved.
Введение Введение
------------ --------
* [О Yii](intro-yii.md) * [О Yii](intro-yii.md)
* [Обновление с версии 1.1](intro-upgrade-from-v1.md) * [Обновление с версии 1.1](intro-upgrade-from-v1.md)
Getting Started Первое знакомство
--------------- -----------------
* [Установка Yii](start-installation.md) * [Установка Yii](start-installation.md)
* [Запуск приложения](start-workflow.md) * [Запуск приложения](start-workflow.md)
* [Говорим "привет"](start-hello.md) * [Говорим «привет»](start-hello.md)
* [Работа с формами](start-forms.md) * [Работа с формами](start-forms.md)
* [Работа с базами данных](start-databases.md) * [Работа с базами данных](start-databases.md)
* [Генерация кода при помощи Gii](start-gii.md) * [Генерация кода при помощи Gii](start-gii.md)
......
Что такое Yii? Что такое Yii?
=========== ==============
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 с другими фреймворками Сравнение Yii с другими фреймворками
------------------------------------------- ------------------------------------
- Как и многие другие PHP фреймворки, в Yii реализована модель MVC (Model-View-Controller). Предполагается, что Ваш код будет организован в соответствии с этой моделью. - Как и многие другие PHP фреймворки, для организации кода Yii использует модель MVC (Model-View-Controller).
- Yii придерживается философии простого и элегантного кода не пытаясь усложнять дизайн только ради того, что бы следовать каким-либо принципам проектирования. - Yii придерживается философии простого и элегантного кода не пытаясь усложнять дизайн только ради следования каким-либо
- Yii представляет собой full-stack фреймворк включая такой проверенный и готовый к использованию функционал, как ActiveRecord для реляционных и NoSQL баз данных, поддержка разработки RESTful API, многоуровневое кеширование и т.д. шаблонам проектирования.
- Yii черезвычайно масштабируем. Вы можете настраивать и изменять практически любую часть основного кода. Используйте преимущества модульной архитектуры применяя существующие или разрабатывая свои собственные расширения. - Yii является full-stack фреймворком и включает в себя проверенные и хорошо зарекомендовавшие себя возможности, такие как
ActiveRecord для реляционных и NoSQL баз данных, поддержку REST API, многоуровневое кеширование и другие.
- Yii отлично расширяем. Вы можете настроить или заменить практически любую часть основного кода. Используя архитектуру
расшрений легко делиться кодом или использовать код сообщества.
- Одна из главных целей Yii – производительность. - Одна из главных целей Yii – производительность.
Yii — не проект одного человека. Он поддерживается и развивается силами [небольшой команды][] и довольно большим сообществом разработчиков, которые им помогают. Разработчики фреймворка следят за тенденциями веб разработки и развитием других проектов. Наиболее интересные возможности и лучшие практики регулярно внедряются в фреймворк в виде простых и элегантных интерфейсов. Yii — не проект одного человека. Он поддерживается и развивается [сильной командой][] и большим сообществом разработчиков,
которые ей помогают. Разработчики фреймворка следят за тенденциями веб разработки и развитием других проектов. Наиболее
подходящие возможности и лучшие практики регулярно внедряются в фреймворк в виде простых и элегантных интерфейсов.
[небольшой команды]: http://www.yiiframework.com/about/ [сильной командой]: http://www.yiiframework.com/about/
Версии 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 Установка Yii
============== ==============
Вы можете установить Yii двумя способами: используя [Composer](http://getcomposer.org/) или скачав архив с фреймворком. Вы можете установить Yii двумя способами: используя [Composer](http://getcomposer.org/) или скачав архив.
Первый способ предпочтительнее т.к. позволяет установить новые [расширения](structure-extensions.md) Первый способ предпочтительнее так как позволяет установить новые [расширения](structure-extensions.md)
или обновить Yii одной командой. или обновить Yii одной командой.
Установка при помощи Composer <a name="installing-via-composer"></a> Установка при помощи Composer <a name="installing-via-composer"></a>
----------------------- -----------------------
Если Composer еще не установлен это просто сделать по инструкции на Если Composer еще не установлен это можно сделать по инструкции на
[getcomposer.org](https://getcomposer.org/download/), или одним из нижеперечисленных способов: [getcomposer.org](https://getcomposer.org/download/), или одним из нижеперечисленных способов:
* на Linux или Mac, используйте следующую команду: * на Linux или Mac, используйте следующую команду:
...@@ -20,21 +20,22 @@ ...@@ -20,21 +20,22 @@
``` ```
* на Windows, скачайте и запустите [Composer-Setup.exe](https://getcomposer.org/Composer-Setup.exe). * на 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 можно запуститив следующую команду в папке доступной через веб:
``` ```
composer create-project --prefer-dist yiisoft/yii2-app-basic basic composer create-project --prefer-dist yiisoft/yii2-app-basic basic
``` ```
в папке доступной через Web. Composer установит Yii (шаблонное приложение basic) в папку `basic`. Composer установит Yii (шаблонное приложение basic) в папку `basic`.
> Совет: Если хотите установить последнюю (экспериментальную) версию Yii, Вы можете добавить ключ `stability`: > **Подсказка**: Если хотите установить последнюю нестабильную версию Yii, вы можете добавить ключ `stability`:
``` ```
composer create-project --prefer-dist --stability=dev yiisoft/yii2-app-basic basic composer create-project --prefer-dist --stability=dev yiisoft/yii2-app-basic basic
``` ```
Обратите внимание: не используйте экспериментальную версию Yii в продакшн т.к. данный релиз не гарантирует стабильной работы. Стоит отметить, что нестабилную версию Yii нельзя использовать на рабочем сервере.
Установка из архива <a name="installing-from-archive-file"></a> Установка из архива <a name="installing-from-archive-file"></a>
...@@ -49,27 +50,30 @@ composer create-project --prefer-dist --stability=dev yiisoft/yii2-app-basic bas ...@@ -49,27 +50,30 @@ composer create-project --prefer-dist --stability=dev yiisoft/yii2-app-basic bas
Другие опции установки <a name="other-installation-options"></a> Другие опции установки <a name="other-installation-options"></a>
-------------------------- --------------------------
Ниже приведены инструкции, которые покажут как установить Yii в виде базового приложения готового к работе. Выше приведены инструкции по установке Yii в виде базового приложения готового к работе.
Это отличный вариант для небольших проектов или для тех, кто только начинает изучать Yii. Это отличный вариант для небольших проектов или для тех, кто только начинает изучать Yii.
Есть два основных варианта такой установки: Есть два основных варианта такой установки:
* Если Вам нужен только сам фреймворк и Вы хотели бы создать приложение "с чистого листа" воспользуйтесь инструкцией [простой шаблон приложения](tutorial-start-from-scratch.md). * Если вам нужен только сам фреймворк и вы хотели бы создать приложение с нуля, воспользуйтесь инструкцией, описанной в
* Если хотите начать с более продвинутого приложения которое поддерживает командную среду разработки и разделено на несколько слоев (frontend/backend) используйте [продвинутый шаблон приложения](tutorial-advanced-app.md). разделе «[Создание приложения с нуля](tutorial-start-from-scratch.md)».
* Если хотите начать с более продвинутого приложения, хорошо подходящего для работы в команде, используйте
[шаблон приложения advanced](tutorial-advanced-app.md).
Проверка установки <a name="verifying-installation"></a> Проверка установки <a name="verifying-installation"></a>
---------------------- ----------------------
После установки приложения можно зайти браузером на сервер, где происходила установка Yii приложения. Если Вы, по примеру выше, развернули приложение в директории `basic` в корне (DocumentRoot) вашего Web сервера, то URL доступа к точке входа в приложение будет следующим: Если вы установили приложение в директорию `basic` в корневой директории вашего веб сервера и имя сервера `hostname`,
запустить приложение можно открыв следующий URL через браузер:
``` ```
http://hostname/basic/web/index.php http://hostname/basic/web/index.php
``` ```
![Successful Installation of Yii](images/start-app-installed.png) ![Успешно установленный Yii](images/start-app-installed.png)
В результате, Вы должны увидеть страницу приветствия "Congratulations!". Если нет - проверьте в первую очередь требования и зависимости Yii одним из способов: Вы должны увидеть страницу приветствия «Congratulations!». Если нет — проверьте требования Yii одним из способов:
* Браузером перейдите по адресу `http://hostname/basic/requirements.php` * Браузером перейдите по адресу `http://hostname/basic/requirements.php`
* Или выполните команду в консоли: * Или выполните команду в консоли:
...@@ -79,29 +83,37 @@ http://hostname/basic/web/index.php ...@@ -79,29 +83,37 @@ http://hostname/basic/web/index.php
php requirements.php php requirements.php
``` ```
Для корректной работы фреймворка Вам нужно настроить PHP в соответствии с требованиями Yii приведенными в этом скрипте. Для корректной работы фреймворка вам необходима установка PHP, соответствующая его минимальным требованиям. Основное
Самое важное - PHP версии 5.4 и выше. Так же, необходимо установить [PDO PHP Extension](http://www.php.net/manual/en/pdo.installation.php) и соответствующий драйвер требование — PHP версии 5.4 и выше. Если ваше приложение работает с базой данных, необходимо установить
(Например, `pdo_mysql` для MySQL), если Вы планируете использовать базы данных в своем приложении. [расширение PHP PDO](http://www.php.net/manual/ru/pdo.installation.php) и соответствующий драйвер
(например, `pdo_mysql` для MySQL).
Настройка Web сервера <a name="configuring-web-servers"></a> Настройка веб сервера <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). На рабочем сервере вам наверняка захочется изменить URL приложения с `http://hostname/basic/web/index.php`
В данном подразделе мы увидим как настроить Apache и Nginx соответствующим образом. на `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)».
### Рекомендуемые настройки Apache <a name="recommended-apache-configuration"></a> ### Рекомендуемые настройки Apache <a name="recommended-apache-configuration"></a>
Добавьте следующую конфигурацию в `httpd.conf` Web сервера Apache или в конфигурационный файл виртуального сервера. Не забудьте заменить `path/to/basic/web` на свой корректный путь к `basic/web`. Добавьте следующее в `httpd.conf` Apache или в конфигурационный файл виртуального хоста. Не забудьте заменить
`path/to/basic/web` на корректный путь к `basic/web`.
``` ```
# Устанавливаем корневой директорией "basic/web" # Устанавливаем корневой директорией "basic/web"
...@@ -121,10 +133,10 @@ DocumentRoot "path/to/basic/web" ...@@ -121,10 +133,10 @@ DocumentRoot "path/to/basic/web"
``` ```
### Рекомендуемые параметры для Nginx <a name="recommended-nginx-configuration"></a> ### Рекомендуемые настройки Nginx <a name="recommended-nginx-configuration"></a>
PHP должен быть установлен как [FPM SAPI](http://php.net/install.fpm) для [Nginx](http://wiki.nginx.org/). PHP должен быть установлен как [FPM SAPI](http://php.net/manual/ru/install.fpm.php) для [Nginx](http://wiki.nginx.org/).
Используйте следующие параметры Nginx и не забудьте заменить `path/to/basic/web` на свой корректный путь к `basic/web`. Используйте следующие параметры Nginx и не забудьте заменить `path/to/basic/web` на корректный путь к `basic/web`.
``` ```
server { server {
...@@ -132,7 +144,7 @@ server { ...@@ -132,7 +144,7 @@ server {
client_max_body_size 128M; client_max_body_size 128M;
listen 80; ## listen for ipv4 listen 80; ## listen for ipv4
#listen [::]:80 default_server ipv6only=on; ## listen for ipv6 #listen [::]:80 default_server ipv6only=on; ## слушаем ipv6
server_name mysite.local; server_name mysite.local;
root /path/to/basic/web; root /path/to/basic/web;
...@@ -142,7 +154,7 @@ server { ...@@ -142,7 +154,7 @@ server {
error_log /path/to/project/log/error.log; error_log /path/to/project/log/error.log;
location / { location / {
# Перенаправляем все запросы к несуществующим директориям и файлам к index.php # Перенаправляем все запросы к несуществующим директориям и файлам на index.php
try_files $uri $uri/ /index.php?$args; try_files $uri $uri/ /index.php?$args;
} }
...@@ -164,6 +176,8 @@ server { ...@@ -164,6 +176,8 @@ server {
} }
``` ```
Используя данную конфигурацию установите параметр `cgi.fix_pathinfo=0` в `php.ini` что бы предотвратить лишние системные вызовы `stat()`. Используя данную конфигурацию установите `cgi.fix_pathinfo=0` в `php.ini` чтобы предотвратить лишние системные
вызовы `stat()`.
Учтите, что используя HTTPS необходимо задавать `fastcgi_param HTTPS on;` что бы Yii мог корректно определять защищенное соединение. Учтите, что используя HTTPS необходимо задавать `fastcgi_param HTTPS on;` чтобы Yii мог корректно определять защищенное
соединение.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment