I am working a Magento2 project and I have installed a third party module magefan/module-blog which is used for manage Blog/post.This module is installed in Magento Vendor folder.

path is magento/vendor/magefun/module-blog .

I have a custom requirement and some changes/updated in block files.Since module is exist in Magento vendor folder so we can't directly changed in this module.Hence we require to override file




folder.I don't have idea how to override particular that file.

if anyone know about it.Please help me.


1 Answer 1


Following step need to follow

create app/code/Vendor/ModuleName/registration.php


create app/code/Vendor/ModuleName/etc/module.xml

<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
        <module name="Vendor_ModuleName" setup_version="1.0.0" />

create app/code/Vendor/ModuleName/etc/di.xml

<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    <preference for="ThirdPartyVendor\ThirdpartyModule\Block\File" type="Vendor\ModuleName\Block\File"/>

create app/code/Vendor/ModuleName/Block/File.php

namespace Vendor\ModuleName\Block;
use ThirdPartyVendor\ThirdpartyModule\Block\File as ThirdPartyFile;

class File extends ThirdPartyFile

Run Following Command:

 bin/magento setup:di:compile
 bin/magento c:f
  • The for attribute in preference tab will not accept .php . You should just use ThirdPartyVendor\ThirdpartyModule\Block\File
    – AbsarAkram
    Nov 17, 2020 at 10:13
  • thanks it was typo updated answer :) Nov 17, 2020 at 10:24

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.