Yireo - Developer training

Open main menu
Extension Checker

Magento 2 Extension

Extension Checker

Quickly validate Magento 2 extensions using various coding practices
  • 100% open source and well-written
  • compliant with modern Magento standards
  • Free with no strings attached
  • Community collaboration via GitHub

Latest release: 2.2.8

Jisse Reitsma

This extension has been created by Jisse Reitsma

This extension has been written - with love - by Jisse Reitsma, founder of Yireo, three times Magento Master, partner of ExtDN, trainer and author. Jisse has been in the Magento ecosystem for many years and has created numerous Magento extensions. He also has been pushing better coding practices, like CI/CD, clean coding, coding standards and testing.

Packages & pricing

This extension is hosted on GitHub:

Quick Start

Get up and running with your Yireo extension

Installation via composer URL

We recommend to install Magento 2 extensions via composer. See the Composer project for instructions on how to get composer up and running. Once composer is installed, use the following command to install our extension.

composer require yireo/magento2-extension-checker

This will make composer download the package from Packagist. After the composer installation has finished, use the following commands to enable the module within Magento:

bin/magento module:enable Yireo_ExtensionChecker
bin/magento cache:clean
bin/magento setup:upgrade

After these commands, the extension is ready for use in Magento. If you were already logged into the Magento Admin Panel, make sure to logout and log back in again, before proceeding. Do not forget to grab yourself a manual copy of our extension as a backup.

Manual installation

Please note that we strongly recommend using composer instead. If you bump into issues with this manual procedure, the first thing we need to ask is whether you have installed all dependencies, as mentioned in the composer.json file of this extension. If the composer.json file of this extension mentions requirements, you need to fulfill these requirements. This could involve checking for PHP requirements but also installing third party add-ons. Sounds difficult? Yes! That's why we can only recommend you to use composer. The manual installation does NOT make your life easier, even if you think it does.

Do use composer: It allows for dependency tracking and in the end, prevents breaking your site. However, in some cases, it might be required to do a non-composer installation. For these exceptional situations, download the module ZIP from our site (under the tab File Downloads). Next, create a folder with the following name and copy to the ZIP contents to it:


After the files have been uploaded, confirm that all files are in place. For instance, you should have a file like app/code/Yireo/ExtensionChecker/etc/module.xml. Next, use the following commands to enable the module within Magento:

bin/magento module:enable Yireo_ExtensionChecker
bin/magento cache:clean
bin/magento setup:upgrade

After these commands, the extension is ready for use in Magento. If you were already logged into the Magento Admin Panel, make sure to logout and log back in again, before proceeding. Do not forget to grab yourself a manual copy of our extension as a backup.


Head over to the GitHub repository for downloads: https://github.com/yireo/Yireo_ExtensionChecker

Frequently Asked Questions

No, it is not. As a policy, all our Yireo software is unencrypted - we do not make use of technologies like ionCube or ZendOptimizer. All PHP-code is open source, but for commercial extensions the code is only given to paying customers.

You probably would like to know if this extension is working under a specific Magento version 2.X.Y. However, from a technical point of view, the question is wrong: The major Magento version 2.X.Y is not semantical but instead used for marketing purposes. It doesn't give any guarantees.

Instead, we maintain compatibility with the actual modules that lie underneath (like Magento_Catalog or the Magento Framework). And version management for these dependencies is handled via composer. We strongly advice you to rely on composer to answer the question whether our extension works under a specific Magento version. This is the only way to guarantee compatibility in a professional way.

Alternatively, study our CHANGELOG for details on the progress we made.

This extension is offered for free. Feel free to go the GitHub repository (see the link under Quick Start> Downloads) and open an Issue there. Please note that this is a voluntary open source project. The more helpful you are in describing the issue at hand, the more likely volunteers can come in to help you with the issue.


Getting support

If you run into problems, we are happy to help you out with the following resources:

  • Check FAQ on this page
  • See our Quick Start on this page
  • Open an Issue in the GitHub repository
    • Be as descriptive in your issue as possible
    • Do everything you can to troubleshoot the issue yourself
    • Understand that you are asking others to give up their free time

We usually respond in 24 hours but understand this is all done on a voluntary basis. Also note that we require you to collaborate together with us. Interpret errors as best as you can, before claiming our time. Free software does not automatically lead into free support as well.

Supported Magento versions

  • 2.2 (2.2.5, 2.2.6, 2.2.7, 2.2.8, 2.2.9, 2.2.10)
  • 2.3 (2.3.2, 2.3.3, 2.3.4, 2.3.5, 2.3.5-p1, 2.3.5-p2, 2.3.6, 2.3.7, 2.3.7-p1, 2.3.7-p2)
  • 2.4 (2.4.0, 2.4.1, 2.4.2, 2.4.2-p1, 2.4.2-p2, 2.4.3, 2.4.4, 2.4.5)
The supported PHP versions equal the versions supported by Magento itself

Requirement details

  • magento/framework: ^102.0|^103.0
  • symfony/finder: ^3.0|^4.0|^5.0|^6.0
  • composer/semver: ^1.0|^2.0|^3.0
  • nikic/php-parser: ^3.0|^4.0
  • php: ^7.4|^8.1
  • ext-json: *
  • ext-pcre: *
  • ext-xml: *


All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.


[2.2.8] = 28 February 2023

  • Add compatibility with older composer commands that lack no-scripts flag

[2.2.6] = 27 December 2022

  • Add difference between hard and soft dependencies
  • Add XML-file collector for etc/ folder
  • Make sure no table is outputted when messages count 0

