面试PHP,有时候也会被问起使用的框架的一些问题,这里就框架Laravel
给大家做了一个总结。
laravel
框架最大的特点和优秀之处就是集合了php比较新的特点,以及各种各样的设计模式,Ioc
模式,依赖注入等
一、Laravel有哪些特点
1 强大的rest router
:用简单的回调函数就可以调用,快速绑定controller
和router
2 artisan
:命令行工具,很多手动的工作都自动化
3 可继承的模板,简化view
的开发和管理
4 blade
模板:渲染速度更快
5 ORM
操作数据库
6 migration
:管理数据库和版本控制
7 测试功能也很强大
8 composer
也是亮点
9 laravel框架引入了门面,依赖注入,Ioc
模式,以及各种各样的设计模式等
二、架构模式
laravel框架是使用了服务组件化的开发模式,由多个服务提供者构成了组件,再由多个组件提供不同的服务,然后是多个服务构成了项目
服务提供者是应用配置的核心,是通过 register
方法中绑定服务到服务容器的。
三、涉及到的设计模式
laravel框架使用了大量设计模式,使模块之间耦合度很低,服务容器可以方便的扩展框架功能以及编写测试。
1.ORM
- 对象关系映射模式
2 依赖注入与IOC
容器 - 策略模式
3 监听与触发 - 观察者模式
4 门面模式 - 静态代理
还有其他的,比如注册服务的时候用到单例模式等。
四、服务方面
能快速开发出功能,自带各种方便的服务,比如数据验证、队列、缓存、数据迁移、测试、artisan
命令行等等,还有强大的 ORM
,artisan
强大的命令行工具,实现自动化。
Laravel安全功能有效地利用了盐散列和加密码机制,Bcrypt
哈希算法”来创建加密密码。
五、框架的其他知识点
服务容器:是一个用于管理类依赖和执行依赖注入的强大工具。其实质是通过构造函数或者某些情况下通过「setter
」方法将类依赖注入到类中。
门面:为应用服务容器中的绑定类提供了一个「静态」接口 ,优点:在维护时能够提供更加易于测试、更加灵活、简明优雅的语法。
契约:用来规划服务提供者的格式、方法、参数等,给服务提供者规范了一定约束。
反射:主要用来动态地获取系统中类、实例对象、方法等语言构件的信息,通过发射API
函数可以实现对这些语言构件信息的动态获取和动态操作等。
后期静态绑定:用于在继承范围内引用静态调用的类,即在类的继承过程中,使用的类不再是当前类,而是调用的类。
六、生命周期
生命周期如下:
入口文件-请求web
服务器导入这个文件-载入 Composer
生成的自动加载启动核心文件-内核启动(服务提供者启动框架的各种组件)-交给路由分发到到(控制器,中间件等)-逻辑处理-返回结果
七、laravel框架运用到的repository模式的主要思想
建立一个数据操作代理层,把controller
里的数据操作剥离出来,这样做有几个好处:
1 把数据处理逻辑分离使得代码更容易维护
2 数据处理逻辑和业务逻辑分离,可以对这两个代码分别进行测试
3 减少代码重复
4 降低代码出错的几率
5 让controller
代码的可读性大大提高