app/controller/image_controller.php
<?php class ImageController extends AppController { var $name = 'Image'; var $uses = array(); function index() { header('Content-Type: image/png'); $this->set('image', file_get_contents(APP.'tmp'.DS.'cache'.DS.'wallpaper.png')); $this->layout = ''; $this->render(); } } ?>
app/views/image/index.thtml
<?php echo $image;?>
$this->layoutを空にするのを忘れると,(デフォルトレイアウトをいじらない限り)表示されなくなります.echoでfile_get_contentsしたものをそのまま吐いてしまえば,表示はされますが,$this->layoutを空にするのを忘れたときに,画像の末尾にHTMLがくっついちゃうので,$this->setしたほうがミスは減るでしょう.
http://d.hatena.ne.jp/surge/20080212/1202743718
Controller::autoRenderってメンバがあるんだ.ビューに渡したりと回りくどいことをしなくてよいかも…