In this repo I will list my progress in learning and preparing for being a Magento Certified Developper.
I used the book Magento 2 Developers Guide as the main studying material. but I will not be limited to that.
- The Technology Stack
- The archtectural layers
- the top-level filesystem structure
- Composer
- Service contracts
- code generation
- the var directory
- Coding standards
- Creating a miniature module
- Understanding the flow of schema and data scripts
- Creating an install schema script (InstallSchema.php)
- Creating an upgrade schema script (UpgradeSchema.php)
- Creating an install data script (InstallData.php)
- Creating an upgrade data script (UpgradeData.php)
- Entity CRUD actions
- Creating new entities
- Managing collections
- The object manager
- Dependency injection
- Configuring class preferences
- Using virtual types
- Creating a plugin
- Using the before listener
- Using the after listener
- Using the around listener
- The plugin sort order
- Cron jobs
- Notification messages
- Session and cookies
- Logging
- The profiler
- Events and observers
- Cache(s)
- Widgets
- Custom variables
- i18n
- Indexer(s)
- Rendering flow
- View elements
- Ui components
- Containers
- Blocks
- Block architecture and life cycle
- Templates
- Layouts
- Themes
- Creating a new theme
- Javascript
- Creating a custom JS component
- CSS
- User Types
- Authentication methods
- REST versus SOAP
- Hands-on with token-based authentication
- Hands-on with OAuth-based authentication
- OAuth-based Web API calls
- Hands-on with session-based authentication
- Creating custon Web APIs
- API call examples
- The getById service method call examples
- The getList service method call examples
- The save (as new) service method call examples
- The save (as update) service method call examples
- The deleteById service method call examples
- Search Criteria Interface for list filtering
- API call examples
- CMS management
- Managing blocks manually
- Managing blocks via code
- Managing blocks via API
- Managing pages manually
- Managing pages via code
- Managing pages via API
- Catalog management
- Managing categories manually
- Managing categories via code
- Managing categories via API
- Managing products manually
- Managing products via code
- Managing products via API
- Customer management
- Managing customers manually
- Managing customers via code
- Managing customers via API
- Managing customer address code
- Managing customer address via API
- Products and customers import
- The custom product types
- Custom offline shipping methods
- Custom offline payment methods
- Types of tests
- Unit testing
- Integration testing
- Static testing
- Integrity testing
- Legacy testing
- Performance testing
- Functional testing
- Writing a simple unit test
- Module requirements
- Registering a module
- Creating a configuration file (config.xml)
- Creating e-mail templates (email_templates.xml)
- Creating a system configuration file (system.xml)
- Creating access control lists (acl.xml)
- Creating an installation script (InstallSchema.php)
- Managing entity persistence (model, resource, collection)
- Building a frontend interface
- Creating routes, controllers, and layout handles
- Creating blocks and templates
- Handling form submissions
- Building a backend interface
- Linking the access control list and menu
- Creating routes, controllers, and layout handles
- Utilizing the grid widget
- Creating a grid column renderer
- Creating grid column options
- Creating controller actions
- Creating unit tests