Magento 2 Backend Development II - On Demand Training

In stock
SKU
v06
€259.00
  • Courses included: 5
  • Total video time: 12 hours
  • Access period: 1Y
  • € 259 for 1 year
  • € 21 per hour of video available to you
More Information
Price €259.00
Access period 1 year

Included courses

Magento 2 Backend Development II

Status: Complete
Last updated: 2024-09-17
Number of lessons: 102
Number of slides: 412
Videos: 10.2 hours

Magento 2 GraphQL Development

Status: Complete
Last updated: 2024-07-03
Number of lessons: 21
Number of slides: 84
Videos: 2.2 hours

Magento 2 Migration

Status: Complete
Last updated: 2024-05-23
Number of lessons: 0
Number of slides: 0
Videos: 0 hours

Magento 2 Testing

Status: Complete
Last updated: 2024-10-07
Number of lessons: 127
Number of slides: 431
Videos: 0 hours

Preview this course

Want to see what this course is like? Checkout our Courseware Demo to preview this course and others.

Preview all courses

Course content

Magento 2 Backend Development II

  • Database models
  • Declarative schemas (basics)
  • Data models
  • Resource models
  • Collections
  • Naming model classes
  • AbstractModel or AbstractExtensibleModel?
  • Example data model via CLI commands
  • Example data model with integration tests
  • Improving your models
  • Improving your resource models
  • Assignment: Create an author entity
  • Assignment: Create a CLI for your author entity
  • Events and observers
  • Event observer
  • Finding events
  • Dispatching events
  • Observer or Plugins
  • Controllers and routing
  • Routing overview
  • Assignment: Create a frontend page to view authors
  • Backend routes
  • Override a controller action
  • Logic of the FrontController class
  • Routers
  • How 404 pages work
  • How the SecurityTxt module works
  • Creating a custom router
  • Assignment: Create a custom router for your Author entity
  • Quiz: Routers
  • CMS parts
  • CMS Blocks
  • CMS pages
  • CMS widgets
  • Widgets
  • Assignment: Create a custom widget for your Author entity
  • Adding a custom page type
  • CSP
  • Content Security Policy
  • Toggling CSP mode
  • Example of CSP with external CSS
  • Whitelisting values for CSP
  • Example with whitelisting external CSS
  • CSP in the Yireo GoogleTagManager module
  • Dummy `$secureRenderer`
  • Whitelisting inline JavaScript in the checkout
  • CspNonceProviders
  • Disabling CSP
  • Useful CSP extensions
  • Filesystem
  • Using the filesystem
  • Reading files
  • Assignment: Create a CLI command to output a file
  • Writing files
  • Repositories
  • Repositories
  • Sorting lists with repositories
  • Using filters with repositories
  • Debugging SELECT queries with repositories
  • Using filter groups with repositories
  • The bad side of repositories
  • Creating your own repository
  • Adding CLI classes for the repository
  • Integration tests for our custom repository
  • Assignment: Create a custom repository for your author entity
  • Custom helper classes for your repositories
  • Class patterns
  • Data objects
  • Builder pattern
  • No more Helpers
  • Database operations
  • Declarative schemas (advanced)
  • DB schema patches
  • Adding `startSetup` and `endSetup`
  • Manual SQL queries
  • Future changes in database layer
  • EAV operations
  • EAV attributes
  • Creating an EAV entity
  • Attributes
  • About attributes
  • Attribute models
  • Working with the configuration
  • Attribute sets
  • Category attributes
  • Extension attributes
  • Extension Attributes
  • Example product extension attribute
  • Adminhtml
  • Backend routes
  • Adding Store Configuration settings
  • ACL rules
  • Adding a menu to the Admin Panel
  • Basics of adding UiComponents
  • Extending a UiComponent grid
  • Creating a UIComponent grid
  • Hyva Admin
  • Custom backend theme
  • Indexing
  • Indexing overview
  • Where to look for indexing
  • How indexing works
  • Tuning indexing
  • Creating a custom indexerer
  • Backend of the checkout
  • ConfigProviders for `window.checkoutConfig`
  • Layout processors
  • Adding a new Layout Processor
  • The Vault
  • Multi Source Inventory
  • Multi Source Inventory overview
  • Reservations
  • Source Selection Algorithms (SSA)
  • Configuring MSI
  • Simplest setup of MSI
  • Coding samples with MSI
  • Database tables for MSI
  • The old Stock Registry
  • REST API
  • Web APIs

