Alexander Makarov
10 years ago
2 changed files with 208 additions and 0 deletions
@ -0,0 +1,39 @@
|
||||
Что такое Yii? |
||||
=========== |
||||
|
||||
Yii – это высокопроизводительный компонентный PHP фреймворк предназначенный для быстрой разработки современных Web приложений. Слово Yii (произносится `Йи` `[ji:]`) в китайском языке означает «простой и развивающийся». Так же, Yii расшифровывается как акроним **Yes It Is**! |
||||
|
||||
|
||||
Для каких задач Yii больше всего подходит? |
||||
--------------------- |
||||
|
||||
Yii – это универсальный фреймворк для Web разработки и может быть задействован во всех типах Web приложений. Благодаря его модульной структуре и мощной поддержке кеширования Yii особенно подходит для разработки таких крупных проектов как порталы, форумы, CMS, сервисы электронной коммерции, RESTful-приложения и т.п. |
||||
|
||||
|
||||
Сравнение Yii с другими фреймворками |
||||
------------------------------------------- |
||||
|
||||
- Как и многие другие PHP фреймворки, в Yii реализована модель MVC (Model-View-Controller). Предполагается, что Ваш код будет организован в соответствии с этой моделью. |
||||
- Yii придерживается философии простого и элегантного кода не пытаясь усложнять дизайн только ради того, что бы следовать каким-либо принципам проектирования. |
||||
- Yii представляет собой full-stack фреймворк включая такой проверенный и готовый к использованию функционал, как ActiveRecord для реляционных и NoSQL баз данных, поддержка разработки RESTful API, многоуровневое кеширование и т.д. |
||||
- Yii черезвычайно масштабируем. Вы можете настраивать и изменять практически любую часть основного кода. Используйте преимущества модульной архитектуры применяя существующие или разрабатывая свои собственные расширения. |
||||
- Одна из главных целей Yii – производительность. |
||||
|
||||
Yii — не проект одного человека. Он поддерживается и развивается силами [небольшой команды][] и довольно большим сообществом разработчиков, которые им помогают. Разработчики фреймворка следят за тенденциями веб разработки и развитием других проектов. Наиболее интересные возможности и лучшие практики регулярно внедряются в фреймворк в виде простых и элегантных интерфейсов. |
||||
|
||||
[небольшой команды]: http://www.yiiframework.com/about/ |
||||
|
||||
Версии Yii |
||||
------------ |
||||
|
||||
На данный момент существует две основные ветки 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. |
||||
|
@ -0,0 +1,169 @@
|
||||
Установка Yii |
||||
============== |
||||
|
||||
Вы можете установить Yii двумя способами: используя [Composer](http://getcomposer.org/) или скачав архив с фреймворком. |
||||
Первый способ предпочтительнее т.к. позволяет установить новые [расширения](structure-extensions.md) |
||||
или обновить Yii одной командой. |
||||
|
||||
|
||||
Установка при помощи Composer <a name="installing-via-composer"></a> |
||||
----------------------- |
||||
|
||||
Если Composer еще не установлен это просто сделать по инструкции на |
||||
[getcomposer.org](https://getcomposer.org/download/), или одним из нижеперечисленных способов: |
||||
|
||||
* на Linux или Mac, используйте следующую команду: |
||||
|
||||
``` |
||||
curl -s http://getcomposer.org/installer | php |
||||
mv composer.phar /usr/local/bin/composer |
||||
``` |
||||
* на Windows, скачайте и запустите [Composer-Setup.exe](https://getcomposer.org/Composer-Setup.exe). |
||||
|
||||
Вы можете обращаться к документации [Composer Documentation](https://getcomposer.org/doc/) в случае возникновения проблем или если будет необходима более детальная информация. |
||||
|
||||
После установки Composer можно устанавливать Yii. Запуститие команду : |
||||
|
||||
``` |
||||
composer create-project --prefer-dist yiisoft/yii2-app-basic basic |
||||
``` |
||||
|
||||
в папке доступной через Web. Composer установит Yii (шаблонное приложение basic) в папку `basic`. |
||||
|
||||
> Совет: Если хотите установить последнюю (экспериментальную) версию Yii, Вы можете добавить ключ `stability`: |
||||
``` |
||||
composer create-project --prefer-dist --stability=dev yiisoft/yii2-app-basic basic |
||||
``` |
||||
Обратите внимание: не используйте экспериментальную версию Yii в продакшн т.к. данный релиз не гарантирует стабильной работы. |
||||
|
||||
|
||||
Установка из архива <a name="installing-from-archive-file"></a> |
||||
------------------------------- |
||||
|
||||
Установка Yii из архива состоит из двух шагов: |
||||
|
||||
1. Скачайте архив по адресу [yiiframework.com](http://www.yiiframework.com/download/yii2-basic); |
||||
2. Распакуйте скачанный архив в папку, доступную из Web. |
||||
|
||||
|
||||
Другие опции установки <a name="other-installation-options"></a> |
||||
-------------------------- |
||||
|
||||
Ниже приведены инструкции, которые покажут как установить Yii в виде базового приложения готового к работе. |
||||
Это отличный вариант для небольших проектов или для тех, кто только начинает изучать Yii. |
||||
|
||||
Есть два основных варианта такой установки: |
||||
|
||||
* Если Вам нужен только сам фреймворк и Вы хотели бы создать приложение "с чистого листа" воспользуйтесь инструкцией [простой шаблон приложения](tutorial-start-from-scratch.md). |
||||
* Если хотите начать с более продвинутого приложения которое поддерживает командную среду разработки и разделено на несколько слоев (frontend/backend) используйте [продвинутый шаблон приложения](tutorial-advanced-app.md). |
||||
|
||||
|
||||
Проверка установки <a name="verifying-installation"></a> |
||||
---------------------- |
||||
|
||||
После установки приложения можно зайти браузером на сервер, где происходила установка Yii приложения. Если Вы, по примеру выше, развернули приложение в директории `basic` в корне (DocumentRoot) вашего Web сервера, то URL доступа к точке входа в приложение будет следующим: |
||||
|
||||
``` |
||||
http://hostname/basic/web/index.php |
||||
``` |
||||
|
||||
![Successful Installation of Yii](images/start-app-installed.png) |
||||
|
||||
В результате, Вы должны увидеть страницу приветствия "Congratulations!". Если нет - проверьте в первую очередь требования и зависимости Yii одним из способов: |
||||
|
||||
* Браузером перейдите по адресу `http://hostname/basic/requirements.php` |
||||
* Или выполните команду в консоли: |
||||
|
||||
``` |
||||
cd basic |
||||
php requirements.php |
||||
``` |
||||
|
||||
Для корректной работы фреймворка Вам нужно настроить PHP в соответствии с требованиями Yii приведенными в этом скрипте. |
||||
Самое важное - PHP версии 5.4 и выше. Так же, необходимо установить [PDO PHP Extension](http://www.php.net/manual/en/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. |
||||
|
||||
На рабочем сервере Вам наверняка захочется изменить URL путь к приложению на более удобный, такой как `http://hostname/index.php` вместо `http://hostname/basic/web/index.php`. Для этого лишь нужно изменить корневую директорию в настройках Web сервера так, что бы та указывала на `basic/web`. Так же, можно спрятать `index.php` из URL строки, подробности описаны в разделе [Разбор и генерация URL](runtime-url-handling.md). |
||||
В данном подразделе мы увидим как настроить Apache и Nginx соответствующим образом. |
||||
|
||||
> Замечание: Устанавливая `basic/web` корневой директорией Web сервера Вы защищаете от нежелательного доступа через Web программную часть приложения и данные, находящиеся на одном уровне с `basic/web`. Такие настройки делают Ваш сервер более защищенным. |
||||
|
||||
> Замечание: Если Вы работаете на хостинге где нет доступа к настройкам Web сервера, то можно настроить под себя структуру приложения как это описано в разделе [Работа на Shared хостинге](tutorial-shared-hosting.md). |
||||
|
||||
|
||||
### Рекомендуемые настройки Apache <a name="recommended-apache-configuration"></a> |
||||
|
||||
Добавьте следующую конфигурацию в `httpd.conf` Web сервера Apache или в конфигурационный файл виртуального сервера. Не забудьте заменить `path/to/basic/web` на свой корректный путь к `basic/web`. |
||||
|
||||
``` |
||||
# Устанавливаем корневой директорией "basic/web" |
||||
DocumentRoot "path/to/basic/web" |
||||
|
||||
<Directory "path/to/basic/web"> |
||||
RewriteEngine on |
||||
|
||||
# Если запрашиваемая в URL директория или файл сущесвуют обращаемся к ним напрямую |
||||
RewriteCond %{REQUEST_FILENAME} !-f |
||||
RewriteCond %{REQUEST_FILENAME} !-d |
||||
# Если нет - перенаправляем запрос на index.php |
||||
RewriteRule . index.php |
||||
|
||||
# ...прочие настройки... |
||||
</Directory> |
||||
``` |
||||
|
||||
|
||||
### Рекомендуемые параметры для Nginx <a name="recommended-nginx-configuration"></a> |
||||
|
||||
PHP должен быть установлен как [FPM SAPI](http://php.net/install.fpm) для [Nginx](http://wiki.nginx.org/). |
||||
Используйте следующие параметры Nginx и не забудьте заменить `path/to/basic/web` на свой корректный путь к `basic/web`. |
||||
|
||||
``` |
||||
server { |
||||
charset utf-8; |
||||
client_max_body_size 128M; |
||||
|
||||
listen 80; ## listen for ipv4 |
||||
#listen [::]:80 default_server ipv6only=on; ## listen for ipv6 |
||||
|
||||
server_name mysite.local; |
||||
root /path/to/basic/web; |
||||
index index.php; |
||||
|
||||
access_log /path/to/project/log/access.log main; |
||||
error_log /path/to/project/log/error.log; |
||||
|
||||
location / { |
||||
# Перенаправляем все запросы к несуществующим директориям и файлам к index.php |
||||
try_files $uri $uri/ /index.php?$args; |
||||
} |
||||
|
||||
# раскомментируйте строки ниже во избежание обработки Yii обращений к несуществующим статическим файлам |
||||
#location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ { |
||||
# try_files $uri =404; |
||||
#} |
||||
#error_page 404 /404.html; |
||||
|
||||
location ~ \.php$ { |
||||
include fastcgi.conf; |
||||
fastcgi_pass 127.0.0.1:9000; |
||||
#fastcgi_pass unix:/var/run/php5-fpm.sock; |
||||
} |
||||
|
||||
location ~ /\.(ht|svn|git) { |
||||
deny all; |
||||
} |
||||
} |
||||
``` |
||||
|
||||
Используя данную конфигурацию установите параметр `cgi.fix_pathinfo=0` в `php.ini` что бы предотвратить лишние системные вызовы `stat()`. |
||||
|
||||
Учтите, что используя HTTPS необходимо задавать `fastcgi_param HTTPS on;` что бы Yii мог корректно определять защищенное соединение. |
Loading…
Reference in new issue