Данный сайт функционирует на Magento с модулем блога от Magefan
Изначально движок я ставил стандартно с помощью composer
$ sudo composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition=2.4.x magento2
Оно ставит пакет 'magento/product-community-edition' со всей своей кучей зависимостей и ненужных модулей
Потом я долго сидел и руками отключал те модули, которые можно отключить:
bin/magento module:disable <Module>
Но недавно наткнулся на Хабре на статью по минимальной установке Magento. И сделал у себя на сайте сайте как написано в данной статье
Собственно, пересказывать статью не буду, я делал все по статье (хотя я ставил версию 2.4.7 более свежую, чем у автора, но сильных различий я не заметил)
Единственно, у меня вылезла ошибка, описанная вот здесь
Насколько я понял это из-за более свежей версии библиотеки ICU library
Патч взял там же на github и применил его у себя в composer.json
"extra": {
"magento-force": "override",
"composer-exit-on-patch-failure": true,
"patches": {
"magento/framework": {
"ICU library where AmPmMarkers": "patches/composer/github-issue-38364.diff"
}
}
}
Еще мне не понравилось, что пропала версия (родной метод \Magento\Framework\App\ProductMetadata::getVersion возвращал UNKNOWN вместо версии)
Это из-за того, что данный метод работает с композером с файлом vendor/composer/installed.php и ищет пакет с именем 'magento/product-community-edition'
public function isSystemPackage($packageName = '')
{
if (preg_match('/magento\/product-.*?-edition/', $packageName) == 1) {
return true;
}
return false;
}
(это тот пакет, который тянет тысячу зависимостей и от которого я отказался)
В итоге самым простым решением IMHO является плагин:
<?php
namespace Emagento\Misc\Plugin\Framework\App;
class ProductMetadata
{
private const VERSION = '2.4.7';
public function aroundGetVersion(\Magento\Framework\App\ProductMetadata $subject, \Closure $proceed)
{
return self::VERSION;
}
}
После этого версию возвращает нормально
Вот вывод команды n98-magerun2
$ php n98-magerun2 sys:info
Name | Magento |
Version | 2.4.7 |
Edition | Community |
Root | /opt/www/magento2/e-magento.ru.local |
Application Mode | developer |
Session | files |
Search Engine | lmysql |
Cache Backend | Cm_Cache_Backend_File |
Vendors | Magento, Emagento, Magefan, Swissup |
Module Count | 79 |
Attribute Count | 157 |
Customer Count | 0 |
Category Count | 2 |
Product Count | 0 |
Admin User Count | 1 |
Composer Lock File | found |
Composer Package Count | 197 |
Magento Composer Root Update Plugin | not installed |
Magento Composer Dependency Version Audit Plugin | installed |
Magento Coding Standard Package | not installed |
Magento Functional Testing Framework | not installed |
MSI Packages | not installed |
Sample Data Packages | not installed |
Hyva Default Theme | not installed |
Hyva Theme Module | not installed |
Вот так выглядит каталог vendor
Согласитесь, это гораздо лучше, чем обычная установка с помощью композера :)