Book Image

Magento PHP Developer's Guide

By : Allan MacGregor
Book Image

Magento PHP Developer's Guide

By: Allan MacGregor

Overview of this book

<p>Magento has completely reshaped the face of e-commerce since its launch in 2008. Its revolutionary focus on object oriented and EAV design patterns has allowed it to become the preferred tool for developers and retailers alike.</p> <p>"Magento PHP Developer’s Guide" is a complete reference to Magento, allowing developers to understand its fundamental concepts, and get them developing and testing Magento code.</p> <p>The book starts by building the reader’s knowledge of Magento, providing them with the information, techniques, and tools that they require to start their first Magento development.</p> <p>After building this knowledge, the book will then look at more advanced topics: how to test your code, how to extend the frontend and backend, and deploying and distributing custom modules.</p> <p>"Magento PHP Developer’s Guide" will help you navigate your way around your first Magento developments, helping you to avoid all of the most common headaches new developers face when first getting started.</p>
Table of Contents (16 chapters)
Magento PHP Developer's Guide
Credits
About the Author
About the Reviewers
www.PacktPub.com
Preface
Index

Magento version of MVC


If you are familiar with the traditional MVC implementations such as CakePHP or Symfony, you may know that the most common implementation is called a convention-based MVC. With a convention-based MVC, to add a new model or let's say a controller, you only need to create the file/class (following the framework conventions) and the system will pick it up automatically.

Magento, on the other hand, uses a configuration-based MVC pattern , meaning that creating our file/class is not enough; we explicitly have to tell Magento that we added a new class.

Each Magento module has a config.xml file, which is located under the module etc/ directory and contains all the relevant module configuration. For example, if we want to add a new module that includes a new model, we would need to define a node in the configuration file that tells Magento where to find our model, such as:

<global>
…
<models>
     <group_classname>
          <class>Namespace_Modulename_Model...