Yii2-application用法 (Yii::$app用法)

胡勇健發表於2024-03-30

Yii2-application用法 (Yii::$app用法)

配置檔案 config\web.php

Yii2-application用法 (Yii::$app用法)
return [
    'id' => 'app-frontend',
    'basePath' => dirname(__DIR__),
    'bootstrap' => ['log'],
    'controllerNamespace' => 'frontend\controllers',
    'components' => [
        'cache' => [
            'class' => 'yii\caching\FileCache',
        ],
        'request' => [
            'csrfParam' => '_csrf-frontend',
        ],
    ],
    'aliases' => [  // 註冊別名, 只寫屬性
        '@frontendweb' => '/frontend/web'
    ],
    'params' => $params,
];

常用屬性

Yii2-application用法 (Yii::$app用法)
Yii::$app->id;  // 當前應用的id, eg:'app-frontend'
Yii::$app->name;  // 當前應用的id, eg:'My Application'
Yii::$app->language;  // 當前應用的語言, eg:'en-US'
Yii::$app->charset;  // 當前應用的字符集, eg:'UTF-8'
Yii::$app->timeZone;  // 應用程式使用的時區, eg:'UTC'
Yii::$app->getTimeZone();  // 同上
Yii::$app->version;  // 應用程式的版本, eg:'1.0'
Yii::$app->getVersion();  // 同上
Yii::$app->controllerNamespace;  // 當前應用的控制器的名稱空間, eg:'frontend\controllers'
Yii::$app->controller;  // 當前的控制器物件, eg: frontend\controllers\SiteController 物件
Yii::$app->defaultRoute;  // 預設的控制器名, eg:'site'
Yii::$app->params;  // main.php 中 params 註冊的引數列表, 在 params.php 和 params-local 中
Yii::$app->bootstrap;  // main.php 中 bootstrap 註冊的元件列表, eg:['log', 'debug', 'gii']
Yii::$app->components;  // main.php 中 components 註冊的元件列表
Yii::$app->getComponents();  // 同上
Yii::$app->extensions;  // 當前應用安裝的擴充套件列表
Yii::$app->aliases;  // 在 main 中定義別名, 只寫屬性

目錄類

Yii2-application用法 (Yii::$app用法)
Yii::$app->basePath;  // 當前應用的根目錄 return: 'D:\wamp64\www\yii2advanced\frontend'
Yii::$app->getBasePath();  // 同上
Yii::$app->controllerPath;  // 當前應用到控制器目錄, eg:'D:\wamp64\www\yii2advanced/frontend/controllers'
Yii::$app->getControllerPath();  // 同上
Yii::$app->viewPath;  // 當前應用的檢視目錄, eg:'D:\wamp64\www\yii2advanced\frontend\views'
Yii::$app->getViewPath();  // 同上
Yii::$app->layoutPath;  // 當前應用的佈局檢視目錄, eg:'D:\wamp64\www\yii2advanced\frontend\views\layouts'
Yii::$app->getLayoutPath();  // 同上
Yii::$app->layout;  // 當前應用使用的佈局檢視檔名, eg:'main'
Yii::$app->runtimePath;  // 應用執行時的臨時檔案目錄, eg:'D:\wamp64\www\yii2advanced\frontend\runtime'
Yii::$app->getRuntimePath();  // 同上
Yii::$app->vendorPath;  // 返回 vendor 目錄, eg:'D:\wamp64\www\yii2advanced/vendor'
Yii::$app->getVendorPath();  // 同上
Yii::$app->homeUrl;  // 首頁的路由, eg: '/'
Yii::$app->getHomeUrl();  // 同上

元件類

Yii2-application用法 (Yii::$app用法)
Yii::$app->coreComponents();  // 返回核心應用程式元件的配置
Yii::$app->log;  // yii\log\Dispatcher 物件
Yii::$app->getLog();  // 同上
Yii::$app->view;  // yii\web\View 物件
Yii::$app->getView();  // 同上
Yii::$app->formatter;  // yii\i18n\Formatter 物件
Yii::$app->getFormatter();  // 同上
Yii::$app->i18n;  // yii\i18n\I18N 物件
Yii::$app->getI18n();  // 同上
Yii::$app->mailer;  // yii\swiftmailer\Mailer 物件
Yii::$app->getMailer();  // 同上
Yii::$app->urlManager;  // yii\web\UrlManager 物件
Yii::$app->getUrlManager();
Yii::$app->assetManager;  // yii\web\AssetManager 物件
Yii::$app->getAssetManager();  // 同上
Yii::$app->security;  // yii\base\Security 物件
Yii::$app->getSecurity();
Yii::$app->request;  // yii\web\Request 物件
Yii::$app->getRequest();  // 同上
Yii::$app->response;  // yii\web\Response 物件
Yii::$app->getResponse();  // 同上
Yii::$app->session;  // yii\web\Session 物件
Yii::$app->getSession();
Yii::$app->user;  // yii\web\User 物件
Yii::$app->getUser();  // 同上
Yii::$app->errorHandler;  // yii\web\ErrorHandler 物件
Yii::$app->getErrorHandler();  // 同上
Yii::$app->db;  // 當前資料庫連結物件, eg: yii\db\Connection 物件
Yii::$app->getDb();  // 同上
Yii::$app->cache;  // yii\caching\FileCache 物件
Yii::$app->getCache();  // 同上

其他的

Yii2-application用法 (Yii::$app用法)
Yii::$app->authManager;
Yii::$app->getAuthManager();
Yii::$app->behaviors;
Yii::$app->behaviors();
Yii::$app->getBehaviors();
Yii::$app->container;  
Yii::$app->catchAll;
Yii::$app->controllerMap;
Yii::$app->coreCommands();
Yii::$app->detachBehaviors(); 
Yii::$app->end();  // 終止應用程式
Yii::$app->enableCoreCommands;
Yii::$app->ensureBehaviors();
Yii::$app->init();
Yii::$app->loadedModules;
Yii::$app->modules;
Yii::$app->getModules();
Yii::$app->module;
Yii::$app->run();
Yii::$app->requestedAction;
Yii::$app->requestedParams;
Yii::$app->requestedRoute;
Yii::$app->sourceLanguage;
Yii::$app->state;
Yii::$app->uniqueId;
Yii::$app->getUniqueId();
Yii2-application用法 (Yii::$app用法)
Yii::$app->afterAction();
Yii::$app->attachBehavior();
Yii::$app->attachBehaviors();
Yii::$app->beforeAction();
Yii::$app->canGetProperty();
Yii::$app->canSetProperty();
Yii::$app->clear();
Yii::$app->createController();
Yii::$app->createControllerByID();
Yii::$app->detachBehavior();
Yii::$app->get();
Yii::$app->getBehavior();
Yii::$app->getModule();
Yii::$app->hasProperty();
Yii::$app->has();
Yii::$app->hasMethod();
Yii::$app->hasEventHandlers();
Yii::$app->handleRequest();
Yii::$app->hasModule();
Yii::$app->off();
Yii::$app->on();
Yii::$app->preInit();
Yii::$app->runAction();
Yii::$app->set();
Yii::$app->setAliases();
Yii::$app->setBasePath();
Yii::$app->setComponents();
Yii::$app->setContainer();
Yii::$app->setHomeUrl();
Yii::$app->setLayoutPath();
Yii::$app->setModule();
Yii::$app->setModules();
Yii::$app->setRuntimePath();
Yii::$app->setAliases();
Yii::$app->setTimeZone();
Yii::$app->setVendorPath();
Yii::$app->setVersion();
Yii::$app->setViewPath();
Yii::$app->trigger();