yii1 и composer

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
Аватара пользователя
Neuromance
Сообщения: 716
Зарегистрирован: 2011.09.06, 13:04

yii1 и composer

Сообщение Neuromance »

Всем привет.
Решил я к старенькому проекту на yii1 подключить композер. Обновил версию yii до последней. Установил композер, прописал в index.php

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

$loader = require(__DIR__ . '/protected/vendor/autoload.php');
Yii::$classMap = $loader->getClassMap();
Для тестирования загрузил в композер 2 библиотеки:
1. \Symfony\Component\VarDumper\VarDumper
2. \kartik\base\InputWidget

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

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

Fatal error:  Call to undefined method Yii::createObject() in /home/sz/www/yii-1.1.18.018a89/protected/vendor/yiisoft/yii2/base/Widget.php on line 136
[Fri Apr 28 17:19:46.756046 2017] [:error] [pid 17579] [client ::1:53100] PHP Stack trace:
[Fri Apr 28 17:19:46.756058 2017] [:error] [pid 17579] [client ::1:53100] PHP   1. {main}() /home/sz/www/yii-1.1.18.018a89/index.php:0
[Fri Apr 28 17:19:46.756064 2017] [:error] [pid 17579] [client ::1:53100] PHP   2. CApplication->run() /home/sz/www/yii-1.1.18.018a89/index.php:12
[Fri Apr 28 17:19:46.756069 2017] [:error] [pid 17579] [client ::1:53100] PHP   3. CWebApplication->processRequest() /home/sz/www/yii-1.1.18.018a89/framework/base/CApplication.php:185
[Fri Apr 28 17:19:46.756074 2017] [:error] [pid 17579] [client ::1:53100] PHP   4. CWebApplication->runController() /home/sz/www/yii-1.1.18.018a89/framework/web/CWebApplication.php:141
[Fri Apr 28 17:19:46.756079 2017] [:error] [pid 17579] [client ::1:53100] PHP   5. CController->run() /home/sz/www/yii-1.1.18.018a89/framework/web/CWebApplication.php:282
[Fri Apr 28 17:19:46.756084 2017] [:error] [pid 17579] [client ::1:53100] PHP   6. CController->runActionWithFilters() /home/sz/www/yii-1.1.18.018a89/framework/web/CController.php:265
[Fri Apr 28 17:19:46.756089 2017] [:error] [pid 17579] [client ::1:53100] PHP   7. CController->runAction() /home/sz/www/yii-1.1.18.018a89/framework/web/CController.php:286
[Fri Apr 28 17:19:46.756093 2017] [:error] [pid 17579] [client ::1:53100] PHP   8. CInlineAction->runWithParams() /home/sz/www/yii-1.1.18.018a89/framework/web/CController.php:308
[Fri Apr 28 17:19:46.756097 2017] [:error] [pid 17579] [client ::1:53100] PHP   9. SiteController->actionContact() /home/sz/www/yii-1.1.18.018a89/framework/web/actions/CInlineAction.php:49
[Fri Apr 28 17:19:46.756101 2017] [:error] [pid 17579] [client ::1:53100] PHP  10. CController->render() /home/sz/www/yii-1.1.18.018a89/protected/controllers/SiteController.php:57
[Fri Apr 28 17:19:46.756106 2017] [:error] [pid 17579] [client ::1:53100] PHP  11. CController->renderPartial() /home/sz/www/yii-1.1.18.018a89/framework/web/CController.php:785
[Fri Apr 28 17:19:46.756110 2017] [:error] [pid 17579] [client ::1:53100] PHP  12. CBaseController->renderFile() /home/sz/www/yii-1.1.18.018a89/framework/web/CController.php:872
[Fri Apr 28 17:19:46.756114 2017] [:error] [pid 17579] [client ::1:53100] PHP  13. CBaseController->renderInternal() /home/sz/www/yii-1.1.18.018a89/framework/web/CBaseController.php:95
[Fri Apr 28 17:19:46.756118 2017] [:error] [pid 17579] [client ::1:53100] PHP  14. require() /home/sz/www/yii-1.1.18.018a89/framework/web/CBaseController.php:126
[Fri Apr 28 17:19:46.756122 2017] [:error] [pid 17579] [client ::1:53100] PHP  15. yii\\base\\Widget::widget() /home/sz/www/yii-1.1.18.018a89/protected/views/site/contact.php:17
Т.е. падает при попытке вызвать метод yii2 createObject.

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

Re: yii1 и composer

Сообщение ElisDN »

Neuromance писал(а): 2017.04.28, 15:28 \kartik\base\InputWidget
Это ж виджет для Yii2...
Аватара пользователя
SiZE
Сообщения: 2813
Зарегистрирован: 2011.09.21, 12:39
Откуда: Perm
Контактная информация:

Re: yii1 и composer

Сообщение SiZE »

Neuromance писал(а): 2017.04.28, 15:28

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

Yii::$classMap = $loader->getClassMap();
А зачем это с композером? Можно же просто через NS обращаться. index.php так будет выглядеть:

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

$composer = dirname(__FILE__) . '/protected/vendor/autoload.php';
$yii = dirname(__FILE__) . '/protected/vendor/yiisoft/yii/framework/yii.php';
$config = dirname(__FILE__) . '/protected/config/main.php';

require_once($composer);
require_once($yii);
Yii::createWebApplication($config)->run();
Ответить