Использовать Yii2 вместе с Yii1

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
raketa
Сообщения: 131
Зарегистрирован: 2011.07.28, 17:29

Использовать Yii2 вместе с Yii1

Сообщение raketa »

Возможно ли использовать две ветки одновременно, в одном проекте? Как это сделать?
План такой: есть проект на Yii1 в котором постоянно добавляются новые вичи, так вот чтобы ускорить переход на Yii2 хотелось бы новые модули реализовывать на Yii2, ну и старые постепенно переписывать на Yii2.
Аватара пользователя
maleks
Сообщения: 1985
Зарегистрирован: 2012.12.26, 12:56

Re: Использовать Yii2 вместе с Yii1

Сообщение maleks »

вряд ли получится.
Разные они.
Yii2 universal module sceleton - for basic and advanced templates
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Использовать Yii2 вместе с Yii1

Сообщение zelenin »

raketa писал(а):Возможно ли использовать две ветки одновременно, в одном проекте? Как это сделать?
План такой: есть проект на Yii1 в котором постоянно добавляются новые вичи, так вот чтобы ускорить переход на Yii2 хотелось бы новые модули реализовывать на Yii2, ну и старые постепенно переписывать на Yii2.
https://github.com/yiisoft/yii2/blob/ma ... -with-yii1

не знаю поможет ли.
Переписывайте сразу весь проект на yii2. Или оставьте на yii1.
raketa
Сообщения: 131
Зарегистрирован: 2011.07.28, 17:29

Re: Использовать Yii2 вместе с Yii1

Сообщение raketa »

тоже вчера прочитал, надо попробовать
Может кто то уже пробовал совмещать по данной инструкции?
Переписывать сразу все будет долго, оставаться тоже не хочется больно уж привлекают официальные расширения по работе с mongodb, elasticsearche и тр., в принципе нужна единая сессия и доступ к данным пользователям, как лучше сделать единую авторизацию?
Последний раз редактировалось raketa 2014.05.20, 12:21, всего редактировалось 1 раз.
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Использовать Yii2 вместе с Yii1

Сообщение zelenin »

raketa писал(а):тоже вчера прочитал, надо попробовать
Может кто то уже пробовал совмещать по данной инструкции?
а что тут читать? замучаетесь, а работать не будет - к гадалке не ходи.
raketa
Сообщения: 131
Зарегистрирован: 2011.07.28, 17:29

Re: Использовать Yii2 вместе с Yii1

Сообщение raketa »

zelenin писал(а):
raketa писал(а):тоже вчера прочитал, надо попробовать
Может кто то уже пробовал совмещать по данной инструкции?
а что тут читать? замучаетесь, а работать не будет - к гадалке не ходи.
должен же быть какой то выход
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Использовать Yii2 вместе с Yii1

Сообщение zelenin »

raketa писал(а):
zelenin писал(а):
raketa писал(а):тоже вчера прочитал, надо попробовать
Может кто то уже пробовал совмещать по данной инструкции?
а что тут читать? замучаетесь, а работать не будет - к гадалке не ходи.
должен же быть какой то выход
я уже написал его.
Аватара пользователя
slavcodev
Сообщения: 3134
Зарегистрирован: 2009.04.02, 21:42
Откуда: Valencia
Контактная информация:

Re: Использовать Yii2 вместе с Yii1

Сообщение slavcodev »

У меня похожая задача. Только проект мой на ZF2 :)
Выход есть, но приходится писать много временных врапперов и декараторов.
Жду Yii 3!
Аватара пользователя
slavcodev
Сообщения: 3134
Зарегистрирован: 2009.04.02, 21:42
Откуда: Valencia
Контактная информация:

Re: Использовать Yii2 вместе с Yii1

Сообщение slavcodev »

с Yii1 и Yii2, теоритечески проще

1) Yii::app() - приложение Yii1
2) Yii::$app - приложение Yii2
3) В зависимости от запроса одно приложение только инициализируется (init), второе запускается (run), можно через mod_rewrite запускать либо index-yii.php либо index-yii2.php

но не ждите что будет слишком просто :D
Жду Yii 3!
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Использовать Yii2 вместе с Yii1

Сообщение samdark »

Могут быть проблемы с загрузчиком классов, если пользуетесь и там и там алиасами.
romanown
Сообщения: 10
Зарегистрирован: 2015.01.04, 22:19

Re: Использовать Yii2 вместе с Yii1

Сообщение romanown »

извините что подымаю столь старую тему, но вопрос актуален и сейчас. попробовал сделать по указанной ссылке одновременно чтобы запускать обе версии, но не получилось. пхп показывает ошибку в обеих версиях. может ли кто привести правильное содержимое файла нового класса Yii? предполагаю, что я не правильно понял его содержимое как сделать. а если возможно и файла входного скрипта. с путями надеюсь смогу разобраться в зависимости от структуры проекта предоставленного файла и своей. предполагаю, что я не правильно делаю этот новый класс, вставляя в него содержимое старого.
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Использовать Yii2 вместе с Yii1

Сообщение ElisDN »

romanown писал(а): 2021.05.06, 00:09 попробовал сделать по указанной ссылке одновременно чтобы запускать обе версии, но не получилось. пхп показывает ошибку в обеих версиях. может ли кто привести правильное содержимое файла нового класса Yii?
Пробовал. Получилось в https://elisdn.ru/blog/137/rewriting-legacy

public/index.php:

Код: Выделить всё

require_once __DIR__ . '/../vendor/autoload.php';
require_once __DIR__ . '/../bootstrap.php';

$yii2Config = require __DIR__ . '/../config/v2/web.php';
new yii\web\Application($yii2Config);

$app = Yii::createWebApplication(__DIR__ . '/../config/web.php');
$app->run();
bootstrap.php:

Код: Выделить всё

require_once __DIR__ . '/Yii.php';

$yii1path = __DIR__ . '/vendor/yiisoft/yii/framework';
$yii2path = __DIR__ . '/vendor/yiisoft/yii2';

require_once $yii1path . '/YiiBase.php';

spl_autoload_unregister(['YiiBase', 'autoload']);
spl_autoload_register(['Yii', 'autoload']);

Yii::$classMap = include($yii2path . '/classes.php');
Yii::registerAutoloader([yii\BaseYii::class, 'autoload']);

Yii::$container = new yii\di\Container();
А в файл Yii.php:

Код: Выделить всё

use yii\BaseYii;

class Yii extends BaseYii
{
   ...
}
аккуратно копируем статические методы и поля из Yii1.
Ответить