Laravel为什么是优雅的框架?

「这是我参与2022首次更文挑战的第17天,活动详情查看:2022首次更文挑战」。

我认为 Laravel 框架最大的特点就是使用了容器服务的设计理念;另外集合了 php 的新特性,提供开箱即用的各种服务支持,以及各种各样的设计模式的应用实践。

架构模式

laravel 框架是使用了服务组件化的开发模式,由多个服务提供者构成了组件,再由多个组件提供不同的服务,多个服务构成了项目。

服务提供者是应用配置的核心,是通过 register 方法绑定服务到服务容器的。

涉及的设计模式

Laravel 框架使用了大量设计模式,使模块之间耦合度大大降低;更厉害的是服务容器可以方便的扩展框架功能以及编写测试。

下面结合我之前写的文章,汇总Laravel框架中涉及到的设计模式:

1. 外观(门面)设计模式

外观设计模式-Laravel Request实践:优雅的设置全局变量

Laravel框架最重要的Facades

2. 对象关系映射模式

我认为Eloquent是所有PHP框架中最好用的ORM,我之前整理了5篇关于Eloquent的文章,欢迎大家阅读指教。

# Laravel Eloquent 模型 使用技巧

# Laravel Eloquent 模型 进阶技巧

# Laravel Eloquent 关联模型使用技巧

# Laravel Eloquent 关联模型 进阶使用技巧

# 新版本 Laravel Eloquent 关联模型 使用技巧

契约设计模式

Laravel 契约Contracts 详解

工厂模式

Laravel 模型工厂类 批量生成数据

策略模式

Laravel服务容器详解

观察者模式

监听与触发

快速开发

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支持,再加上开箱即用的各种服务以及在安全性,可扩展性的支持,是一个足够优雅的框架。

最后

感谢阅读,欢迎大家三连:点赞、收藏、投币(关注)!!!

8e95dac1fd0b2b1ff51c08757667c47a.gif

おすすめ

転載: juejin.im/post/7068172063991103518