Course Outline
Day I
Introduction to Magento
- Brief overview of Magento 2
- Comparison of Community and Commerce versions
- Magento Commerce Pricing
- Magento Commerce Cloud
- Differences compared to Magento 1
Magento 2 Architecture
- Discussion of the MVVM pattern
- Project structure
- Dependency management (composer, PSR-4 Autoloader)
- Structure of a single module
- Module registration
-
Discussion of Websites, Store Groups, Store Views
- Multiple stores in a single Magento 2 instance
- Multilingual support
- Config scopes
Advanced Magento 2 - Database
- Configuration tables (settings, module versioning)
- Verifying module version in the database, creating custom configuration in the admin panel, discussing ACL
- Setup scripts
- UpgradeSchema script
- Persistence Layer
- Creating the persistence layer (Model, ResourceModel, Collection)
- Discussion of the EAV pattern
- EAV in Magento 2
- Types of EAV entities in Magento 2
- Attribute sets
- Extension attributes
- Flat tables
- Database sharding
Advanced Magento 2 - PHP
Managing class dependencies (Service Contract, discussion of Dependency Injection and Dependency Inversion patterns, explaining how Dependency Injection works in M2, ObjectManager)
Code Generation
- Factory
- Interceptor
- Proxy
Magento 2 CLI
- Overview of functions
- Creating a custom command that creates model objects
- Controllers in Magento 2
- Creating a custom frontend controller
- Custom logger in Magento 2
- Ways to extend Magento - overriding, plugin (discussion of the Interceptor pattern), event observers (discussion of the Observer pattern)
- Creating a custom Observer and custom Event (in a controller), as well as a plugin on a custom frontend controller and a logger for both classes
Day II
Advanced Magento 2 - Frontend
- Themes
- Frontend elements of modules, layouts, blocks, view models
- Creating a template, view model, and displaying objects from a collection
- Less preprocessor
- Adding LESS styles to the view
- RequireJS
- KnockoutJS
- UI Components
- Generating static files
Magento 2 Working Modes
PHP Session
- Session storage methods
- Redis configuration
Full Page Cache
- FPC in Magento 2 (files, Redis, Varnish)
- Varnish configuration
- Hole punching
Cron in Magento 2
- Overview of operation
- Custom cronjob
Cache in Magento 2
- Built-in types
- Custom cache
Magento 2 Indexers
REST and SOAP APIs in Magento 2
- Overview of authentication methods
- Overview of available methods
- Defining custom API endpoints
- Creating a Data Contract and Service Contract Repository, wiring the get method from the Repository into the WebAPI
Integration tests, unit tests
Creating listings and forms for model objects using UI Components
Block: deploy automation & monitoring & performance tests:
Tools for deploy automation: GitLab CI/CD, GitLab Runner
How to conduct a safe deploy with zero downtime, ensuring the ability for quick rollback
Magento monitoring - New Relic
Performance:
Testing using LoadImpact. How to prepare scenarios and simulate production traffic.
Cache warming for Varnish
Requirements
Good knowledge of PHP