- Magento 2 Developer's Guide
- Branko Ajzele
- 320字
- 2021-07-30 09:53:24
Chapter 4. Models and Collections
Like most modern frameworks and platforms, these days Magento embraces an Object Relational Mapping (ORM) approach over raw SQL queries. Though the underlying mechanism still comes down to SQL, we are now dealing strictly with objects. This makes our application code more readable, manageable, and isolated from vendor-specific SQL differences. Model, resource, and collection are three types of classes working together to allow us full entity data management, from loading, saving, deleting, and listing entities. The majority of our data access and management will be done via PHP classes called Magento models. Models themselves don't contain any code for communicating with the database.
The database communication part is decoupled into its own PHP class called resource class. Each model is then assigned a resource class. Calling load
, save
, or delete
methods on models get delegated to resource classes, as they are the ones to actually read, write, and delete data from the database. Theoretically, with enough knowledge, it is possible to write new resource classes for various database vendors.
Next to the model and resource classes, we have collection classes. We can think of a collection as an array of individual model instances. On a base level, collections extend from the \Magento\Framework\Data\Collection
class, which implements \IteratorAggregate
and \Countable
from Standard PHP Library (SPL) and a few other Magento-specific classes.
More often than not, we look at model and resource as a single unified thing, thus simply calling it a model. Magento deals with two types of models, which we might categorize as simple and EAV models.
In this chapter, we will cover the following topics:
- Creating a miniature module
- Creating a simple model
- The EAV model
- 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
- Managing collections
- Expert C++
- 信息可視化的藝術(shù):信息可視化在英國
- Xcode 7 Essentials(Second Edition)
- Windows Presentation Foundation Development Cookbook
- CKA/CKAD應(yīng)試教程:從Docker到Kubernetes完全攻略
- Jupyter數(shù)據(jù)科學(xué)實戰(zhàn)
- C#實踐教程(第2版)
- Learning VMware vSphere
- Hadoop大數(shù)據(jù)分析技術(shù)
- 軟件工程與UML案例解析(第三版)
- PHP Microservices
- Java EE程序設(shè)計與開發(fā)實踐教程
- Clojure編程樂趣
- PHP高性能開發(fā):基礎(chǔ)、框架與項目實戰(zhàn)
- Splunk Developer's Guide(Second Edition)