Проблемы селектора каталогов Xampp и Magento
-
16-10-2019 - |
Вопрос
Хорошо, у меня есть раздражающая проблема. У меня есть какой -то код в пользовательском вспомогательном модуле, который я использую для изменения размера изображений и сохранения кэшированной копии. Теперь это не работает. Однако, если я захожу в mage.php и изменю объявленную переменную DS
из DIRECTORY_SEPARATOR
к /
Это работает отлично. Однако тогда некоторые модули сообщества ломаются, которые используют стандарт DS
.
Вот мой метод:
public function resizeImg($fileName, $width, $height, $constrain = false, $ratio = false)
{
$folderURL = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA);
$imageURL = $folderURL . $fileName;
$basePath = Mage::getBaseDir(Mage_Core_Model_Store::URL_TYPE_MEDIA) . DS . $fileName;
$newPath = Mage::getBaseDir(Mage_Core_Model_Store::URL_TYPE_MEDIA) . DS . "resized" . DS . $width . DS . $fileName;
//if width empty then return original size image's URL
if ($width != '') {
//if image has already resized then just return URL
if (file_exists($basePath) && is_file($basePath)/* && !file_exists($newPath)*/) {
$imageObj = new Varien_Image($basePath);
$imageObj->constrainOnly($constrain);
$imageObj->keepAspectRatio($ratio);
$imageObj->keepFrame(FALSE);
$imageObj->resize($width, $height);
$imageObj->save($newPath);
}
$resizedURL = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA) . "resized" . DS . $width . DS . $fileName;
} else {
$resizedURL = $imageURL;
}
return $resizedURL;
}
И рабочее приложение/mage.php
define('DS', DIRECTORY_SEPARATOR);
Теперь, если я изменю это DS на '/', это работает нормально.
Затем я попробовал следующее:
define('DS2', '/');
Затем изменяет DS на DS2 в моем методе, но это также не сработало, и не изменяет его на строку или переменную.
Из моего поиска селектор каталогов определяется типом сервера, это должен быть сервер Linux, и все же только тогда, когда я использую DS, он ломается и пытался выводить вместо /, везде, он правильно выводит /.
Черт, я делаю не так?
Решение
Вы сбиваете с толку URL -адреса с каталогами.
getBaseUrl
для URL, которые всегда будут разделены /
getBaseDir
для каталогов, которые будут иметь переменную DS
определяется постоянной переменной PHP DIRECTORY_SEPARATOR
- Что и Magento сокращается до DS