Coding FAQ
This page is a compilation of frequently asked coding questions by the Magento Community.
What do I need to know to work with the framework?
- SOLID principles - The essential principles needed to create maintainable and extendable code.
- PHP - This is the programming language used for developing Magento 2 code.
- HTML, CSS, and JavaScript - Languages used for frontend development.
- Architecture basics overview - Developers should be familiar with the architectural concepts used in Magento such as the Model-View-Controller pattern and the Command Query Responsibility Segregation principle.
- Dependency Injection - An important design pattern used in Magento to handle dependencies across classes and modules.
In Magento 2, how can my extension distinguish between the Magento Open Source and the Magento Commerce?
The correct edition can be obtained through \Magento\Framework\App\ProductMetadataInterface::getEdition
.
In Magento Open Source that interface maps to the concrete implementation Magento\Framework\AppInterface\ProductMetadata
.
However, in Magento Commerce, the Commerce module will override that mapping and the interface will be implemented by \Magento\Enterprise\Model\ProductMetadata
.
Just relying on the interface through dependency injection will get you the right class, and calling “getEdition” will return the right answer.
How do I configure my module so that it appears in a specific place on the Admin?
Use the <Module Directory>/etc/adminhtml/menu.xml
file to configure from where on the Admin your extension is accessible.