Google News
logo
Yii framework - Interview Questions
What is Application Components in YII Framework?
Applications are service locators. They host a set of the so-called application components that provide different services for processing requests. For example, the urlManager component is responsible for routing Web requests to appropriate controllers; the db component provides DB-related services; and so on.
 
Each application component has an ID that uniquely identifies itself among other application components in the same application. You can access an application component through the expression:
\Yii::$app->componentID
For example, you can use \Yii::$app->db to get the DB connection, and \Yii::$app->cache to get the primary cache registered with the application.
 
An application component is created the first time it is accessed through the above expression. Any further accesses will return the same component instance.
 
Application components can be any objects. You can register them by configuring the yii\base\Application::$components property in application configurations.

For example :
[
    'components' => [
        // register "cache" component using a class name
        'cache' => 'yii\caching\ApcCache',

        // register "db" component using a configuration array
        'db' => [
            'class' => 'yii\db\Connection',
            'dsn' => 'mysql:host=localhost;dbname=demo',
            'username' => 'root',
            'password' => '',
        ],

        // register "search" component using an anonymous function
        'search' => function () {
            return new app\components\SolrService;
        },
    ],
]
Advertisement