Содержание
Полное руководство по Yii 2.0
Введение
- О Yii
- Обновление с версии 1.1
Первое знакомство
- Установка Yii
- Запуск приложения
- Говорим «привет»
- Работа с формами
- Работа с базами данных
- Генерация кода при помощи Gii
- Что дальше?
Структура приложения
- Обзор
- Входные скрипты
- Приложения
- Компоненты приложения
- Контроллеры
- Модели
- Представления
- Модули
- Фильтры
- Виджеты
- Ресурсы
- Расширения
Обработка запросов
- Обзор
- Bootstrapping
- Разбор и генерация URL
- Запросы
- Ответы
- Сессии и куки
- Обработка ошибок
- Логирование
Основные понятия
- Компоненты
- Свойства
- События
- Поведения
- Конфигурации
- Псевдонимы
- Автозагрузка классов
- Service Locator
- Dependency Injection Container
Работа с базами данных
- Объекты доступа к данным (DAO)
- Построитель запросов
- Active Record
- Миграции
- Sphinx
- Redis
- MongoDB
- ElasticSearch
Получение данных от пользователя
- Создание форм
- Валидация
- Загрузка файлов
- Табличный ввод
- Работа с несколькими моделями
- Расширение ActiveForm на стороне клиента
Отображение данных
- Форматирование данных
- Постраничная разбивка
- Сортировка
- Провайдеры данных
- Виджеты для данных
- Работа с клиентскими скриптами
- Темизация
Безопасность
- Обзор
- Аутентификация
- Авторизация
- Работа с паролями
- Криптография
- Клиенты авторизации
- Лучшие практики
Кеширование
- Обзор
- Кэширование данных
- Кэширование фрагментов
- Кэширование страниц
- HTTP кэширование
Веб-сервисы REST
- Быстрый старт
- Ресурсы
- Контроллеры
- Роутинг
- Форматирование ответа
- Аутентификация
- Ограничение частоты запросов
- Версионирование
- Обработка ошибок
Инструменты разработчика
- Отладочная панель и отладчик
- Генерация кода с Gii
- Генератор документации API
Тестирование
- Обзор
- Настройка тестового окружения
- Модульные тесты
- Функциональные тесты
- Приёмочные тесты
- Фикстуры
Специальные темы
- Шаблон приложения advanced
- Создание приложения с нуля
- Консольные команды
- Встроенные валидаторы
- Интернационализация
- Отправка почты
- Оптимизация производительности
- Окружение виртуального хостинга
- Шаблонизаторы
- Работа со сторонним кодом
- Использование Yii в качестве микро-framework’а
Виджеты
Хелперы
- Обзор
- ArrayHelper
- Html
- Url хелпер
Введение: О Yii | Полное руководство по Yii 2.
0
3 followers
- Для каких задач больше всего подходит Yii?
- Сравнение Yii с другими фреймворками
- Версии Yii
- Требования к ПО и знаниям
Yii – это высокопроизводительный компонентный PHP фреймворк, предназначенный для быстрой разработки современных веб-приложений. Слово Yii (произносится как Йи
[ji:]
) в китайском языке означает «простой и эволюционирующий». Также Yii
может расшифровываться как акроним Yes It Is!
Для каких задач больше всего подходит Yii? ¶
Yii – это универсальный фреймворк и может быть задействован во всех типах веб-приложений. Благодаря его компонентной
структуре и отличной поддержке кэширования, фреймворк особенно подходит для разработки таких крупных проектов, как
порталы, форумы, CMS, магазины или RESTful-приложения.
Сравнение Yii с другими фреймворками ¶
Если вы уже знакомы с другими фреймворками, вам наверняка будет интересно сравнить их с 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, пространства имен, трейты и многое другое. 2.0 — текущее поколение фреймворка. На этой версии
будут сосредоточены основные усилия несколько следующих лет. Данное руководство именно о версии 2.0.
Требования к ПО и знаниям ¶
Yii 2.0 требует PHP 5.4.0 и выше и наилучшим образом работает на последней версии PHP. Чтобы узнать требования для отдельных возможностей, вы можете запустить скрипт проверки
требований, который поставляется с каждым релизом фреймворка.
Для разработки на Yii потребуется общее понимание ООП, так как фреймворк полностью следует этой парадигме. Также стоит
изучить такие современные возможности PHP как пространства имён
и трейты. Понимание этих концепций позволит вам более легко освоиться c Yii 2.0.
Go to Top
Обновление с версии 1.1
Found a typo or you think this page needs improvement?
Edit it on github !
Полное руководство по Yii 2.0
Введение
- О Yii
- Обновление с версии 1.1
Начало работы
- Что нужно знать
- Установка Yii
- Запуск приложений
- Привет
- Работа с формами
- Работа с базами данных
- Генерация кода с помощью Gii
- Взгляд в будущее
Структура приложения
- Обзор структуры приложения
- Сценарии входа
- Приложения
- Компоненты приложения
- Контроллеры
- Модели
- просмотров
- Модули
- Фильтры
- Виджеты
- Активы
- Расширения
Обработка запросов
- Обзор обработки запросов
- Начальная загрузка
- Маршрутизация и создание URL
- запросов
- ответов
- Сеансы и файлы cookie
- Обработка ошибок
- Регистрация
Ключевые концепции
- Компоненты
- Свойства
- События
- Поведение
- Конфигурации
- Псевдонимы
- Класс автозагрузки
- Сервисный локатор
- Контейнер для внедрения зависимостей
Получение данных от пользователей
- Создание форм
- Проверка ввода
- Загрузка файлов
- Сбор табличного ввода
- Получение данных для нескольких моделей
- Расширение ActiveForm на стороне клиента
Отображение данных
- Форматирование данных
- Пагинация
- Сортировка
- Поставщики данных
- Виджеты данных
- Работа с клиентскими скриптами
- Тематика
Безопасность
- Обзор безопасности
- Аутентификация
- Авторизация
- Работа с паролями
- Криптография
- Клиенты авторизации
- Лучшие практики
Кэширование
- Обзор кэширования
- Кэширование данных
- Кэширование фрагментов
- Кэширование страниц
- Кэширование HTTP
Веб-службы RESTful
- Быстрый старт
- Ресурсы
- Контроллеры
- Фильтрация коллекций
- Маршрутизация
- Формат ответа
- Аутентификация
- Ограничение скорости
- Управление версиями
- Обработка ошибок
Средства разработки
Тестирование
- Обзор тестирования
- Настройка среды тестирования
- Модульные тесты
- Функциональные тесты
- Приемочные испытания
- Светильники
Специальные темы
- Расширенный шаблон проекта
- Создание приложения с нуля
- Консольные команды
- Базовые валидаторы
- Докер
- Интернационализация
- Рассылка
- Настройка производительности
- Общая среда размещения
- Механизмы шаблонов
- Работа со сторонним кодом
- Использование Yii в качестве микрофреймворка
Виджеты
Помощники
- Обзор помощников
- Помощник по массиву
- HTML-код
- Джсон
- URL-адрес
Начало работы: Установка Yii | Полное руководство по Yii 2.
0
25 подписчиков
- Установка через Composer
- Установка из файла архива
- Другие варианты установки
- Установка активов
- Проверка установки
- Настройка веб-серверов
Вы можете установить Yii двумя способами: с помощью менеджера пакетов Composer или скачав файл архива.
Первый способ предпочтительнее, так как он позволяет устанавливать новые расширения или обновлять Yii, просто запустив одну команду.
Стандартная установка Yii приводит к загрузке и установке как фреймворка, так и шаблона проекта.
Шаблон проекта — это работающий проект Yii, реализующий некоторые базовые функции, такие как вход в систему, контактная форма и т. д.
Его код организован рекомендуемым образом. Поэтому он может послужить хорошей отправной точкой для ваших проектов.
В этом и нескольких следующих разделах мы опишем, как установить Yii с так называемым базовым шаблоном проекта и
как реализовать новые функции поверх этого шаблона. Yii также предоставляет еще один шаблон под названием
расширенный шаблон проекта, который лучше использовать в среде командной разработки
для разработки приложений с несколькими уровнями.
Информация: Базовый шаблон проекта подходит для разработки 90 процентов веб-приложений. Отличается
из расширенного шаблона проекта в основном тем, как организован их код. Если вы новичок в Yii, мы настоятельно
рекомендуем вам придерживаться базового шаблона проекта из-за его простоты, но достаточной функциональности.
Установка через Composer ¶
Установка Composer ¶
Если у вас еще не установлен Composer, вы можете сделать это, следуя инструкциям на
getcomposer.org. В Linux и Mac OS X выполните следующие команды:
curl -sS https://getcomposer.org/installer | php sudo mv composer.phar /usr/local/bin/composer
В Windows необходимо загрузить и запустить Composer-Setup.exe.
См. раздел «Устранение неполадок» документации Composer.
если вы столкнетесь с какими-либо проблемами.
Если вы новичок в Composer, мы также рекомендуем прочитать хотя бы раздел «Основное использование».
документации Composer.
В этом руководстве все команды композитора предполагают, что вы установили композитор глобально
чтобы он был доступен как команда composer
. Если вместо этого вы используете composer.phar
в локальном каталоге,
вы должны соответствующим образом скорректировать примеры команд.
Если у вас уже был установлен Composer, убедитесь, что вы используете последнюю версию. Вы можете обновить Composer
запустив composer self-update
.
Примечание: Во время установки Yii Composer должен запросить много информации у Github API.
Количество запросов зависит от количества зависимостей вашего приложения и может быть больше, чем
Ограничение скорости API Github . Если вы достигнете этого предела, Composer может запросить ваши учетные данные для входа в Github, чтобы получить
токен доступа к Github API. На быстрых соединениях вы можете достичь этого предела раньше, чем Composer сможет обработать, поэтому мы
рекомендуем настроить токен доступа перед установкой Yii.
Пожалуйста, обратитесь к документации Composer о токенах Github API.
для получения инструкций о том, как это сделать.
Установка Yii ¶
Установив Composer, вы можете установить шаблон приложения Yii, выполнив следующую команду
в доступной через Интернет папке:
composer create-project --prefer-dist yiisoft/yii2-app-basic базовый
Это установит последнюю стабильную версию шаблона приложения Yii в каталог с именем basic
.
Вы можете выбрать другое имя каталога, если хотите.
Информация: Если команда
composer create-project
не удалась, вы также можете обратиться к
Раздел устранения неполадок документации Composer
на распространенные ошибки. Когда вы исправите ошибку, вы можете возобновить прерванную установку.
запустивcomposer update
внутри основного каталога.
Совет: Если вы хотите установить последнюю разрабатываемую версию Yii, вы можете вместо этого использовать следующую команду:
который добавляет параметр стабильности:composer create-project --prefer-dist --stability=dev yiisoft/yii2-app-basic базовыйОбратите внимание, что разрабатываемая версия Yii не должна использоваться для производства, так как это может привести к поломке вашего работающего кода.
Установка из архивного файла ¶
Установка Yii из файла архива состоит из трех шагов:
- Загрузите файл архива с yiiframework.com.
- Распакуйте загруженный файл в папку, доступную через Интернет.
Измените файл
config/web.php
, введя секретный ключ для элемента конфигурацииcookieValidationKey
.
(это делается автоматически, если вы устанавливаете Yii с помощью Composer):// !!! вставьте секретный ключ в следующее (если оно пустое) - это требуется для проверки файлов cookie 'cookieValidationKey' => 'введите здесь свой секретный ключ',
Другие варианты установки ¶
Приведенные выше инструкции по установке показывают, как установить Yii, который также создает базовое веб-приложение, работающее «из коробки».
Этот подход является хорошей отправной точкой для большинства проектов, как малых, так и больших. Это особенно удобно, если вы просто
начать изучать Yii.
Но есть и другие доступные варианты установки:
- Если вы хотите установить только базовую структуру и хотите создать все приложение с нуля,
вы можете следовать инструкциям, описанным в разделе Создание приложения с нуля. - Если вы хотите начать с более сложного приложения, лучше подходящего для среды групповой разработки,
вы можете рассмотреть возможность установки расширенного шаблона проекта.
Установка ресурсов ¶
Yii использует пакеты Bower и/или NPM для установки библиотек ресурсов (CSS и JavaScript).
Он использует Composer для получения этих библиотек, позволяя одновременно разрешать версии пакетов PHP и CSS/JavaScript.
Этого можно достичь либо с помощью актива-packagist.org, либо с помощью плагина ресурсов композитора.
Дополнительные сведения см. в документации по активам.
Возможно, вы захотите либо управлять своими ресурсами через собственный клиент Bower/NPM, либо использовать CDN, либо полностью отказаться от установки ресурсов.
Чтобы предотвратить установку ресурсов через Composer, добавьте следующие строки в ваш ‘composer.json’:
"replace": { "bower-актив/jquery": ">=1.11.0", "bower-актив/маска ввода": ">=3.2.0", "bower-актив/punycode": ">=1.3.0", "bower-актив/yii2-pjax": ">=2.0.0" },
Примечание: в случае обхода установки ресурсов через Composer вы несете ответственность за установку и разрешение ресурсов
коллизии версий. Будьте готовы к возможным несоответствиям между файлами активов с разными расширениями.
Проверка установки ¶
После завершения установки либо настройте веб-сервер (см. следующий раздел), либо используйте
встроенный веб-сервер PHP, выполнив следующие
консольная команда в корневом каталоге проекта:
php yii serve
Примечание: По умолчанию HTTP-сервер будет прослушивать порт 8080. Однако, если этот порт уже используется или вы хотите
обслуживать несколько приложений таким образом, вы можете указать, какой порт использовать. Просто добавьте аргумент —port:
php yii служить --port = 8888
Вы можете использовать свой браузер для доступа к установленному приложению Yii со следующим URL-адресом:
http://localhost:8080/
Вы должны увидеть выше «Поздравляем!» страницу в вашем браузере. Если нет, проверьте, удовлетворяет ли ваша установка PHP
Требования Yii. Вы можете проверить соответствие минимальным требованиям одним из следующих способов:
Вы должны настроить установку PHP так, чтобы она соответствовала минимальным требованиям Yii. Самое главное, вы
должен иметь PHP 5.4 или выше. В идеале последний PHP 7. Вы также должны установить расширение PDO PHP.
и соответствующий драйвер базы данных (например, pdo_mysql
для баз данных MySQL), если вашему приложению требуется база данных.
Настройка веб-серверов ¶
Информация: Вы можете пока пропустить этот подраздел, если вы просто тестируете Yii без намерения
развертывания его на рабочем сервере.
Приложение, установленное в соответствии с приведенными выше инструкциями, должно работать из коробки как с
HTTP-сервер Apache или HTTP-сервер Nginx, на
Windows, Mac OS X или Linux с PHP 5.4 или выше. Yii 2.0 также совместим с Facebook.
ХВМ. Однако есть некоторые крайние случаи, когда HHVM ведет себя иначе, чем нативный.
PHP, поэтому вам нужно проявлять особую осторожность при использовании HHVM.
На рабочем сервере вы можете настроить веб-сервер так, чтобы приложение было доступно
через URL https://www.example.com/index.php
вместо https://www.example.com/basic/web/index.php
. Такая конфигурация
требует указания корневого каталога документов вашего веб-сервера на папку basic/web
. Вы можете также
хотите скрыть index.php
из URL-адреса, как описано в разделе «Маршрутизация и создание URL-адресов».
В этом подразделе вы узнаете, как настроить сервер Apache или Nginx для достижения этих целей.
Информация: Установив
basic/web
в качестве корня документа, вы также предотвратите доступ конечных пользователей
ваш личный код приложения и файлы конфиденциальных данных, которые хранятся в каталогах одного уровня
избазовый/сетевой
. Отказ в доступе к этим другим папкам является улучшением безопасности.
Информация: Если ваше приложение будет работать в среде общего хостинга, где у вас нет разрешения
чтобы изменить конфигурацию веб-сервера, вы все равно можете настроить структуру своего приложения для повышения безопасности. Пожалуйста, обратитесь к
раздел Shared Hosting Environment для более подробной информации.
Информация: Если вы используете свое приложение Yii за обратным прокси-сервером, вам может потребоваться настроить
Доверенные прокси и заголовки в компоненте запроса.
Рекомендуемая конфигурация Apache ¶
Используйте следующую конфигурацию в файле Apache httpd.conf
или в конфигурации виртуального хоста. Обратите внимание, что вы
следует заменить path/to/basic/web
на фактический путь для basic/web
.
# Установить корень документа как «базовый/веб» DocumentRoot "путь/к/основному/веб-сайту"# используйте mod_rewrite для красивой поддержки URL RewriteEngine включен # если $showScriptName имеет значение false в UrlManager, не разрешать доступ к URL-адресам с именем скрипта Правило перезаписи ^index. php/ - [L,R=404] # Если каталог или файл существуют, используйте запрос напрямую RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d # В противном случае перенаправить запрос на index.php Правило перезаписи. index.php # ...другие настройки... Каталог>
Рекомендуемая конфигурация Nginx ¶
Чтобы использовать Nginx, вы должны установить PHP как FPM SAPI.
Вы можете использовать следующую конфигурацию Nginx, заменив path/to/basic/web
фактическим путем для
basic/web
и mysite.test
с фактическим именем хоста для обслуживания.
сервер { кодировка utf-8; client_max_body_size 128M; слушать 80; ## слушать ipv4 #listen [::]:80 default_server ipv6only=on; ## слушать ipv6 имя_сервера mysite.test; корень /путь/к/основной/веб; индекс index.php; журнал_доступа /путь/к/основному/журналу/журналу_доступа; error_log /path/to/basic/log/error.log; расположение / { # Перенаправить все, что не является реальным файлом, в index. /assets/.*\.php$ { отрицать все; } расположение ~ \.php$ { включить fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_pass 127.0.0.1:9000; #fastcgi_pass unix:/var/run/php5-fpm.sock; try_files $uri = 404; } расположение ~* /\. { отрицать все; } }
При использовании этой конфигурации необходимо также установить cgi.fix_pathinfo=0
в файле php.ini
.
чтобы избежать множества ненужных системных вызовов stat()
.
Также обратите внимание, что при запуске сервера HTTPS необходимо добавить fastcgi_param HTTPS on;
так что Yii
может правильно определить, является ли соединение безопасным.
Рекомендуемая конфигурация модуля NGINX ¶
Вы можете запускать приложения на основе Yii, используя модуль NGINX с языковым модулем PHP.
Вот пример конфигурации.
{ "слушатели": { "*:80": { "проход": "маршруты/yii" } }, "маршруты": { "ииии": [ { "соответствовать": { "ури": [ "!/ресурсы/*", "*. php", "*.php/*" ] }, "действие": { "проход": "приложения/yii/директ" } }, { "действие": { "share": "/path/to/app/web/", "отступать": { "проход": "приложения/yii/индекс" } } } ] }, "Приложения": { "Иии": { "тип": "php", "пользователь": "www-данные", "цели": { "прямой": { "корень": "/путь/к/приложению/сети/" }, "индекс": { "корень": "/путь/к/приложению/сети/", "скрипт": "index.php" } } } } }
Вы также можете настроить свою среду PHP или предоставить собственный php.ini
в той же конфигурации.
Конфигурация IIS ¶
Рекомендуется размещать приложение на виртуальном хосте (веб-сайте), где корень документа указывает на путь/к/приложению/веб-папке
и этот веб-сайт настроен для запуска PHP.