「这是我参与2022首次更文挑战的第17天,活动详情查看:2022首次更文挑战」。
我认为 Laravel 框架最大的特点就是使用了容器服务的设计理念;另外集合了 php 的新特性,提供开箱即用的各种服务支持,以及各种各样的设计模式的应用实践。
架构模式
laravel 框架是使用了服务组件化的开发模式,由多个服务提供者构成了组件,再由多个组件提供不同的服务,多个服务构成了项目。
服务提供者是应用配置的核心,是通过 register
方法绑定服务到服务容器的。
涉及的设计模式
Laravel 框架使用了大量设计模式,使模块之间耦合度大大降低;更厉害的是服务容器可以方便的扩展框架功能以及编写测试。
下面结合我之前写的文章,汇总Laravel框架中涉及到的设计模式:
1. 外观(门面)设计模式
外观设计模式-Laravel Request实践:优雅的设置全局变量
2. 对象关系映射模式
我认为Eloquent
是所有PHP框架中最好用的ORM,我之前整理了5篇关于Eloquent的文章,欢迎大家阅读指教。
# Laravel Eloquent 关联模型 进阶使用技巧
# 新版本 Laravel Eloquent 关联模型 使用技巧
契约设计模式
工厂模式
策略模式
观察者模式
监听与触发
快速开发
Laravel为了方便我们快速开发,提供了很多开箱即用的服务,比如数据验证、队列、缓存、数据迁移、测试、artisan 命令行等等,还有强大的 ORM,artisan 强大的命令行工具,实现自动化。
Laravel的特点
1 强大的 rest router:用简单的回调函数就可以调用,快速绑定 controller 和 router
2 artisan:命令行工具,很多手动的工作都自动化;artisan也是进行模块测试、单元测试的得力小助手
3 可继承的模板,简化 view 的开发和管理
4 blade 模板:渲染速度更快
5 ORM 操作数据库:Eloquent 我认为是最好用的ORM工具
6 migration:管理数据库和版本控制
7 测试功能也很强大
8 全面拥抱composer
9 laravel 框架引入了门面,依赖注入,Ioc 模式,以及各种各样的设计模式等
安全性
框架的安全性需要重点提一下,提到安全性不得不提加密。
Laravel 的加密机制使用的是 OpenSSL 所提供的 AES-256 和 AES-128 加密。强烈建议你使用 Laravel 内建的加密工具,而不是用其它的加密算法。所有 Laravel 加密之后的结果都会使用消息认证码 (MAC) 签名,使其底层值不能在加密后再次修改。
Laravel重点概念总结
服务容器
我认为是Laravel框架最核心的设计。
是一个用于管理类依赖和执行依赖注入的强大工具。其实质是通过构造函数或者某些情况下通过「setter」方法将类依赖注入到其他类中。
门面
为应用服务容器中的绑定类提供了一个「静态」接口
优点:在维护时能够提供更加易于测试、更加灵活、简明优雅的语法。
契约
用来规划服务提供者的格式、方法、参数等,给服务提供者规范了一定约束。
反射
主要用来动态地获取系统中类、实例对象、方法等语言构件的信息,通过发射 API 函数可以实现对这些语言构件信息的动态获取和动态操作等。
后期静态绑定
用于在继承范围内引用静态调用的类,即在类的继承过程中,使用的类不再是当前类,而是调用的类。
总结
Laravel服务容器的底层设计模式,简单且高效的ORM支持,再加上开箱即用的各种服务以及在安全性,可扩展性的支持,是一个足够优雅的框架。
最后
感谢阅读,欢迎大家三连:点赞、收藏、投币(关注)!!!