magento教程---如何使用 virtual types
2021/12/17 23:22:33
本文主要是介绍magento教程---如何使用 virtual types,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
视频地址:
https://www.youtube.com/watch?v=DiAS3vE6OO4&list=PL9Q0S-CmtAhJVjwnK5ip6H84sCuRQcACY&index=28
virtual types 实现了依赖注入的无限嵌套。并且不用创建出实际的类,用di.xml创建出虚拟类。
这个对象,是把一个数组转换成一个对象。然后获取数组的value,就可以用$object->key这样的形式了。
数据访问层 repository
repository位于model和block之间,在magento中。repository位于model和viewmodel之间。
model repository service viewmodel block 分别干嘛的?
model链接数据库。得到orm------->基础数据
repository会对你真实想要的数据进行进一步的处理。----->加工好的数据
service ------->晚点补充
viewmodel----->注入到block,真实的和phtml进行交互。从repository得到加工好的数据,然后供页面调用。页面是不会调用repository的。也是直接得到phtml传递过来的参数。---->只写被phtml直接调用的方法。其他的东西都注入到构造函数内。
block --->页面真实调用phtml。不过业务逻辑都是给注入的viewmodel来实现了。自己一般不干活了。
层与层之间的链接都是用依赖注入。把上一层的对象注入到自己的构造函数内,然后进行初始化。
原则上,不跨层。本层只注入上一层,然后得到数据。
层与层之间传递的是啥?传递的是对象。是那个依赖注入到构造函数内的对象。这个对象里包含属性和方法。属性里也许存了数据。
但是真实调用,应该是倒过来的过程
这个过程来调用,通过phtml里传递参数,然后一级一级调用。
interface一般放在api这个目录里。
注入,是依赖关系,所以一般是不是都需要跨层,而且跨的是相邻的两个层??
这个似乎个猜想,同层的是不是不用依赖注入?他们相互不用去依赖??也是猜测
因为最终是要注入到viewmodel层的。。这个是为什么?因为viewmodel是直接和phtml交互的,是和用户的输入交互的。phtml调用viewmodel。用户手动输入调用的是viewmodel。
因为重新写了一个model层的数据。把model层注入到repository层。得到一个新的repository。然后再把这个repository注入到viewmodel层。注入的都是对象,是一个完整的可以获取数据的链路。
最终是要根据phtml中或者url中,传递的参数去数据库里获取数据的。如果传商品id这些。所以参数在phtml传递给viewmodel后,要一直传递给repository,再传递给model。再调用数据库。所以每一个方法内都要有这个传递的参数才可以。
这个是model层,相当于离数据库最近的层,这个参数肯定是通过前端传过来的。就是通过phtml一层一层传递过来的。所以每层都需要传递一个参数。
最终要得到数据。然后再把数据显示到页面。
什么时候用preference和virtual types:
如果你想让所有类中的都变化,那就用preference,
如果只想让某一个页面参数变化,或者某一个类产生变化,那就用virtual type,因为他可以指定具体某个类来进行注入。
这篇关于magento教程---如何使用 virtual types的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-06-26结对编程到底难不难?答案在这里
- 2024-06-19《2023版Java工程师》课程升级公告
- 2024-06-15matplotlib作图不显示3D图,怎么办?
- 2024-06-1503-Loki 日志监控
- 2024-06-1504-让LLM理解知识 -Prompt
- 2024-06-05做软件测试需要懂代码吗?
- 2024-06-0514-ShardingSphere的分布式主键实现
- 2024-06-03为什么以及如何要进行架构设计权衡?
- 2024-05-31全网首发第二弹!软考2024年5月《软件设计师》真题+解析+答案!(11-20题)
- 2024-05-31全网首发!软考2024年5月《软件设计师》真题+解析+答案!(21-30题)