æ°ãããªãã¸ã§ã¯ããä½æããããæ¢åã®ãªãã¸ã§ã¯ããåæåããã¨ããYii ã§ã¯æ§ææ å ±ãåºã使ç¨ããã¦ãã¾ãã æ§ææ å ±ã¯é常ãä½æããããªãã¸ã§ã¯ãã®ã¯ã©ã¹åãããã³ãªãã¸ã§ã¯ãã® ãããã㣠ã«å²ãå½ã¦ãããåæå¤ã®ãªã¹ããå«ã¿ã¾ãã æ§ææ å ±ã¯ããªãã¸ã§ã¯ãã® ã¤ãã³ã ã«ã¢ã¿ããããããã³ãã©ã®ãªã¹ããããªãã¸ã§ã¯ãã«ã¢ã¿ããããã ããã¤ã㢠ã®ãªã¹ããå«ããã¨ãã§ãã¾ãã
以ä¸ã§ã¯ããã¼ã¿ãã¼ã¹æ¥ç¶ãä½æãã¦åæåããããã«ãæ§ææ å ±ã使ç¨ããã¦ãã¾ã:
$config = [
'class' => 'yii\db\Connection',
'dsn' => 'mysql:host=127.0.0.1;dbname=demo',
'username' => 'root',
'password' => '',
'charset' => 'utf8',
];
$db = Yii::createObject($config);
Yii::createObject() ã¡ã½ããã¯å¼æ°ã«æ§ææ å ±ã®é åãåãåããæ§ææ å ±ã§ååæå®ãããã¯ã©ã¹ãã¤ã³ã¹ã¿ã³ã¹åãã¦ãªãã¸ã§ã¯ããä½æãã¾ãã ãªãã¸ã§ã¯ããã¤ã³ã¹ã¿ã³ã¹åãããã¨ããæ§ææ å ±ã®æ®ãã®é¨åã使ã£ã¦ã ãªãã¸ã§ã¯ãã®ããããã£ãã¤ãã³ãã»ãã³ãã©ãããã³ããã¤ãã¢ãåæåããã¾ãã
ãã§ã«ãªãã¸ã§ã¯ããããå ´åã¯ãæ§ææ å ±é åã§ãªãã¸ã§ã¯ãã®ããããã£ãåæåããã®ã« Yii::configure() ã使ç¨ãããã¨ãã§ãã¾ã:
Yii::configure($object, $config);
ãªãããã®å ´åã«ã¯ãæ§ææ
å ±é
åã« class
è¦ç´ ãå«ãã§ã¯ããã¾ããã
æ§ææ å ±ã®å½¢å¼ã¯ããã©ã¼ãã«ã«ã¯æ¬¡ã®ããã«èª¬æã§ãã¾ã:
[
'class' => 'ClassName',
'propertyName' => 'propertyValue',
'on eventName' => $eventHandler,
'as behaviorName' => $behaviorConfig,
]
ããã§
class
è¦ç´ ã¯ãä½æããããªãã¸ã§ã¯ãã®å®å
¨ä¿®é£¾ã¯ã©ã¹åãæå®ãã¾ããpropertyName
è¦ç´ ã¯ãååã§æå®ãããããããã£ã®åæå¤ãæå®ãã¾ãã
ãã¼ã¯ããããã£åã§ãå¤ã¯ããã«å¯¾å¿ããåæå¤ã§ãã
ãããªãã¯ã»ã¡ã³ãå¤æ°ã¨ getter/setter ã«ãã£ã¦å®ç¾©ããã¦ãã ãããã㣠ã®ã¿ãè¨å®ãããã¨ãã§ãã¾ããon eventName
è¦ç´ ã¯ãã©ã®ãããªãã³ãã©ããªãã¸ã§ã¯ãã® ã¤ãã³ã ã«ã¢ã¿ãããããããæå®ãã¾ãã
é
åã®ãã¼ã on
ã«ç¶ãã¦ã¤ãã³ãåã¨ããæ¸å¼ã«ãªããã¨ã«æ³¨æãã¦ãã ããããµãã¼ãããã¦ããã¤ãã³ãã»ãã³ãã©ã®å½¢å¼ã«ã¤ãã¦ã¯ã
ã¤ãã³ã ã®ã»ã¯ã·ã§ã³ãåç
§ãã¦ãã ãããas behaviorName
è¦ç´ ã¯ãã©ã®ãã㪠ããã¤ã㢠ããªãã¸ã§ã¯ãã«ã¢ã¿ãããããããæå®ãã¾ãã
é
åã®ãã¼ã as
ã«ç¶ãã¦ããã¤ãã¢åã¨ããæ¸å¼ã«ãªãã$behaviorConfig
ã§ç¤ºãããå¤ããããã§èª¬æããä¸è¬çãªæ§ææ
å ±ã®ãããªã
ããã¤ãã¢ãä½æããããã®æ§ææ
å ±ã«ãªããã¨ã«æ³¨æãã¦ãã ãããä¸è¨ã¯ãåæããããã£å¤ãã¤ãã³ãã»ãã³ãã©ãããã³ããã¤ãã¢ã§ã®æ§æã示ããä¾ã§ã:
[
'class' => 'app\components\SearchEngine',
'apiKey' => 'xxxxxxxx',
'on search' => function ($event) {
Yii::info("Keyword searched: " . $event->keyword);
},
'as indexer' => [
'class' => 'app\components\IndexerBehavior',
// ... ããããã£åæå¤ ...
],
]
æ§ææ å ±ã¯ Yii ã®å¤ãã®å ´æã§ä½¿ç¨ããã¦ãã¾ãããã®ã»ã¯ã·ã§ã³ã®åé ã§ã¯ã Yii::createObject() ã使ã£ã¦ãæ§ææ å ±ã«å¿ãã¦ãªãã¸ã§ã¯ããä½æããæ¹æ³ã示ãã¾ããããã®é ã§ã¯ã ã¢ããªã±ã¼ã·ã§ã³ã®æ§æã¨ã¦ã£ã¸ã§ããã®æ§æã¨ãããäºã¤ã®ä¸»è¦ãªæ§ææ å ±ã®ç¨éã説æãã¾ãã
ã¢ããªã±ã¼ã·ã§ã³ ã®æ§ææ å ±ã¯ããããã Yii ã®ä¸ã§æãè¤éãªé åã®ã²ã¨ã¤ã§ãã ãã㯠ã¢ããªã±ã¼ã·ã§ã³ ã¯ã©ã¹ããè¨å®å¯è½ãªããããã£ã¨ã¤ãã³ããæ°å¤ãæã¤ããã§ãã ããã«éè¦ãªãã¨ã¯ããã® components ããããã£ããã¢ããªã±ã¼ã·ã§ã³ã«ç»é²ããã¦ãã ã³ã³ãã¼ãã³ãã®çæç¨ã®æ§ææ å ±é åãåãåããã¨ãã§ãããã¨ã§ãã以ä¸ã¯ã ãã¼ã·ãã¯ã»ããã¸ã§ã¯ãã»ãã³ãã¬ã¼ã ã®ã¢ããªã±ã¼ã·ã§ã³æ§æãã¡ã¤ã«ã®æ¦è¦ã§ãã
$config = [
'id' => 'basic',
'basePath' => dirname(__DIR__),
'extensions' => require __DIR__ . '/../vendor/yiisoft/extensions.php',
'components' => [
'cache' => [
'class' => 'yii\caching\FileCache',
],
'mailer' => [
'class' => 'yii\swiftmailer\Mailer',
],
'log' => [
'class' => 'yii\log\Dispatcher',
'traceLevel' => YII_DEBUG ? 3 : 0,
'targets' => [
[
'class' => 'yii\log\FileTarget',
],
],
],
'db' => [
'class' => 'yii\db\Connection',
'dsn' => 'mysql:host=localhost;dbname=stay2',
'username' => 'root',
'password' => '',
'charset' => 'utf8',
],
],
];
ãã®æ§ææ
å ±ã«ã¯ã class
ãã¼ãããã¾ãããããã¯ãã¨ã³ããªã»ã¹ã¯ãªãã ã§ä»¥ä¸ã®ããã«ã
ã¯ã©ã¹åãæ¢ã«ä¸ãããã¦ä½¿ç¨ããã¦ããããã§ãã
(new yii\web\Application($config))->run();
ã¢ããªã±ã¼ã·ã§ã³ã® components
ããããã£æ§æã®è©³ç´°ã«ã¤ãã¦ã¯ã ã¢ããªã±ã¼ã·ã§ã³ ã®ã»ã¯ã·ã§ã³ã¨
ãµã¼ãã¹ã»ãã±ã¼ã¿ ã®ã»ã¯ã·ã§ã³ã«ããã¾ãã
ãã¼ã¸ã§ã³ 2.0.11 以éã§ã¯ãã¢ããªã±ã¼ã·ã§ã³æ§æ㧠container
ããããã£ã使ã£ã¦
ä¾å注å
¥ã³ã³ãã ãæ§æãããã¨ããµãã¼ãããã¦ãã¾ããä¾ãã°ã
$config = [
'id' => 'basic',
'basePath' => dirname(__DIR__),
'extensions' => require __DIR__ . '/../vendor/yiisoft/extensions.php',
'container' => [
'definitions' => [
'yii\widgets\LinkPager' => ['maxButtonCount' => 5]
],
'singletons' => [
// ä¾å注å
¥ã³ã³ããã®ã·ã³ã°ã«ãã³ã®æ§æ
]
]
];
definitions
㨠singletons
ã®æ§ææ
å ±é
åã«ä½¿ç¨ã§ããå¤ã¨ãã®å®ä¾ã«ã¤ãã¦ããã«ç¥ãããã«ã¯ã
ä¾å注å
¥ã³ã³ãã ã®è¨äºã® é«åº¦ãªå®éã®ä½¿ç¨æ¹æ³
ã®ã»ã¯ã·ã§ã³ãèªãã§ãã ããã
ã¦ã£ã¸ã§ãã ã使ç¨ããã¨ãã¯ãå¤ãã®å ´åãã¦ã£ã¸ã§ããã®ããããã£ãã«ã¹ã¿ãã¤ãºããããã«ãæ§ææ å ±ã使ç¨ããå¿ è¦ãããã¾ãã yii\base\Widget::widget() 㨠yii\base\Widget::begin() ã®ä¸¡ã¡ã½ããã使ã£ã¦ãã¦ã£ã¸ã§ãããä½æã§ãã¾ãã ãããã¯ã以ä¸ã®ãããªæ§ææ å ±é åãåãã¾ãã
use yii\widgets\Menu;
echo Menu::widget([
'activateItems' => false,
'items' => [
['label' => 'ãã¼ã ', 'url' => ['site/index']],
['label' => '製å', 'url' => ['product/index']],
['label' => 'ãã°ã¤ã³', 'url' => ['site/login'], 'visible' => Yii::$app->user->isGuest],
],
]);
ä¸è¨ã®ã³ã¼ãã¯ã Menu
ã¦ã£ã¸ã§ãããä½æãããã® activateItems
ããããã£ã false
ã«ãªãããåæåãã¾ãã
items
ããããã£ãã表示ãããã¡ãã¥ã¼é
ç®ã§æ§æããã¾ãã
ã¯ã©ã¹åããã§ã«ä¸ãããã¦ããã®ã§ãæ§ææ
å ±é
åã class
ãã¼ãæã¤ã¹ãã§ã¯ãªããã¨ã«æ³¨æãã¦ãã ããã
æ§ææ
å ±ãã¨ã¦ãè¤éã«ãªãå ´åãä¸è¬çãªæ¹æ³ã¯ã æ§ææ
å ±ãã¡ã¤ã« ã¨å¼ã°ãããã²ã¨ã¤ã¾ãã¯è¤æ°ã® PHP ãã¡ã¤ã«ã«ãããæ ¼ç´ãããã¨ã§ãã
æ§ææ
å ±ãã¡ã¤ã«ã¯ãæ§ææ
å ±ã表ã PHP é
åãè¿ãã¾ãã
ãã¨ãã°ã次ã®ããã«ã web.php
ã¨åã¥ãããã¡ã¤ã«ã«ã¢ããªã±ã¼ã·ã§ã³ã®æ§ææ
å ±ãä¿æãããã¨ãã§ãã¾ãã
return [
'id' => 'basic',
'basePath' => dirname(__DIR__),
'extensions' => require __DIR__ . '/../vendor/yiisoft/extensions.php',
'components' => require __DIR__ . '/components.php',
];
components
ã®æ§ææ
å ±ãã¾ãè¤éã«ãªããããä¸è¨ã®ããã«ã components.php
ã¨å¼ã¶å¥ã®ãã¡ã¤ã«ã«ãããæ ¼ç´ã web.php
ã§ãã®ãã¡ã¤ã«ã "require" ãã¦ãã¾ãã
ãã® components.php
ã®å
容ã¯ã次ã®ããã«ãªã£ã¦ãã¾ãã
return [
'cache' => [
'class' => 'yii\caching\FileCache',
],
'mailer' => [
'class' => 'yii\swiftmailer\Mailer',
],
'log' => [
'class' => 'yii\log\Dispatcher',
'traceLevel' => YII_DEBUG ? 3 : 0,
'targets' => [
[
'class' => 'yii\log\FileTarget',
],
],
],
'db' => [
'class' => 'yii\db\Connection',
'dsn' => 'mysql:host=localhost;dbname=stay2',
'username' => 'root',
'password' => '',
'charset' => 'utf8',
],
];
æ§ææ å ±ãã¡ã¤ã«ã«æ ¼ç´ããã¦ããæ§ææ å ±ãåå¾ããã«ã¯ã以ä¸ã®ããã«ãããã "require" ããã ãã§ã:
$config = require 'path/to/web.php';
(new yii\web\Application($config))->run();
Yii::createObject() ã¡ã½ããã¯ã ä¾åæ§æ³¨å
¥ã³ã³ãã ããã¼ã¹ã«å®è£
ããã¦ãã¾ãã
ãã®ãããæå®ãããã¯ã©ã¹ã Yii::createObject() ã使ç¨ãã¦ä½æãããã¨ãããã®ãã¹ã¦ã®ã¤ã³ã¹ã¿ã³ã¹ã«é©ç¨ãããã
ãããã ããã©ã«ãè¨å® ã®ã»ãããæå®ãããã¨ãã§ãã¾ããããã©ã«ãè¨å®ã¯ã
ãã¼ãã¹ãã©ãã 段éã®ã³ã¼ãå
㧠Yii::$container->set()
ãå¼ã³åºããã¨ã§æå®ãããã¨ãã§ãã¾ãã
ãã¨ãã°ããªããããã¹ã¦ã®ãªã³ã¯ã»ãã¼ã¸ã£ãæ大ã§5ã¤ã®ãã¼ã¸ã»ãã¿ã³ (ããã©ã«ãå¤ã¯10) ãä¼´ã£ã¦è¡¨ç¤ºããããã yii\widgets\LinkPager ãã«ã¹ã¿ãã¤ãºãããã¨ãããã®ç®æ¨ãéæããã«ã¯æ¬¡ã®ã³ã¼ãã使ç¨ãããã¨ãã§ãã¾ãã
\Yii::$container->set('yii\widgets\LinkPager', [
'maxButtonCount' => 5,
]);
ããã©ã«ãè¨å®ã使ç¨ããªããã°ãããªãã¯ããªã³ã¯ã»ãã¼ã¸ã£ã使ããã¹ã¦ã®ç®æã§
maxButtonCount
ãè¨å®ããªããã°ãªãã¾ããã
æ§ææ
å ±ã¯ãå¤ãã®å ´åãã¢ããªã±ã¼ã·ã§ã³ãå®è¡ãããç°å¢ã«å¿ãã¦å¤åãã¾ãããã¨ãã°ã
éçºç°å¢ã§ã¯ mydb_dev
ã¨ããååã®ãã¼ã¿ãã¼ã¹ã使ç¨ããæ¬çªãµã¼ãä¸ã§ã¯ mydb_prod
ãã¼ã¿ãã¼ã¹ã
使ç¨ãããããããã¾ãããç°å¢ã®åãæ¿ãã容æã«ããããã«ãYii ã¯ãããªãã®ã¢ããªã±ã¼ã·ã§ã³ã®
ã¨ã³ããªã»ã¹ã¯ãªãã ã§å®ç¾©å¯è½ãª YII_ENV
ã¨ããååã®å®æ°ãæä¾ãã¾ãã
ãã¨ãã°:
defined('YII_ENV') or define('YII_ENV', 'dev');
YII_ENV
ã次ã®ããããã®å¤ã¨å®ç¾©ãããã¨ãã§ãã¾ã:
prod
: æ¬çªç°å¢ãå®æ° YII_ENV_PROD
ã true
ã¨è©ä¾¡ããã¾ãã
ã¨ãã«å®ç¾©ããªãå ´åãããã YII_ENV
ã®ããã©ã«ãå¤ã§ããdev
: éçºç°å¢ãå®æ° YII_ENV_DEV
ã true
ã¨è©ä¾¡ããã¾ããtest
: ãã¹ãç°å¢ãå®æ° YII_ENV_TEST
ã true
ã¨è©ä¾¡ããã¾ãããããã®ç°å¢å®æ°ã使ç¨ããã¨ãç¾å¨ã®ç°å¢ã«åºã¥ãã¦æ¡ä»¶ä»ãã§æ§ææ å ±ãæå®ãããã¨ãã§ãã¾ãã ãã¨ãã°ãã¢ããªã±ã¼ã·ã§ã³æ§ææ å ±ã«ã¯ãéçºç°å¢ã§ã® ãããã°ã»ãã¼ã«ãã¼ã¨ããã㬠ãæå¹ã«ããããã«ã次ã®ã³ã¼ããå«ããã¨ãã§ãã¾ãã
$config = [...];
if (YII_ENV_DEV) {
// 'dev' ç°å¢ç¨ã«æ§ææ
å ±ã調æ´
$config['bootstrap'][] = 'debug';
$config['modules']['debug'] = 'yii\debug\Module';
}
return $config;
Found a typo or you think this page needs improvement?
Edit it on github !
Signup or Login in order to comment.