你會更好(更清晰的代碼,更容易重新使用)不這樣做。不論你需要調用特定FIT /顏色/反轉鏈
$image = $manager->make($source)->$extra;
echo editImage($image)->response('jpg', 85);
function editImage(\Intervention\Image $image){
return $image->fit(800, 500, null)->limitColors(5, '#ff9900')->invert();
}
,你可以打電話給你的功能:如果你需要一遍又一遍地做一個具體的東西,你可能想使一個功能。
如果你必須在每次迴應你的迴應之前做這個適合和限制等等,你可以更進一步: 你可以做一個子類 - Intervention\Image;
,你可以覆蓋響應類(我認爲,不確定是否有更好的,你應該檢查實際庫),並在內部調用這三個函數?
雖然這可能是矯枉過正。
作爲迴應您的評論:你可以做它像這樣:
function editImage(\Intervention\Image $image, YourSettingsObject $settings){
return $image
->fit($settings->width, $settings->height, $settings->something)
->limitColors($settings->limit, $settings->color)
->invert();
}}
在這裏,我假設你的設置創建一個類,您從您的數據庫填充它。當然,您可以輕鬆使用數組。應該考慮到一些問題(比如設置對象中不存在的值的理智默認值),並且可以使用需要添加到設置對象的任何內容來擴展此函數。
,所以你要做的就是創建第一個$image
,並從數據庫中獲取您的$settings
對象(或數組,如果你願意),並給予那些功能。根據這些設置,您只需要撥打所有fit
,limitColors
等。
是的,我認爲這將是一種做法,但想知道是否有另一種方式,原因很明顯 - 感謝提示! – Taapo
'$ extra'中的變量是什麼? – MaveRick
試試你的方式,我得到一個錯誤:「PHP致命錯誤:調用布爾上的成員函數響應()」。 $ extra是變量。 – Taapo