mirror of
				https://github.com/yiisoft/yii2.git
				synced 2025-11-04 06:37:55 +08:00 
			
		
		
		
	yii\web\Request::cookieValidationKey is now automatically generated by the installation script for the basic and advanced application templates
				
					
				
			This commit is contained in:
		@ -13,6 +13,10 @@ return [
 | 
			
		||||
    'bootstrap' => ['log'],
 | 
			
		||||
    'modules' => [],
 | 
			
		||||
    'components' => [
 | 
			
		||||
        'request' => [
 | 
			
		||||
            // a secret key used to validate cookies. You may modify this key with your own one.
 | 
			
		||||
            'cookieValidationKey' => '',
 | 
			
		||||
        ],
 | 
			
		||||
        'user' => [
 | 
			
		||||
            'identityClass' => 'common\models\User',
 | 
			
		||||
            'enableAutoLogin' => true,
 | 
			
		||||
 | 
			
		||||
@ -1,50 +1,55 @@
 | 
			
		||||
{
 | 
			
		||||
	"name": "yiisoft/yii2-app-advanced",
 | 
			
		||||
	"description": "Yii 2 Advanced Application Template",
 | 
			
		||||
	"keywords": ["yii2", "framework", "advanced", "application template"],
 | 
			
		||||
	"homepage": "http://www.yiiframework.com/",
 | 
			
		||||
	"type": "project",
 | 
			
		||||
	"license": "BSD-3-Clause",
 | 
			
		||||
	"support": {
 | 
			
		||||
		"issues": "https://github.com/yiisoft/yii2/issues?state=open",
 | 
			
		||||
		"forum": "http://www.yiiframework.com/forum/",
 | 
			
		||||
		"wiki": "http://www.yiiframework.com/wiki/",
 | 
			
		||||
		"irc": "irc://irc.freenode.net/yii",
 | 
			
		||||
		"source": "https://github.com/yiisoft/yii2"
 | 
			
		||||
	},
 | 
			
		||||
	"minimum-stability": "dev",
 | 
			
		||||
	"require": {
 | 
			
		||||
		"php": ">=5.4.0",
 | 
			
		||||
		"yiisoft/yii2": "*",
 | 
			
		||||
		"yiisoft/yii2-bootstrap": "*",
 | 
			
		||||
		"yiisoft/yii2-swiftmailer": "*"
 | 
			
		||||
	},
 | 
			
		||||
	"require-dev": {
 | 
			
		||||
		"yiisoft/yii2-codeception": "*",
 | 
			
		||||
		"yiisoft/yii2-debug": "*",
 | 
			
		||||
		"yiisoft/yii2-gii": "*"
 | 
			
		||||
	},
 | 
			
		||||
	"suggest": {
 | 
			
		||||
		"codeception/codeception": "Codeception, 2.0.* is currently works well with Yii.",
 | 
			
		||||
		"codeception/specify": "BDD style code blocks for PHPUnit and Codeception",
 | 
			
		||||
		"codeception/verify": "BDD Assertions for PHPUnit and Codeception",
 | 
			
		||||
		"yiisoft/yii2-faker": "Fixtures generator for Yii2 based on Faker lib"
 | 
			
		||||
	},
 | 
			
		||||
	"scripts": {
 | 
			
		||||
		"post-create-project-cmd": [
 | 
			
		||||
			"yii\\composer\\Installer::setPermission"
 | 
			
		||||
		]
 | 
			
		||||
	},
 | 
			
		||||
	"config": {
 | 
			
		||||
		"process-timeout": 1800
 | 
			
		||||
	},
 | 
			
		||||
	"extra": {
 | 
			
		||||
		"writable": [
 | 
			
		||||
			"backend/runtime",
 | 
			
		||||
			"backend/web/assets",
 | 
			
		||||
    "name": "yiisoft/yii2-app-advanced",
 | 
			
		||||
    "description": "Yii 2 Advanced Application Template",
 | 
			
		||||
    "keywords": ["yii2", "framework", "advanced", "application template"],
 | 
			
		||||
    "homepage": "http://www.yiiframework.com/",
 | 
			
		||||
    "type": "project",
 | 
			
		||||
    "license": "BSD-3-Clause",
 | 
			
		||||
    "support": {
 | 
			
		||||
        "issues": "https://github.com/yiisoft/yii2/issues?state=open",
 | 
			
		||||
        "forum": "http://www.yiiframework.com/forum/",
 | 
			
		||||
        "wiki": "http://www.yiiframework.com/wiki/",
 | 
			
		||||
        "irc": "irc://irc.freenode.net/yii",
 | 
			
		||||
        "source": "https://github.com/yiisoft/yii2"
 | 
			
		||||
    },
 | 
			
		||||
    "minimum-stability": "dev",
 | 
			
		||||
    "require": {
 | 
			
		||||
        "php": ">=5.4.0",
 | 
			
		||||
        "yiisoft/yii2": "*",
 | 
			
		||||
        "yiisoft/yii2-bootstrap": "*",
 | 
			
		||||
        "yiisoft/yii2-swiftmailer": "*"
 | 
			
		||||
    },
 | 
			
		||||
    "require-dev": {
 | 
			
		||||
        "yiisoft/yii2-codeception": "*",
 | 
			
		||||
        "yiisoft/yii2-debug": "*",
 | 
			
		||||
        "yiisoft/yii2-gii": "*"
 | 
			
		||||
    },
 | 
			
		||||
    "suggest": {
 | 
			
		||||
        "codeception/codeception": "Codeception, 2.0.* is currently works well with Yii.",
 | 
			
		||||
        "codeception/specify": "BDD style code blocks for PHPUnit and Codeception",
 | 
			
		||||
        "codeception/verify": "BDD Assertions for PHPUnit and Codeception",
 | 
			
		||||
        "yiisoft/yii2-faker": "Fixtures generator for Yii2 based on Faker lib"
 | 
			
		||||
    },
 | 
			
		||||
    "scripts": {
 | 
			
		||||
        "post-create-project-cmd": [
 | 
			
		||||
            "yii\\composer\\Installer::setPermission",
 | 
			
		||||
            "yii\\composer\\Installer::generateCookieValidationKey"
 | 
			
		||||
        ]
 | 
			
		||||
    },
 | 
			
		||||
    "config": {
 | 
			
		||||
        "process-timeout": 1800
 | 
			
		||||
    },
 | 
			
		||||
    "extra": {
 | 
			
		||||
        "writable": [
 | 
			
		||||
            "backend/runtime",
 | 
			
		||||
            "backend/web/assets",
 | 
			
		||||
 | 
			
		||||
			"frontend/runtime",
 | 
			
		||||
			"frontend/web/assets"
 | 
			
		||||
		]
 | 
			
		||||
	}
 | 
			
		||||
            "frontend/runtime",
 | 
			
		||||
            "frontend/web/assets"
 | 
			
		||||
        ],
 | 
			
		||||
        "config": [
 | 
			
		||||
            "frontend/config/main.php",
 | 
			
		||||
            "backend/config/main.php"
 | 
			
		||||
        ]
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -12,6 +12,10 @@ return [
 | 
			
		||||
    'bootstrap' => ['log'],
 | 
			
		||||
    'controllerNamespace' => 'frontend\controllers',
 | 
			
		||||
    'components' => [
 | 
			
		||||
        'request' => [
 | 
			
		||||
            // a secret key used to validate cookies. You may modify this key with your own one.
 | 
			
		||||
            'cookieValidationKey' => '',
 | 
			
		||||
        ],
 | 
			
		||||
        'user' => [
 | 
			
		||||
            'identityClass' => 'common\models\User',
 | 
			
		||||
            'enableAutoLogin' => true,
 | 
			
		||||
 | 
			
		||||
@ -1,49 +1,53 @@
 | 
			
		||||
{
 | 
			
		||||
	"name": "yiisoft/yii2-app-basic",
 | 
			
		||||
	"description": "Yii 2 Basic Application Template",
 | 
			
		||||
	"keywords": ["yii2", "framework", "basic", "application template"],
 | 
			
		||||
	"homepage": "http://www.yiiframework.com/",
 | 
			
		||||
	"type": "project",
 | 
			
		||||
	"license": "BSD-3-Clause",
 | 
			
		||||
	"support": {
 | 
			
		||||
		"issues": "https://github.com/yiisoft/yii2/issues?state=open",
 | 
			
		||||
		"forum": "http://www.yiiframework.com/forum/",
 | 
			
		||||
		"wiki": "http://www.yiiframework.com/wiki/",
 | 
			
		||||
		"irc": "irc://irc.freenode.net/yii",
 | 
			
		||||
		"source": "https://github.com/yiisoft/yii2"
 | 
			
		||||
	},
 | 
			
		||||
	"minimum-stability": "dev",
 | 
			
		||||
	"require": {
 | 
			
		||||
		"php": ">=5.4.0",
 | 
			
		||||
		"yiisoft/yii2": "*",
 | 
			
		||||
		"yiisoft/yii2-bootstrap": "*",
 | 
			
		||||
		"yiisoft/yii2-swiftmailer": "*"
 | 
			
		||||
	},
 | 
			
		||||
	"require-dev": {
 | 
			
		||||
		"yiisoft/yii2-codeception": "*",
 | 
			
		||||
		"yiisoft/yii2-debug": "*",
 | 
			
		||||
		"yiisoft/yii2-gii": "*"
 | 
			
		||||
	},
 | 
			
		||||
	"suggest": {
 | 
			
		||||
		"codeception/codeception": "Codeception, 2.0.* is currently works well with Yii.",
 | 
			
		||||
		"codeception/specify": "BDD style code blocks for PHPUnit and Codeception",
 | 
			
		||||
		"codeception/verify": "BDD Assertions for PHPUnit and Codeception"
 | 
			
		||||
	},
 | 
			
		||||
	"scripts": {
 | 
			
		||||
		"post-create-project-cmd": [
 | 
			
		||||
			"yii\\composer\\Installer::setPermission"
 | 
			
		||||
		]
 | 
			
		||||
	},
 | 
			
		||||
	"config": {
 | 
			
		||||
		"process-timeout": 1800
 | 
			
		||||
	},
 | 
			
		||||
	"extra": {
 | 
			
		||||
		"writable": [
 | 
			
		||||
			"runtime",
 | 
			
		||||
			"web/assets"
 | 
			
		||||
		],
 | 
			
		||||
		"executable": [
 | 
			
		||||
			"yii"
 | 
			
		||||
		]
 | 
			
		||||
	}
 | 
			
		||||
    "name": "yiisoft/yii2-app-basic",
 | 
			
		||||
    "description": "Yii 2 Basic Application Template",
 | 
			
		||||
    "keywords": ["yii2", "framework", "basic", "application template"],
 | 
			
		||||
    "homepage": "http://www.yiiframework.com/",
 | 
			
		||||
    "type": "project",
 | 
			
		||||
    "license": "BSD-3-Clause",
 | 
			
		||||
    "support": {
 | 
			
		||||
        "issues": "https://github.com/yiisoft/yii2/issues?state=open",
 | 
			
		||||
        "forum": "http://www.yiiframework.com/forum/",
 | 
			
		||||
        "wiki": "http://www.yiiframework.com/wiki/",
 | 
			
		||||
        "irc": "irc://irc.freenode.net/yii",
 | 
			
		||||
        "source": "https://github.com/yiisoft/yii2"
 | 
			
		||||
    },
 | 
			
		||||
    "minimum-stability": "dev",
 | 
			
		||||
    "require": {
 | 
			
		||||
        "php": ">=5.4.0",
 | 
			
		||||
        "yiisoft/yii2": "*",
 | 
			
		||||
        "yiisoft/yii2-bootstrap": "*",
 | 
			
		||||
        "yiisoft/yii2-swiftmailer": "*"
 | 
			
		||||
    },
 | 
			
		||||
    "require-dev": {
 | 
			
		||||
        "yiisoft/yii2-codeception": "*",
 | 
			
		||||
        "yiisoft/yii2-debug": "*",
 | 
			
		||||
        "yiisoft/yii2-gii": "*"
 | 
			
		||||
    },
 | 
			
		||||
    "suggest": {
 | 
			
		||||
        "codeception/codeception": "Codeception, 2.0.* is currently works well with Yii.",
 | 
			
		||||
        "codeception/specify": "BDD style code blocks for PHPUnit and Codeception",
 | 
			
		||||
        "codeception/verify": "BDD Assertions for PHPUnit and Codeception"
 | 
			
		||||
    },
 | 
			
		||||
    "scripts": {
 | 
			
		||||
        "post-create-project-cmd": [
 | 
			
		||||
            "yii\\composer\\Installer::setPermission",
 | 
			
		||||
            "yii\\composer\\Installer::generateCookieValidationKey"
 | 
			
		||||
        ]
 | 
			
		||||
    },
 | 
			
		||||
    "config": {
 | 
			
		||||
        "process-timeout": 1800
 | 
			
		||||
    },
 | 
			
		||||
    "extra": {
 | 
			
		||||
        "writable": [
 | 
			
		||||
            "runtime",
 | 
			
		||||
            "web/assets"
 | 
			
		||||
        ],
 | 
			
		||||
        "executable": [
 | 
			
		||||
            "yii"
 | 
			
		||||
        ],
 | 
			
		||||
        "config": [
 | 
			
		||||
            "config/web.php"
 | 
			
		||||
        ]
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -7,6 +7,10 @@ $config = [
 | 
			
		||||
    'basePath' => dirname(__DIR__),
 | 
			
		||||
    'bootstrap' => ['log'],
 | 
			
		||||
    'components' => [
 | 
			
		||||
        'request' => [
 | 
			
		||||
            // a secret key used to validate cookies. You may modify this key with your own one.
 | 
			
		||||
            'cookieValidationKey' => '',
 | 
			
		||||
        ],
 | 
			
		||||
        'cache' => [
 | 
			
		||||
            'class' => 'yii\caching\FileCache',
 | 
			
		||||
        ],
 | 
			
		||||
 | 
			
		||||
@ -22,6 +22,7 @@ class Installer extends LibraryInstaller
 | 
			
		||||
    const EXTRA_BOOTSTRAP = 'bootstrap';
 | 
			
		||||
    const EXTRA_WRITABLE = 'writable';
 | 
			
		||||
    const EXTRA_EXECUTABLE = 'executable';
 | 
			
		||||
    const EXTRA_CONFIG = 'config';
 | 
			
		||||
 | 
			
		||||
    const EXTENSION_FILE = 'yiisoft/extensions.php';
 | 
			
		||||
 | 
			
		||||
@ -258,4 +259,33 @@ EOF
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Generates a cookie validation key for every app config listed in "config" in extra section.
 | 
			
		||||
     * @param CommandEvent $event
 | 
			
		||||
     */
 | 
			
		||||
    public static function generateCookieValidationKey($event)
 | 
			
		||||
    {
 | 
			
		||||
        $extra = $event->getComposer()->getPackage()->getExtra();
 | 
			
		||||
        if (empty($extra[self::EXTRA_CONFIG])) {
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
        $key = self::generateRandomString();
 | 
			
		||||
        foreach ((array) $extra[self::EXTRA_CONFIG] as $config) {
 | 
			
		||||
            if (is_file($config)) {
 | 
			
		||||
                $content = preg_replace('/(("|\')cookieValidationKey("|\')\s*=>\s*)(""|\'\')/i', "\\1'$key'", file_get_contents($config));
 | 
			
		||||
                file_put_contents($config, $content);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static function generateRandomString()
 | 
			
		||||
    {
 | 
			
		||||
        if (!extension_loaded('mcrypt')) {
 | 
			
		||||
            throw new \Exception('The mcrypt PHP extension is required by Yii2.');
 | 
			
		||||
        }
 | 
			
		||||
        $length = 32;
 | 
			
		||||
        $bytes = mcrypt_create_iv($length, MCRYPT_DEV_URANDOM);
 | 
			
		||||
        return strtr(substr(base64_encode($bytes), 0, $length), '+/=', '_-.');
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -188,6 +188,7 @@ Yii Framework 2 Change Log
 | 
			
		||||
- Chg: Changed the default value of the `keyPrefix` property of cache components to be null (qiangxue)
 | 
			
		||||
- Chg: Added `prefix` column to `yii\log\DbTarget` to have the same amount of information logged as in files and emails (cebe)
 | 
			
		||||
- Chg: Use `limit(null)` instead of `limit(-1)` in migration controller to be compatible to more backends (cebe)
 | 
			
		||||
- Chg: `yii\web\Request::cookieValidationKey` is now automatically generated by the installation script for the basic and advanced application templates (qiangxue)
 | 
			
		||||
- New #3911: Added `yii\behaviors\SluggableBehavior` that fills the specified model attribute with the transliterated and adjusted version to use in URLs (creocoder)
 | 
			
		||||
- New #4193: Added `yii\filters\Cors` CORS filter to allow Cross Origin Resource Sharing (pgaultier)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user