Browse Source

removed InstallHandler.

tags/2.0.0-beta
Qiang Xue 11 years ago
parent
commit
8fc489091b
  1. 4
      apps/advanced/composer.json
  2. 6
      apps/basic/composer.json
  3. 4
      docs/guide/apps-advanced.md
  4. 6
      docs/guide/apps-basic.md
  5. 97
      extensions/composer/yii/composer/InstallHandler.php
  6. 1
      extensions/jui/yii/jui/AccordionAsset.php
  7. 27
      extensions/jui/yii/jui/Extension.php

4
apps/advanced/composer.json

@ -20,12 +20,12 @@
}, },
"scripts": { "scripts": {
"post-create-project-cmd": [ "post-create-project-cmd": [
"yii\\composer\\InstallHandler::setPermissions", "yii\\composer\\Installer::setPermission",
"./init" "./init"
] ]
}, },
"extra": { "extra": {
"yii-install-writable": [ "writable": [
"backend/runtime", "backend/runtime",
"backend/web/assets", "backend/web/assets",

6
apps/basic/composer.json

@ -20,15 +20,15 @@
}, },
"scripts": { "scripts": {
"post-create-project-cmd": [ "post-create-project-cmd": [
"yii\\composer\\InstallHandler::setPermissions" "yii\\composer\\Installer::setPermission"
] ]
}, },
"extra": { "extra": {
"yii-install-writable": [ "writable": [
"runtime", "runtime",
"web/assets" "web/assets"
], ],
"yii-install-executable": [ "executable": [
"yii" "yii"
] ]
} }

4
docs/guide/apps-advanced.md

@ -144,11 +144,11 @@ directory:
}, },
"scripts": { "scripts": {
"post-create-project-cmd": [ "post-create-project-cmd": [
"yii\\composer\\InstallHandler::setPermissions" "yii\\composer\\Installer::setPermission"
] ]
}, },
"extra": { "extra": {
"yii-install-writable": [ "writable": [
"backend/runtime", "backend/runtime",
"backend/web/assets", "backend/web/assets",

6
docs/guide/apps-basic.md

@ -134,15 +134,15 @@ directory:
}, },
"scripts": { "scripts": {
"post-create-project-cmd": [ "post-create-project-cmd": [
"yii\\composer\\InstallHandler::setPermissions" "yii\\composer\\Installer::setPermission"
] ]
}, },
"extra": { "extra": {
"yii-install-writable": [ "writable": [
"runtime", "runtime",
"web/assets" "web/assets"
], ],
"yii-install-executable": [ "executable": [
"yii" "yii"
] ]
} }

97
extensions/composer/yii/composer/InstallHandler.php

@ -1,97 +0,0 @@
<?php
/**
* @link http://www.yiiframework.com/
* @copyright Copyright (c) 2008 Yii Software LLC
* @license http://www.yiiframework.com/license/
*/
namespace yii\composer;
use Composer\Script\CommandEvent;
use yii\console\Application;
use yii\console\Exception;
defined('YII_DEBUG') or define('YII_DEBUG', true);
// fcgi doesn't have STDIN defined by default
defined('STDIN') or define('STDIN', fopen('php://stdin', 'r'));
/**
* InstallHandler is called by Composer after it installs/updates the current package.
*
* @author Qiang Xue <qiang.xue@gmail.com>
* @author Tobias Munk <schmunk@usrbin.de>
* @since 2.0
*/
class InstallHandler
{
const PARAM_WRITABLE = 'yii-install-writable';
const PARAM_EXECUTABLE = 'yii-install-executable';
const PARAM_CONFIG = 'yii-install-config';
const PARAM_COMMANDS = 'yii-install-commands';
/**
* Sets the correct permissions of files and directories.
* @param CommandEvent $event
*/
public static function setPermissions($event)
{
$options = array_merge([
self::PARAM_WRITABLE => [],
self::PARAM_EXECUTABLE => [],
], $event->getComposer()->getPackage()->getExtra());
foreach ((array)$options[self::PARAM_WRITABLE] as $path) {
echo "Setting writable: $path ...";
if (is_dir($path)) {
chmod($path, 0777);
echo "done\n";
} else {
echo "The directory was not found: " . getcwd() . DIRECTORY_SEPARATOR . $path;
return;
}
}
foreach ((array)$options[self::PARAM_EXECUTABLE] as $path) {
echo "Setting executable: $path ...";
if (is_file($path)) {
chmod($path, 0755);
echo "done\n";
} else {
echo "\n\tThe file was not found: " . getcwd() . DIRECTORY_SEPARATOR . $path . "\n";
return;
}
}
}
/**
* Executes a yii command.
* @param CommandEvent $event
*/
public static function run($event)
{
$options = array_merge([
self::PARAM_COMMANDS => [],
], $event->getComposer()->getPackage()->getExtra());
if (!isset($options[self::PARAM_CONFIG])) {
throw new Exception('Please specify the "' . self::PARAM_CONFIG . '" parameter in composer.json.');
}
$configFile = getcwd() . '/' . $options[self::PARAM_CONFIG];
if (!is_file($configFile)) {
throw new Exception("Config file does not exist: $configFile");
}
require_once(__DIR__ . '/../../../yii2/yii/Yii.php');
$application = new Application(require($configFile));
$request = $application->getRequest();
foreach ((array)$options[self::PARAM_COMMANDS] as $command) {
$params = str_getcsv($command, ' '); // see http://stackoverflow.com/a/6609509/291573
$request->setParams($params);
list($route, $params) = $request->resolve();
echo "Running command: yii {$command}\n";
$application->runAction($route, $params);
}
}
}

1
extensions/jui/yii/jui/AccordionAsset.php

@ -6,6 +6,7 @@
*/ */
namespace yii\jui; namespace yii\jui;
use yii\web\AssetBundle; use yii\web\AssetBundle;
/** /**

27
extensions/jui/yii/jui/Extension.php

@ -0,0 +1,27 @@
<?php
/**
* @link http://www.yiiframework.com/
* @copyright Copyright (c) 2008 Yii Software LLC
* @license http://www.yiiframework.com/license/
*/
namespace yii\jui;
use Yii;
/**
* This is the bootstrap class for the Yii JUI extension.
*
* @author Qiang Xue <qiang.xue@gmail.com>
* @since 2.0
*/
class Extension extends \yii\base\Extension
{
/**
* @inheritdoc
*/
public static function init()
{
Yii::setAlias('@yii/jui', __DIR__);
}
}
Loading…
Cancel
Save