yiiext / yii2-yii-bridge

Yii bridge between v1.1.x and v2.0
23 stars 9 forks source link

Unknown component ID: i18n Error #15

Closed mehdi1564 closed 4 years ago

mehdi1564 commented 8 years ago

hi, im using yii2-yii-bridge and setup it. but when run site , This message is displayed:

yii\base\InvalidConfigException

Unknown component ID: i18n

cebe commented 8 years ago

do you have a stack trace of the error? and more info about your config? seems you are just missing the configuration of that component.

mehdi1564 commented 8 years ago

no , have not a stack trace.

my yii1 config:

return array(
    'basePath'=>dirname(__FILE__).DIRECTORY_SEPARATOR."..",
    'name'=>'My Web Application',

    // preloading 'log' component
    'preload'=>array('log'),

    // autoloading model and component classes
    'import'=>array(
        'application.models.*',
        'application.components.*',
    ),

    'modules'=>array(
        // uncomment the following to enable the Gii tool
        /*
        'gii'=>array(
            'class'=>'system.gii.GiiModule',
            'password'=>'Enter Your Password Here',
            // If removed, Gii defaults to localhost only. Edit carefully to taste.
            'ipFilters'=>array('127.0.0.1','::1'),
        ),
        */
    ),

    // application components
    'components'=>array(
        'user'=>array(
            // enable cookie-based authentication
            'allowAutoLogin'=>true,
        ),
        'i18n'=>array(

        ),
        // uncomment the following to enable URLs in path-format
        /*
        'urlManager'=>array(
            'urlFormat'=>'path',
            'rules'=>array(
                '<controller:\w+>/<id:\d+>'=>'<controller>/view',
                '<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
                '<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
            ),
        ),
        */
        'db'=>array(
            'connectionString' => 'mysql:host=localhost;dbname=testyii',
            'emulatePrepare' => true,
            'username' => 'root',
            'password' => '',
            'charset' => 'utf8',
        ),
        'errorHandler'=>array(
            // use 'site/error' action to display errors
            'errorAction'=>'site/error',
        ),
        'log'=>array(
            'class'=>'CLogRouter',
            'routes'=>array(
                array(
                    'class'=>'CFileLogRoute',
                    'levels'=>'error, warning',
                ),
                // uncomment the following to show log messages on web pages
                /*
                array(
                    'class'=>'CWebLogRoute',
                ),
                */
            ),
        ),
    ),

    // application-level parameters that can be accessed
    // using Yii::app()->params['paramName']
    'params'=>array(
        // this is used in contact page
        'adminEmail'=>'webmaster@example.com',
    ),
);

yii2 config:

$params = require(__DIR__ . '/params.php');

$config = [
    'id' => 'basic',
    'basePath' => dirname(__DIR__),
    'bootstrap' => ['log'],
    'components' => [
        'request' => [
            // !!! insert a secret key in the following (if it is empty) - this is required by cookie validation
            'cookieValidationKey' => '',
        ],
        'cache' => [
            'class' => 'yii\caching\FileCache',
        ],
        'user' => [
            'identityClass' => 'app\models\User',
            'enableAutoLogin' => true,
        ],
        'errorHandler' => [
            'errorAction' => 'site/error',
        ],
        'mailer' => [
            'class' => 'yii\swiftmailer\Mailer',
            // send all mails to a file by default. You have to set
            // 'useFileTransport' to false and configure a transport
            // for the mailer to send real emails.
            'useFileTransport' => true,
        ],
        'log' => [
            'traceLevel' => YII_DEBUG ? 3 : 0,
            'targets' => [
                [
                    'class' => 'yii\log\FileTarget',
                    'levels' => ['error', 'warning'],
                ],
            ],
        ],
        'db' => require(__DIR__ . '/db.php'),
    ],
    'params' => $params,
];

if (YII_ENV_DEV) {
    // configuration adjustments for 'dev' environment
    $config['bootstrap'][] = 'debug';
    $config['modules']['debug'] = 'yii\debug\Module';

    $config['bootstrap'][] = 'gii';
    $config['modules']['gii'] = 'yii\gii\Module';
}

return $config;
cebe commented 8 years ago

no idea why it is not there by default but you may add the i18n component config like this one to the yii2 config: https://github.com/yiisoft/yii2/blob/master/framework/base/Application.php#L622

mehdi1564 commented 8 years ago

tnx, but not work still, generally how do I upgrade my version 1 to version 2? Should I start coding?

cebe commented 8 years ago

upgrading from 1.1 to 2.0 genearally needs a rewrite of your code.

CreateWithCoding commented 6 years ago

this solved for me here by making sure you are using Require like below throughout your index.php under /web

Reference here: https://stackoverflow.com/questions/33496841/yii2-error-the-id-configuration-for-the-application-is-required

Here's your problem:

$config = (DIR.'/../config/web.php'); $config contains the path to web.php, not its contents. It should be:

$config = require(DIR . '/../config/web.php');

slavcodev commented 4 years ago

Closing the issue, the library is no longer maintained.