<rmcreative>

RSS

С Yii 1.1 на Yii 2.0, часть 1: PHP

22 апреля 2014

Вопрос о переходе с 1.1 на 2.0 всплывает слишком часто, чтобы не разобрать его более детально. Начать, конечно, стоит с самого основного, а именно с PHP.

В Yii 1.1 использовался PHP 5.2. В некоторых местах можно было использовать элементы из 5.3. В Yii 2.0 используется PHP 5.4. Причём не просто используется, а используется по полной программе.

Итак, для перехода на 2.0 стоит изучить:

С Yii 1.1 на Yii 2.0, часть 2: Composer →

Комментарии RSS

  1. №8973
    Влад
    Влад 22.04.2014, 15:27:59

    Очень правильный пост :) Саша, спасибо!

  2. №8974
    null
    null 22.04.2014, 16:29:07

    Спасибо! В Yii 1 новый проект создавался yiic webapp путь где будет проект. А как создать в Yii 2?

  3. №8975
    Max Lapko
    Max Lapko 22.04.2014, 17:13:39

    null, через composer github.com/yiisoft/yii2/tree/master/apps/basic Example: php composer.phar create-project --prefer-dist --stability=dev yiisoft/yii2-app-basic basic

  4. №8976
    padlyuck
    padlyuck 22.04.2014, 19:22:23

    А можно для тех кто в танке объяснить, почему <? не безопасно использовать? или ткнуть носом где почитать можно?

  5. №8977
    Максим
    Максим 22.04.2014, 20:28:16

    Уже давно так и сделал, о чем я уже писал в статье на хабре.

  6. №8978
    Александр
    Александр 22.04.2014, 20:52:41
  7. №8979
    LOL
    LOL 23.04.2014, 16:52:54

    Короче говоря... Вы сделали Symfony2. Верно? На хера?

  8. №8980
    Sam
    Sam 23.04.2014, 22:25:05

    LOL, общее у них то, что MVC и то что PHP свежий...

  9. №8981
    MrArthur
    MrArthur 24.04.2014, 2:21:10

    Спасибо! [sarcasm] Действительно, зачем вообще люди делают другие фреймворки, если есть Symfony2? [/sarcasm]

  10. №8982
    Алексей
    Алексей 24.04.2014, 8:55:08

    LOL, [bigsarcasm]короче говоря... вы программист и знаете Symfony2. Но ведь есть уже программисты знающие Symfony2. На кой черт вы этому миру?[/bigsarcasm]

  11. №8983
    LOL
    LOL 24.04.2014, 10:32:13

    Верно, не за чем.

  12. №8984
    BrusSENS
    BrusSENS 24.04.2014, 12:24:41

    Алексей, [thebiggestlol]Ахахах! +100! Теперь заряд позитива на год! Это надо заскринить =)[/thebiggestlol]

  13. №8985
    Алексей
    Алексей 24.04.2014, 13:21:44

    Как говорил в моем детстве Михалков: "Мамы разные нужны, Мамы разные важны."

    Этому миру нужны и конкуренты, и клоны, и, даже, форки. Кто кого перживет и какой кусок рынка отожрет покажет время.

  14. №8987
    LOL
    LOL 26.04.2014, 18:39:13

    В чем разница между трейтом и интерфейсом?

  15. №8988
    LOL
    LOL 26.04.2014, 18:59:48

    Можно пару примеров где используется SPL в Yii2?

  16. №8989
    Sam
    Sam 26.04.2014, 19:03:25

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

    SPL используется много где: исключения, автозагрузка классов, итераторы, ArrayAccess и так далее.

  17. №8990
    Алексей
    Алексей 27.04.2014, 13:25:37

    Про Spl, Sam: ArrayAccess, Exception и интерфейсы использовались и раньше. Итераторов не нашел. Больше ничего и не используется вродебы

  18. №8993
    Жанат
    Жанат 28.04.2014, 18:36:49

    Всем привет. Расскажите, пожалуйста если кто реализовывал уже rbac, то для чего и как можно применить data в auth_item, так как пройдясь по коду не заметил нигде использования этих данных при проверке доступа?

  19. №8994
    Жанат
    Жанат 28.04.2014, 18:39:40

    Или это задумано для создания какой-то своей логики и создания своих типов item'а, то есть наследников от yii\rbac\Item?

  20. №8995
    Сергей
    Сергей 28.04.2014, 21:27:45

    Что то не пойму, все таки в экшене

    echo $this->render('index');

    или

    return $this->render('index');

    В примере шаблона return, но начинаю писать сам и он не работает, а только echo. В исходниках метод render возвращает строку, соответственно я могу ее либо сохранить, либо вывести. В инструкции по миграции с первой версии указано echo, а в учебнике return.

  21. №8996
    Алексей
    Алексей 29.04.2014, 7:15:02

    Сергей, return. Если не работает, это баг. Смысл: все должно проходить через объекты Request/Response. Тогда это более тестируемо и настраиваемо.

  22. №8997
    Сергей
    Сергей 29.04.2014, 20:11:05

    Алексей, если баг, то куда копать?

    Создал основной класс контроллера для фронта и админки

    namespace common\components;
    class Controller extends \yii\web\Controller {
    }

    Создал основной класс контроллера для админки

    namespace backend\components;
    class Controller extends \common\components\Controller {
    }

    Создал контроллер

    namespace backend\controllers;
    class SiteController extends \backend\components\Controller {
        public function actionIndex() {
            return $this->render('index');
        }
    }

    и тишина, чистый лист браузера. Меняю return на echo выводится страница как задумано с view и layout.

  23. №8998
    Sam
    Sam 29.04.2014, 23:48:06

    А стандартные приложения тоже чистый лист дают? Там return.

  24. №9001
    Сергей
    Сергей 30.04.2014, 20:46:00

    Стандартные приложения работают корректно, используя return. Поэтому и недоумеваю, в чем причина.. Я сделал контроллер по аналогии, добавив в цепочку пару классов, расширенные от \yii\web\Controller.

  25. №9003
    Sam
    Sam 01.05.2014, 12:36:02

    Сергей, подозреваю, где-то не вызван parent::.

  26. №9008
    Сергей
    Сергей 02.05.2014, 8:26:32

    Все, разобрался. Спасибо за наводку, Sam. Неверно был переопределен метод afterAction. Сделал по старинке

    public function afterAction($action, $result) {
        // my code here
        parent::afterAction($action, $result);
    }

    а надо

    public function afterAction($action, $result) {
        $result = parent::afterAction($action, $result);
        // my code here
        return $result;
    }
  27. №9010
    Igor
    Igor 04.05.2014, 16:17:37

    Здравствуйте, по работе поставили задачу изучить php фреймфорк. Выбрали для изучения yii.

    Посоветуйте пожалуйста. Мне начать изучать yii 1.1 или я могу сразу начать yii 2?

    Много информации по yii 1.1, а вот по второй версии пока только документация

  28. №9011
    Александр
    Александр 04.05.2014, 16:24:56

    Изучать yii2, взять для примера одно из приложений в репозитории (я бы взял advanced, хоть и посложнее), разобрать его, читать документацию. В принципе информации достаточно.

  29. №9901
    Web Design Dubai
    Web Design Dubai 12.07.2015, 12:04:16

    Игорь, начинай с Yii2, на первый даже не смотри, он теперь в режиме поддержки. Второй Yii - современный. Перед изучением фреймворка изучи современные возможности PHP - те, которые описаны в посте. Также почитай про composer и bower - удобные инструменты с которыми тебе придется работать. По поводу информации - уже достаточно. Документация откинет у тебя большинство вопросов и спасет от костылей. В рунете есть elisdn - пишет постоянно о фреймоврке и проводит вебинары. Советую также подписаться на группу в Facebook - очень много полезного материала.

  1. Почта опубликована не будет.

  2. Можно использовать синтаксис Markdown или HTML.

  3. Введите ответ в поле. Щёлкните, чтобы получить другую задачу.