Рубрики
Uncategorized

Новые характеристики MVC для Yii2

Автор оригинала: David Wong.

В этой статье в основном рассматривается MVC в Yii2. Конечно, основная идея та же, что и у Yii1.1, но сегодня я хочу посмотреть, чем MVC в Yii2 отличается от Yii1.1, или напрямую, в чем заключается улучшение Yii2, чтобы власти осмелились атаковать лучшую цель PHP-фреймворка!

Больше никаких глупостей. Давайте взглянем на три части MVC:

Модель:

Модели в Yii наследуются от yii\база\Модель L, который обычно используется для хранения данных и установки некоторых определенных правил ()) для этих данных. Каждый класс модели на самом деле часто связан с несколькими основными классами (например, Активная запись ) В сочетании, в Yii2, Активная запись Я также удивлен улучшениями. В будущем я собираюсь написать статью о Yii2. Активная запись

В каждой модели атрибуты и метка атрибутов На самом деле, это похоже на Yii 1.1, но что меня особенно радует, так это то, что в Yii2, помимо функций rules (), есть сценарии() Функция для улучшения проверки модели Yii2. правила() Функции конкретно действуют как каждая из моделей атрибуты Проверка фильтрации и сценарии() Какой из них может быть объявлен в соответствии с потребностями различных сценариев атрибуты Что здесь означает безопасность; давайте рассмотрим следующие примеры:

php
namespace app\models;

use yii\db\ActiveRecord;

class User extends ActiveRecord {

    public function rules()
    {
        return [
            // When the corresponding field is "safe", rule validates it.
            ['username', 'string', 'length' => [4, 32]],
            ['first_name', 'string', 'max' => 128],
            ['password', 'required','on' => 'signup'],
        ];
    }

    public function scenarios()
    {
        return [

            'signup' => ['username', 'password'],
            'update' => ['username', 'first_name'],
        ];
    }
}

В этом примере поле пароля Он назначен только для сценариев регистрации в модели, поэтому речь идет о пароле Аутентификация работает только в сценарии регистрации, что лично я считаю потрясающим обновлением модели Yii2, потому что создание этого механизма позволяет нам разрабатывать некоторые из них одновременно. атрибуты Проверка и распространение формы обеспечивают более гибкий контроль, что значительно улучшает наш дизайн и разработку приложений для удобства использования форм и сценариев.

Распределение нескольких атрибутов также немного изменилось, как мы делали в Yii 1.1:

if (isset($_POST['userModel']))
{
   $model->attributes = $_POST['userModel'];
}

В Yii2 вам просто нужно:

$model->load($_POST);

Ключевым моментом здесь является то, что функция load () автоматически проверяет $model->имя формы(). Индекс $_POST определенный

Просмотры

Есть также незначительные изменения в представлениях Yii2, наиболее очевидным из которых является функция render () , теперь она будет возвращать значение вместо выходного значения, такого как Yii 1.1, например:

public function actionIndex()
{
    $models = Posts::find()->all();
    echo $this->render('index', array('models' => $models));
}

Видишь? визуализация Контент теперь можно использовать напрямую echo Приходите и выводите, что бы ни случилось (более подробно будет объяснено в разделе Контроллера ниже). Еще один момент заключается в том, что Yii2 также имеет официальные расширения для поддержки некоторых распространенных движков шаблонов, таких как: smarty , twig И так далее. Благословенны вы, кому нравятся эти шаблонизаторы.

Еще одна вещь, которую стоит отметить в отношении представлений, заключается в том, что $эта Переменная, в Yii 1.1, $это Можно сказать, что он является посредником, связывающим контроллер и представления; в Yii2 $это означает yii\web\View Компоненты, что позволяет нам устанавливать некоторые полезные атрибуты представлений в представлении, такие как: заголовок страницы, мета и т. Д., И даже сценарий JS регистрации в порядке. Есть ли очень интуитивное ощущение, например, написание собственного html, какое название я хочу, это круто?

Контроллеры

Во-первых, взгляните непосредственно на код:

render('index');
    }

    public function actionTest()
    {
        // Print "test" string only in browser, cool
        return 'test';
    }
}

Вы видели это здесь? использовать yii\веб\Контроллер Да, Yii2 полностью начал использовать пространства имен PHP. Когда я был в Yii1.1, я всегда слышал, что Yii2 будет использовать более продвинутые функции PHP для полной перезаписи. Конечно же, комплимент. И теперь в контроллере каждый вывод возвращается, как и выше. тест на действие() Итак, теперь вы можете полностью вернуться к строке. Есть ли какие-нибудь следы Ларавеля? Тем не менее, вам достаточно распознать эти новые функции в контроллере Yii2, потому что некоторые из более простых вещей такие же, как у Yii1.1, так что совсем не бойтесь (Я имею в виду, если вы когда-либо работали с Yii1.1).

Напишите в конце

Как вы можете видеть в этой статье, почти все изменения в компонентах MVC в Yii2 делают Yii2 более полезным. Я считаю, что это даст разработчикам лучший опыт разработки. В конце концов, Yii2 видит след элегантности! Итак, вы все еще беспокоитесь о том, с какого фреймворка PHP вам следует начать. Пожалуйста, не стесняйтесь. Yii2-отличный выбор. Сумасшедший здесь: http://www.yiiframework.com/

[Оригинал с] http://www.jellybool.com/post/yii2 -mvc-компоненты

Оригинал: “https://developpaper.com/new-mvc-characteristics-of-yii2/”