Magento is an Ecommerce platform written in PHP. It uses a configuration-based MVC system and heavily leverages Java style OOP patterns in the business logic, UI, and layout rendering application layers. This is a tag for Magento's 1.5.x.x version
Magento is an Ecommerce platform written in PHP. It uses a configuration-based MVC system and heavily leverages Java style OOP patterns in the business logic, UI, and layout rendering application layers.
Several sub-systems employ meta-programming languages (Layout, DataFlow) implemented via XML. The system also features a factory method for instantiation of certain class types (Models, Helpers, Blocks).
The application code is organized into Modules which may be selectively loaded during the bootstrapping process.
Many of the Models are implemented with an EAV style structure that sits on top of MySQL, which means data for a single Entity (object) is spread across multiple tables.
Because of the deep abstractions, Magento allows you to do almost anything with the system programmatically.
Because of the deep abstractions, there are some things in Magento that can only be achieved programmatically.
Because of the deep abstractions, many PHP programmers struggle with the initial steep learning curve, and end up on Stack Overflow.
Because of the deep abstractions, you will almost certainly need a modern IDE that allows you to debug the codebase to trace the object hierarchies.