Saltar al contenido

Magento 2: cómo obtener la ruta del directorio ‘web’ del módulo personalizado/Obtener la ruta del directorio de imágenes del módulo personalizado

Este grupo redactor ha pasado horas buscando la solución a tu interrogante, te brindamos la respuestas de modo que nuestro deseo es servirte de gran ayuda.

Solución:

Use el código a continuación para obtener la ruta del directorio del módulo

class CustomModel

    /**
     * @var MagentoFrameworkModuleDirReader
     */
    protected $moduleReader;

    /**
     * @param MagentoFrameworkModuleDirReader $moduleReader
     */
    public function __construct(
        MagentoFrameworkModuleDirReader $moduleReader
    ) 
        $this->moduleReader = $moduleReader;
    

    public function getDirectory()
    
        $viewDir = $this->moduleReader->getModuleDir(
            MagentoFrameworkModuleDir::MODULE_VIEW_DIR,
            'Vendor_Module'
        );
        return $viewDir . '/frontend/web/images';
    

pero si necesita verificar el contenido static archivo que te recomiendo usar de esta manera…

class CustomModel

/**
     * @var MagentoFrameworkViewAssetRepository
     */
    protected $assetRepository;

    /**
     * @param MagentoFrameworkViewAssetRepository $assetRepository
     */
    public function __construct(
        MagentoFrameworkViewAssetRepository $assetRepository
    ) 
        $this->assetRepository = $assetRepository;
    

    public function getMyFilePath()
    
        $fileId = 'Vendor_Module::images/myimage.png';
        $params = [
            'area' => 'frontend'
        ];
        $asset = $this->assetRepository->createAsset($fileId, $params);
        try 
            return $asset->getSourceFile();
         catch (Exception $e) 
            return null;
        
    

También puedes usar MagentoFrameworkModuleDir Clase para obtener la ruta del directorio del módulo:

Ejemplo:

    $objectManager = MagentoFrameworkAppObjectManager::getInstance();
    $dir = $objectManager->get('MagentoFrameworkModuleDir');
    /*Retrieve full path to a directory of certain type within a module*/
    echo $dir->getDir('Magento_Customer');
    echo $dir->getDir('Magento_Customer','Controller');

Sintaxis:

    getDir('Module_Name','Directories');                                      
    /*getDir method not allow to read type of module's directory except these*/
    const MODULE_ETC_DIR = 'etc';
    const MODULE_I18N_DIR = 'i18n';
    const MODULE_VIEW_DIR = 'view';
    const MODULE_CONTROLLER_DIR = 'Controller';

Calificaciones y comentarios

Si te ha sido de provecho este artículo, nos gustaría que lo compartas con otros entusiastas de la programación y nos ayudes a dar difusión a nuestro contenido.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *