<rmcreative>

RSS

Все заметки с тегом «yii2»

  1. Уменьшаем yii2-basic

    7 января 2014

    В почту прилетел вопрос «какого такого yii2-basic весит 180 мегабайт». Вопрос хороший. Разберём и попробуем разобраться, что же с этим всем делать, если размер критичен.

    Итак, 155 мегабайт занимают данные git, которые забираются при установке из composer без флага --prefer-dist (добавил его в readme). Осталось 25 мегабайт, что тоже немало.

    Из них:

    Yii + обязательные зависимости 4,9 мб
    debug-панель и gii 235 кб
    Twitter Bootstrap 4,5 мб
    Swiftmailer 6,2 мб
    Codeception и зависимости 8,6 мб

    Если нам не нужны какие-то пакеты, правим composer.json и удаляем оттуда ненужные нам пакеты (секции require и require-dev). Удаляем composer.lock и запускаем composer install --prefer-dist.

    Например, если нам не интересно автоматизированное тестирование, путём удаления из зависимостей Codeception получаем 16 мегабайт вместе с зависимостями и самим basic-шаблоном. При этом приложение остаётся полностью рабочим.

    Если в приложении не нужна работа с почтой и Twitter Bootstrap получим 5,3 мегабайта.

    UPD: доступен минимальный шаблон приложения без тяжёлых компонентов.

    4 комментария
  2. Yii 2 alpha

    2 декабря 2013

    Вышла первая альфа версия Yii 2. Скачать в виде архива её можно с официального сайта. Там же приведены инструкции по установке через Composer.

    Yii 2 является полностью переделанной версией одного из самых популярных PHP-фреймворков. В новой версии унаследован общий дух первой версии, а именно стремление к простоте, скорости и расширяемости. В Yii 2 применяются многие возможности PHP 5.4. Фреймворк следует лучшим практикам современной веб-разработки.

    Полное описание возможностей вы можете найти в полном руководстве и, в особенности в разделе с отличиями от версии 1.1.

    Выпуск альфы является важным событием в разработке Yii 2 и означает, что код достиг определённой степени стабильности. Если вы только начинаете изучать Yii или у ваш проект не ограничен жёсткими временными рамками, можно попробовать новую версию. Не используйте Yii 2 в боевых проектах так как команда фреймворка всё ещё может внести значительные изменения без каких-либо предварительных уведомлений.

    В течение двух лет было получено огромное количество кода от сообщества. Спасибо вам, что сделали этот релиз возможным.

    29 комментариев
  3. Yii2 будет на PHP 5.4

    20 октября 2013

    Ещё недавно я рассказывал про то, что Yii2 будет использовать PHP 5.3, и вот планы круто поменялись. После публичного обсуждения, а затем и внутрикомандного, было решено, что релиз состоится с минимальным требованием PHP 5.4.

    Сначала мы составили список популярных хостингов. После этого стало понятно, что 72% хостингов, которые поддерживают минимальную на тот момент версию 5.3.7, поддерживают и 5.4. А те, что принципиально застряли на 5.2 или 5.3, чаще всего не имеют и 5.3.7. С операционками выходит примерно так же.

    Далее пошли в ход плюсы.

    Короткий синтаксис массивов и <?= в шаблонах. Да, для фреймворка оно не нужно и это долгое время было аргументом против 5.4. Но мы изначально упустили из вида, что авторам расширений придётся использовать 5.4, что негативно скажется на сообществе.

    В 5.3 более не исправляется, начиная с этого Июля. В Июле 2014 PHP 5.3 перестанет получать также и исправления по части безопасности, так что использовать его будет довольно рисково. К тому времени Yii2, как раз, должен начать набирать обороты и если сейчас переход на 5.4 кажется немного рисковым, то через пол года это точно будет верным шагом. Да и с точки зрения маркетинга шаг верный.

    Ну и трейты, конечно. Хотя на их счёт ещё есть большие сомнения...

    40 комментариев
  4. Yii2: перевод сообщений

    17 октября 2013

    Доделали полностью перевод сообщений. В Yii2 он намного лучше, чем в 1.1. Удалось выкинуть мегабайты данных CLDR и использовать вместо всего этого расширение intl. Синтаксис и возможности поразительные. Например, можно вот так:

    echo \Yii::t('app', '{n,number} is spelled as {n, spellout}', array(
        'n' => 42,
    ));

    При переводе эта строка честно выдаст нам 42 проговаривается как сорок два.

    echo \Yii::t('app', '{name} is {gender} and {gender, select, female{she} male{he} other{it}} loves Yii!', array(
        'name' => 'Snoopy',
        'gender' => 'dog',
    ));

    Выдаст без перевода Snoopy is dog and it loves Yii!.

    Множественные формы также никуда не делись:

    echo \Yii::t('app', 'There {n, plural, =0{are no cats} =1{is one cat} other{are # cats}}!', array(
        'n' => 0,
    ));

    Строка перевода будет вот такая:

    Здесь {n, plural, =0{котов нет} =1{есть один кот} one{# кот} few{# кота} many{# котов} other{# кота}}!
    

    Не обошлось, правда, без исследования исходника расширения и исправления найденных багов средствами PHP, но результат радует.

    22 комментария
  5. Первый production-проект на Yii2

    18 июля 2013

    Несмотря на то, что Yii2 ещё даже не бета, появился первый известный мне production-проект на нём.

    Самая идея — сервис для печати изображений по постерам, холстам, футболкам и т.д. У сервиса отличный дизайн, работает шустро. Имеется REST API.

    Рассматриваем

    12 комментариев
  6. Черновики документации Yii2

    4 июля 2013

    Код Yii2 начал более-менее стабилизироваться. Это означает, что пора писать руководство, чем мы и занялись на этой неделе.

    Всё ещё в состоянии черновиков, некоторые разделы пусты, но уже можно знакомиться, критиковать и дополнять.

    17 комментариев
  7. Yii2, контроль доступа

    25 июня 2013

    В Yii 1.1 фильтр accessControl был очень гибким:

    // blacklist
    return array(
      array('deny',
        'users' => array('*'),
        'actions' => array('index'),
      ),
    );
     
    //whitelist
    return array(
      array('allow',
        'users' => array('*'),
        'actions' => array('view'),
      ),
      array('deny'),
    );

    Он позволял контролировать доступ как в стиле blacklist, так и whitelist. В Yii2 остался только whitelist. Это единственный нормальный и действительно безопасный подход в данной ситуации:

    //whitelist
    public function behaviors()
    {
      return array(
        'access' => array(
          'class' => 'yii\web\AccessControl',
          'rules' => array('allow' => true,
              'users' => array('*'),
              'actions' => array('view'),
          ),
        ),
      );
    }
    26 комментариев
  8. HotCode и YiiMeetup, Киев

    9 июня 2013

    Прошли два события в Киеве, в которых я, как и планировалось, принимал участие.

    Читаем

    3 комментария
  9. Yii2: цветная консоль

    25 мая 2013

    В Yii2 будет удобная консоль с поддержкой цветов для всех ОС (для Windows нужен нормальный терминал вроде ConEmu). Вот как это выглядит (цвета настраиваются в терминале):

    12 комментариев
  10. Стиль кода Yii2

    10 мая 2013

    Много спрашивают про стиль кода Yii2. Почему он такой и почему не 1 в 1 PSR-2.

    Несовместимостей с PSR у нас три:

    1. У нас 5.3, мы не поддерживаем <?= в ядре потому как он может быть выключен. PSR-1 его разрешает.
    2. У нас табы, в отличие от PSR-2. У них есть объективный плюс. Их можно отображать как угодно в любимой IDE. Четыре пробела как два не отобразишь. На небольших экранах это особо актуально.
    3. У нас есть несколько уточнений, которые в PSR-2 не оговариваются.
    33 комментария