Yii 2: Полное руководство по Yii 2.0

Содержание

Полное руководство по 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

  1. Для каких задач больше всего подходит Yii?
  2. Сравнение Yii с другими фреймворками
  3. Версии Yii
  4. Требования к ПО и знаниям

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 подписчиков

  1. Установка через Composer
  2. Установка из файла архива
  3. Другие варианты установки
  4. Установка активов
  5. Проверка установки
  6. Настройка веб-серверов

Вы можете установить 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 из файла архива состоит из трех шагов:

  1. Загрузите файл архива с yiiframework.com.
  2. Распакуйте загруженный файл в папку, доступную через Интернет.
  3. Измените файл 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.

This entry was posted in Популярное