Browse Source

improved error handling of AssetConverter

issue #1140
tags/2.0.0-beta
Carsten Brandt 11 years ago
parent
commit
d4c68522d4
  1. 2
      framework/yii/views/errorHandler/exception.php
  2. 2
      framework/yii/views/errorHandler/previousException.php
  3. 11
      framework/yii/web/AssetConverter.php

2
framework/yii/views/errorHandler/exception.php

@ -359,7 +359,7 @@ pre .diff .change{
}
?></h1>
<?php endif; ?>
<h2><?= $handler->htmlEncode($exception->getMessage()) ?></h2>
<h2><?= nl2br($handler->htmlEncode($exception->getMessage())) ?></h2>
<?= $handler->renderPreviousExceptions($exception) ?>
</div>

2
framework/yii/views/errorHandler/previousException.php

@ -15,7 +15,7 @@
<span><?= $handler->htmlEncode(get_class($exception)) ?></span>
<?php endif; ?>
</h2>
<h3><?= $handler->htmlEncode($exception->getMessage()) ?></h3>
<h3><?= nl2br($handler->htmlEncode($exception->getMessage())) ?></h3>
<p>in <span class="file"><?= $exception->getFile() ?></span> at line <span class="line"><?= $exception->getLine() ?></span></p>
<?= $handler->renderPreviousExceptions($exception) ?>
</div>

11
framework/yii/web/AssetConverter.php

@ -9,6 +9,7 @@ namespace yii\web;
use Yii;
use yii\base\Component;
use yii\base\Exception;
/**
* AssetConverter supports conversion of several popular script formats into JS or CSS scripts.
@ -24,7 +25,7 @@ class AssetConverter extends Component implements AssetConverterInterface
* target script types (either "css" or "js") and the commands used for the conversion.
*/
public $commands = [
'less' => ['css', 'lessc {from} {to}'],
'less' => ['css', 'lessc {from} {to} --no-color'],
'scss' => ['css', 'sass {from} {to}'],
'sass' => ['css', 'sass {from} {to}'],
'styl' => ['js', 'stylus < {from} > {to}'],
@ -82,10 +83,12 @@ class AssetConverter extends Component implements AssetConverterInterface
}
$status = proc_close($proc);
if ($status !== 0) {
Yii::error("AssetConverter command '$command' failed with exit code $status:\nSTDOUT:\n$stdout\nSTDERR:\n$stderr\n");
} else {
if ($status === 0) {
Yii::trace("Converted $asset into $result:\nSTDOUT:\n$stdout\nSTDERR:\n$stderr", __METHOD__);
} elseif (YII_DEBUG) {
throw new Exception("AssetConverter command '$command' failed with exit code $status:\nSTDOUT:\n$stdout\nSTDERR:\n$stderr");
} else {
Yii::error("AssetConverter command '$command' failed with exit code $status:\nSTDOUT:\n$stdout\nSTDERR:\n$stderr");
}
return $status === 0;
}

Loading…
Cancel
Save