Kodları biraz karıştırırsak bir sorun göremiyoruz.
Bu fonksiyonun tanımı şöyle yapılmış. ...src/Spescina/Timthumb/Timthumb.php dosyasında
static function link($src,$w = 0,$h = 0,$zc = 1) {
$url = '/'.Config::get('timthumb::prefix').'/'.$w.'/'.$h.'/'.$zc.'/'.$src;
return $url;
}
config.php'sinde ise prefix'in tanımı şöyle:
'prefix' => 'proxy',
Dolayısıyla doğal olarak
Timthumb::link(asset('img/monimage.jpg'),200,200);
metodu ile dönen şu oluyor:
/proxy/200/200/1/http://www.sitem.com/public/img/monimage.jpg
peki bu nasıl oluyor da timthumb.php?src=resim.jpg&h=200&w=200$zc=1
yerine geçiyor. Bunun cevabı routes.php dosyasında:
Route::group(array('prefix' => Config::get('timthumb::prefix')), function() {
Route::get('{w}/{h}/{zc}/{src}', function($w,$h,$zc,$src) {
return Timthumb::get($src, $w, $h, $zc);
})
->where('w','[0-9]+')
->where('h','[0-9]+')
->where('zc','[0-9]')
->where('src','.*');
});
Bu durumda Timthumb::get fonksiyonuna bakmak lazım. link metodunun hemen üstünde bu metod var.
static function get($src,$w = 0,$h = 0,$zc = 3) {
$params = array(
'src' => $src,
'w' => $w,
'h' => $h,
'zc' => $zc
);
return TimthumbExt::start($params);
}
Bu durumda bir de ...src/Spescina/Timthumb/TimthumbExt.php dosyasına bakmak gerekecek.
public static function start(){
$tim = new TimthumbExt(func_get_arg(0));
$tim->handleErrors();
$tim->securityChecks();
if($tim->tryBrowserCache()){
exit(0);
}
$tim->handleErrors();
if(FILE_CACHE_ENABLED && $tim->tryServerCache()){
exit(0);
}
$tim->handleErrors();
$tim->run();
$tim->handleErrors();
exit(0);
}
Buradaki TimthumbExt sınıfı, resmi işleyen esas, orijinal timthumb sınıfı.
Bu durumda teorik olarak (test yapma şansım yok) şunun çalışması lazım:
<img src="{{ Timthumb::link('img/monimage.jpg',200,200) }}"/>