Veri Mappers, Modelleri ve Resimleri

1 Cevap php

Ben gördüm ve blog gönderileri ve forum konular hakkında konuşmak ve PHP Veri Mapper / Model uygulamalardan örnekler vererek bol okudum, ama ben de dosyaları / görüntü kaydedilmesi ile anlaşma herhangi görmedim ettik.

Ben şu anda bir Zend Framework tabanlı proje üzerinde çalışıyorum ve ben (bir dosya yolu geçirilen olan) modelindeki bazı görüntü işleme yapıyorum, ve sonra uygun konuma bu dosyayı kaydetmek için eşleştiricisine onu terk ediyorum - bu yaygın bir uygulamadır?

Ama sonra, nasıl geçti birinden diyelim ki 3 farklı boyutta görüntüler oluştururken ile anlaşma yapmak? Şu anda ben, görüntü türünü denetler boyutlandırır ve sonra tekrar orijinal dosya kaydeder bir "setImage ($ path_to_tmp_name)" var. Bir çağrı için "getImagePath ()" sonra veri mapper kullanın ve ardından "setImagePath ($ yol)" bunun uygun konuma kaydedilmiş bir kez, "/ içerik / my_images" demek için bir çağrı ile değiştirebilirsiniz mevcut dosya yolunu döndürür . Bu sizin için pratik geliyor mu?

Ayrıca, nasıl ki resmin URL'sini alma ile anlaşma olacak? Eğer modeli temin edilmesi gereken bir şey olarak görüyor musunuz? Bu modeli görüntüleri depolanan veya sonuçta onlar bir tarayıcı aracılığıyla erişilen konum nasıl ve böylece ini dosyasında koymak eğiliminde değilim ve sadece aracılığıyla görünümüne URL öneki geçmek nerede endişe gerekir gibi geliyor bana kontrol ünitesi. Makul geliyor mu?

Ben görüntü manipülasyonu için GD kullanıyorum - değil herhangi bir alaka olduğunu.

Resim boyutlandırma tüm modelinde yapılmalıdır eğer UPDATE: merak ettik. Modeli, bir "ana" imajını ve bir "başparmak" imajını, belli boyutlarda her iki temin ediyor gerektirir olabilir. Ben bir "getImageSpecs ()" gerekli boyutlarda tanımlayan şey dönecekti model işlevi, daha sonra ayrı bir görüntü işleme sınıf boyutlandırma yürütmek olabilir ve (belki de denetleyicisi?) Oluşturma hakkında düşündüm ve sadece nihai geçmek ettik "setImagePaths ($ resim)" gibi bir şey kullanarak modeline de yolları.

Herhangi bir düşünce çok takdir :)

James.

1 Cevap

Ben bir hizmet katmanı (sizin durumunuzda mapper) yapmanız gerektiğini tam olarak ne gibi bir mapper dosyaya yolunu kaydetmek sahip yaygın bir uygulama olduğunu 1 söylerdim. Sizin durumunuzda en iyi şey, oluşturulan her dosya için bir yol oluşturmak olacaktır. Ben yapıyorum öneririm:

$path = '/path/to/root/' . substr(chunk_split(md5(<unique id for file>), 2, '/'), 0, 5);

/ Path/to/root/ab/23 /: senin yolunda yukarıdaki yaparak gibi bir şey olurdu. Her görüntü için farklı boyutlarda gerekir yana, şimdi boyutuna göre takip id adı ile her görüntüyü kaydedin. ex:

$fileName = <uniquie file id from above> . '_50_100' . $ext;

Eğer sonunda yapmanız gereken veritabanı yolunu kaydetmek olduğunu. Sizin model, daha sonra gitmek ve yol hizmeti tabaka oluşturur ve ihtiyacınız URL'leri inşa alabilirsiniz.