Solar Demo站中使用了Solar_Geshi进行代码高亮,效果演示: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);