You are browsing the documentation for version 3.1 of OroCommerce, OroCRM and OroPlatform, which is no longer maintained. Read version 5.0 (the latest LTS version) of the Oro documentation to get the updated information.
See our Release Process documentation for more information on the currently supported and upcoming releases.
Application Framework functionality is a part of OroPlatform that determines the structure of the Oro application (code organization, file structure, application flow routine) and the way of interaction between independent components in the application.
In this section, you’ll find a description of the main principles on how to organize your adjustments to Oro applications.
How It Works
Application Framework functionality in OroPlatform is based on the Symfony Framework and extends it in the OroPlatformBundle and OroDistributionBundle to improve several aspects of development experience.
Please refer to the Architecture Principles of Oro Applications article for the synopsis of structural aspects of the Oro applications:
- Symfony Role in OroPlatform
- HTTP Request Application Flow
- Event System
- Inversion of Control Principle
- Bundle System
- Application Directory Structure
- Application Configuration
- Templating System
- Security System (Data Access Management)
- Databases Management (Doctrine ORM)
- CLI Application
- List of Symfony Components Used in Oro Applications
If you want to adjust Oro application functionality, the first step to organize your changes always should be Prepare Your Custom Application:
Next steps depend on whether you’re going to Create a New Functionality or to Change an Existing Functionality.
Finally, if you’re ready to pack and share your adjustments to Oro application, you can Create and Publish an Extension to the Oro marketplace.
Prepare Your Custom Application
Create a Custom Application
Please see the Create Custom Oro Application cookbook article.
Create a New Bundle
Please see the How To Create New Bundle article.
Create a New Functionality
Please see the basic example on how to create a new functionality in the Create a Simple CRUD article.
Change an Existing Functionality
If you want to change the existing behavior of Oro application, please refer to the Oro Application Customization section of the Architecture Guide for the guidance.
Create and Publish an Extension
If you are ready to publish your adjustment in Oro application for free or paid usage of community members, see the How to Add an Extension to the OroPlatform Marketplace article for the details on how to do this.