Начиная примерно с версии 1.5 или 1.6, Magento имел файл в корневой папке с именем get.php
. Этот файл, используя core/file_storage_data
модель, позволяет владельцам систем Magento обслуживать медиа-файлы своих продуктов непосредственно из столбцов BLOB-объектов в базе данных, не имея файла изображения в файловой системе. PHP обрабатывает отправку файла
#File: get.php
function sendFile($file)
{
if (file_exists($file) || is_readable($file)) {
$transfer = new Varien_File_Transfer_Adapter_Http();
$transfer->send($file);
exit;
}
}
Это отклоняется от исторической территории Magento, но почему эта функция была разработана? Кажется - слегка ненормальный. PHP - не самый эффективный способ обслуживания файла, хранилище больших двоичных объектов MySQL имеет нестабильную историю, и даже стабильная реализация больших двоичных объектов является трудной задачей, и, как я вижу Varien_File_Transfer_Adapter_Http
, не добавляет любые заголовки кэширования для этих файлов.
Кто-нибудь знает, почему Magento разработал эту функцию? Достигает ли она на самом деле какой-либо цели / задачи, которую ставит перед собой? Кто-нибудь использует это?