Magento 2 GraphQL Development

  • GraphQL basics
  • Introduction to GraphQL
  • GraphQL clients
  • GraphQL queries
  • Assignment: Make some queries
  • GraphQL mutations
  • Assignment: Login via GraphQL and review your addressbook
  • GraphQL call types
  • GraphQL fragments
  • GraphQL directives
  • GraphQL schema discovery and introspection
  • Magento GraphQL API
  • Introducing Magento GraphQL
  • Adding a new endpoint
  • Extending the product schemas
  • Extending the GraphQL storeConfig endpoint
  • Working with context
  • Resolvers
  • Testing GraphQL
  • URL Resolving
  • GraphQL caching
  • Exception handling
  • Tips & tricks

Magento 2 Migration

Magento 2 Testing

  • Testing overview
  • Why testing?
  • Testing strategies
  • Testing tools
  • Test Driven Development (TDD)
  • TDD is dead
  • System Under Test (SUT)
  • Types of testing
  • Magento tests
  • Organizing your tests
  • Make it a habit
  • PHPUnit
  • PHPUnit overview
  • PHPUnit installation
  • PHPUnit configuration file
  • Assignment: Setup a custom `phpunit.xml`
  • PHPUnit bootstrap
  • Breaking changes in PHPUnit
  • PHPUnit 10 upgrade
  • Setup PhpStorm
  • Setup PHPUnit
  • Run PHPUnit with Docker
  • Create Run Configuration
  • Running tests from PhpStorm
  • Rerun automatically
  • Rerun failed tests
  • Debug tests with Xdebug
  • Unit tests
  • Structure of a unit test class
  • TDD example
  • Using `dev/tests/unit/phpunit.xml.dist`
  • Simple example unit test
  • Coding katas
  • Testing a Config-class
  • Mocking classes
  • Stubs vs mocks vs dummies
  • Using the ObjectManager in unit tests
  • Testing exceptions
  • Data providers in tests
  • setUp & tearDown
  • Adding messages to the output
  • Spying with PHPUnit
  • Marking tests
  • Yireo Test Generator
  • Mocking functions
  • Good practices for tests
  • Code coverage
  • Integration Tests
  • Overview of Integration Tests
  • Setting up integration tests
  • Running Integration Tests
  • TESTS_CLEANUP
  • Resetting the Integration Tests environment
  • First integration test
  • Which ObjectManager?
  • Testing a Config-class
  • Mocking vs ObjectManager in integration tests
  • Magento annotations & attributes
  • Config fixtures
  • Data fixtures
  • Tips for integration tests
  • Yireo Test Generator
  • Running tests with Xdebug enabled
  • Integration testing performance
  • Performance overview
  • ReachDigital Integration Testing Framework
  • Add Redis server
  • 04-dummy-elasticsearch
  • MySQL tuning
  • Composer replacements
  • Yireo Integration Test Helper
  • Minimizing modules that are enabled
  • Parallel test runs
  • Using tmpfs to speed up Integration Tests
  • `yireo/magento-integration-tests-docker-composer`
  • Integration Test scenarios
  • Testing module behaviour
  • First test
  • Generating tests
  • Checking for configuration values
  • Testing console commands
  • Testing controllers
  • Testing the layout independently
  • Testing sessions
  • Testing entities
  • Testing a schema
  • Testing event observers
  • Testing Magewire components
  • Testing DI plugins
  • ObjectManager preference overrides
  • Yireo Integration Testing Helper
  • Troubleshooting Integration Tests
  • Could not connect to the Amqp Server
  • Base table or view not found
  • Cannot open file
  • Connection refused
  • The default website isn't defined. Set the website and try again
  • Unable to retrieve deployment version
  • Issue with `ifconfig` in XML layout
  • `tasklist.exe not found`
  • The value of autoloader is specified, but file doesn't exist
  • Cannot instantiate interface Magento\Framework\Config\CacheInterface
  • Code quality
  • About code quality
  • Defensive programming
  • Object Calisthenics
  • SOLID
  • Law of Demeter
  • Other principles
  • Static code analysis
  • Refactoring legacy code
  • What is legacy code?
  • Refactoring with tests
  • Strangler fig pattern
  • Characterization tests
  • Functional Tests with PHPUnit
  • Overview of Functional Tests
  • Functional tests setup
  • Validate products
  • Customer VAT validation
  • API Functional Testing
  • Custom REST test
  • Custom GraphQL test
  • MFTF
  • Magento Functional Testing Framework (MFTF)
  • Static tests
  • Overview of static tests
  • Running tests on Magento core
  • PHP CodeSniffer (PHPCS)
  • Magento 2 Coding Standard
  • Running PHPStan in Magento
  • PHP linting
  • Varnish tests
  • Mutating testing
  • Mutation testing
  • Infection
  • Test automation
  • Automated testing overview
  • GitHub Actions
  • End-to-End testing
  • End-to-End testing
  • Cypress
  • Miscellaneous
  • Resources