Od około wersji 1.5 lub 1.6 Magento miał plik w folderze głównym o nazwie get.php
. Ten plik, korzystając z core/file_storage_data
modelu, pozwala właścicielom systemu Magento na serwowanie plików multimedialnych produktów bezpośrednio z kolumn obiektów blob w bazie danych bez konieczności posiadania pliku obrazu w systemie plików. PHP obsługuje wysyłanie pliku
#File: get.php
function sendFile($file)
{
if (file_exists($file) || is_readable($file)) {
$transfer = new Varien_File_Transfer_Adapter_Http();
$transfer->send($file);
exit;
}
}
To wkracza na terytorium historii Magento, ale dlaczego ta funkcja została opracowana? Wydaje się - nieco szalony. PHP nie jest najskuteczniejszym sposobem udostępniania pliku, pamięć obiektów blob w MySQL ma historię niestabilności, a nawet stabilna implementacja obiektów blob bazy danych jest uciążliwa w pracy i z tego, co widzę Varien_File_Transfer_Adapter_Http
, nie dodaje się wszelkie buforowane nagłówki tych plików.
Czy ktoś wie, dlaczego Magento opracował tę funkcję? Czy faktycznie osiąga cel / problem, który zamierza rozwiązać? Czy ktoś go używa?
źródło