使用Solar_Geshi对代码进行高亮显示!

Solar Demo站中使用了Solar\_Geshi进行代码高亮,效果演示:[[http://demo.solarphp.cn/pay/alipay][http://demo.solarphp.cn/pay/alipay]] 其实很简单,只需要在视图中写上以下代码即可:

    geshi()
           ->append($this->code, $language)
            ->fetch();
?>

$this->code在action中定义,Deom站中最频繁的操作是获得某个控制器中某个动作的代码:

    protected function _getMethodSource(ReflectionMethod $method)
{
    $path = $method->getFileName();
    $lines = @file($path);
    $from = $method->getStartLine();
    $to = $method->getEndLine();
    $len = $to - $from + 1;
    return implode(array_slice($lines, $from-1, $len));
}

调用代码如下,你应该都懂的,不用多解释:

    $class = new ReflectionClass('Demo_App_Image');
$method = $class->getMethod('actionGd');
$this->code = $this->_getMethodSource($method);