[2.2.5] = 5 December 2022

  • New CLI yireo_extensionchecker:list-classes
  • New CLI yireo_extensionchecker:create-plantuml-diagram

[2.2.4] = 17 November 2022

  • Fix path in DI proxy

[2.2.3] = 17 November 2022

  • Issue with missing DI proxy during M2 installation (also with Integration Tests) #38

[2.2.2] = 15 November 2022

  • Fix PHP 7.4 issues

[2.2.1] = 15 November 2022

  • Detect classnames referred to via Magento CLI find('console:command')

[2.2.0] = 11 October 2022

  • New template parsing
  • Simple detection of Hyva_Theme deps

[2.1.4] = 11 October 2022

  • Typo prevents missing module.xml deps to be reported
  • Implement verbose flag with some debugging
  • Set default values for RuntimeConfig

[2.1.3] = 8 October 2022

  • First draft of CLI to check module compat with certain Magento version
  • Make sure that non-namespaced classes are picked up as well (#30)
  • Reimplement flag "hide-needless" again

[2.1.2] = 7 October 2022

  • Remove exception when zero PHP files are found (#28)
  • Don't suggest version for PHP dep and ext- deps (#27)

[2.1.1] = 5 October 2022

  • PHP comma not working in PHP 7.4 (#25 @sprankhub)

[2.1.0] = 4 October 2022

  • Add XML Layout detector to find component dependencies
  • Added GitHub Actions for integration tests
  • Use nikic/php-parser to better detect used FQCN

[2.0.4] = 29 September 2022

  • Only show exception messages in output with verbosity set
  • Additional tests and fixes

[2.0.3] = 29 September 2022

  • Skip various needless errors
  • Support for imported namespaces separated by comma
  • Prevent incorrect imported namespaces from causing issues

[2.0.2] = 29 September 2022

  • Detect imported classes in a filename manually using a simple regex
  • Swap return codes in CLI commands because 0 means ok

[2.0.1] = 28 September 2022

  • Fixed PHP 7.4 compat issue in Message/Message.php

[2.0.0] = 28 September 2022

  • Huge rewrite of entire logic
  • JSON format to CLI output
  • Suggest version number if set to wildcard
  • Make sure invalid FQDN doesn't throw PHP Fatal Error

[1.2.17] = 21 September 2022

  • Find composer packages where registration.php is not in root #22

[1.2.16] = 19 September 2022

  • Fix wrong CLI command name

[1.2.15] = 20 August 2022

  • Correctly report source of deprecated class #21

[1.2.14] = 8 August 2022

  • Properly pick up on injected interfaces too
  • Support multiple namespace tokens
  • Fix token warning on PHP 7.4

[1.2.13] = 8 August 2022

  • Moved CLI to https://github.com/yireo/Yireo_ExtensionCheckerCli

[1.2.12] = 1 August 2022

  • Remove non-JSON lines from composer output

[1.2.11] = 30 July 2022

  • Allow Command to be run without installing Magento #19 (@lbajsarowicz)
  • Typo in class inspector line 122 (issue 20)

[1.2.10] = 10 July 2022

  • Moved all non-scan related CLI to Yireo_ExtensionValidationTools
  • Removed dep with Magento_Store
  • Removed setup_version
  • Dropped support for PHP version 7.3 or lower

[1.2.9] = 7 July 2022

  • Integration tests
  • Added new messages system for feedback from scan back to console
  • Added Component class for modules, libraries and other package types
  • Non-existing module for known module will now throw an error
  • Report composer missing for any component missing #16
  • Moved Scan/Module to Util/ModuleInfo
  • Removed output and input from main class, replaced with messages

[1.2.8] = 2 June 2022

  • Additional exceptions and debug statements for analysing errors
  • Hide warning about missing constants with different PHP versions

[1.2.7] = 28 May 2022

  • Bump version

[1.2.6] = 25 April 2022

  • Make sure packages are properly detected from class names

[1.2.5] = 25 April 2022

  • Fix bug with namespace (check T_NAME_QUALIFIED)

[1.2.4] = 25 April 2022

  • Scan for used interfaces too
  • Make sure to import FQDN to avoid bugs
  • Add GraphQL detection
  • Add simple unit tests to safeguard refactoring
  • Verbose flag (-v) for better debugging

[1.2.3] = 16 April 2022

  • New command for generate PHPUnit unit tests
  • Upgraded deps to allow for PHP 8 compat

[1.2.2] = 30 November 2020

  • Do not disallow wildcard for PHP extensions

[1.2.1] - 20 November 2020

  • Fix class name detection
  • Scan for deps with version set to wildcard

[1.2.0] - 29 July 2020

  • New CLI to check versioning of composer.json file

[1.1.3] - 2020-07-29

  • Magento 2.4 compat

[1.1.2] - 2020-02-29

  • PHPCS compliance

[1.1.1] - 2019-07-11

  • Add an exit code 1 if warnings are found

[1.1.0] - 2019-06-28

  • Better checks to see if class is instantiable
  • Use preferences to translate interfaces into classes

We are a proud member of ExtDN

ExtDN forms a network of Magento extension developers, that strive for a better extension quality - both on a technical level and from an end-users point of view. With industry leaders like Fooman and aHeadworks, ExtDN lifts up the Magento extension space to a new level. And Yireo is proud to be part of this.

Do not miss out on what we say

This will be the most interesting spam you've ever read

We don't write too commercial stuff, we focus on the technology (which we love) and we regularly come up with innovative solutions. Via our newsletter, you can keep yourself up to date on all of this coolness. Subscribing only takes seconds.

Sign up for the Yireo newsletter



GitHub organizations

Legal information

Other Yireo sites

Get Social

About Yireo