laravel开发模式求解
程序员文章站
2022-06-15 12:24:42
...
初学PHP求教,laravel的路由,控制器,模型操作都基本会了,除了服务容器、控制翻转、依赖注入什么的还在理解,现在最不明白的就是具体的功能实现应该写在哪里,比如我要写一个通用附件上传功能或短消息发送器之类,这个具体的功能实现应该写在哪里才能实现代码的重用,写在控制器、模型好像都不对,应该写在哪里,Facades?Contracts?求教,十分感谢;
回复内容:
初学PHP求教,laravel的路由,控制器,模型操作都基本会了,除了服务容器、控制翻转、依赖注入什么的还在理解,现在最不明白的就是具体的功能实现应该写在哪里,比如我要写一个通用附件上传功能或短消息发送器之类,这个具体的功能实现应该写在哪里才能实现代码的重用,写在控制器、模型好像都不对,应该写在哪里,Facades?Contracts?求教,十分感谢;
首先我觉得你这两个附件上传功能或短消息发送器之类都是通用的,写成服务提供者,然后可以发布成自己的包,方便以后的项目用。
这篇文章对你可能也会有所帮助。
Laravel 核心:控制反转(Inversion of Control)和门面模式(Facade)
Laravel 作者写了下面这系列的文章, 你可以看看, 会加深你对Laravel 里面的一些概念的理解。
From Apprentice To Artisan
写在模型中,因为文件也是数据。当然,文件不方便放到数据库,所以数据库存放的是文件路径,那么文件存放并返回路径的活儿谁做呢?
当然是框架做,这个你只需要一行代码,所以没必要写成命令(command)。
综上所诉,写到模型里即可。
Contracts 就是一套接口规范 建议你面向接口编程 方便你换个数据存储方式 缓存实现redis 还是memcache
翻译过来 是契约 合同 就是大家约定好的 比如缓存读取 设置 就一个get 一个set 不需自己再定义一套接口
推荐阅读
-
使用设计模式中的Singleton单例模式来开发iOS应用程序
-
iOS应用开发中使用设计模式中的观察者模式的实例
-
学习 Laravel - Web 开发实战入门笔记(1)
-
swoole运行模式加速laravel应用的详细介绍
-
Laravel 中使用 swoole 项目实战开发案例一 (建立 swoole 和前端通信)
-
laravel框架学习笔记之组件化开发实现方法
-
java开发中的Dao设计模式解析
-
如何在Laravel5.8中正确地应用Repository设计模式
-
【转载】 华为荣耀手机如何进入开发者模式
-
【基于EF Core的Code First模式的DotNetCore快速开发框架】完成对DB First代码生成的支持