可配置化

可配置化包含的内容非常广泛,这里我们仅仅讨论几个目前可能对我们有用的几个方面。

配置项

一个项目在测试环境与正式环境的访问入口是不同的,像这样的变量我们都会准备一个专门的配置文件来保存,比如laravel中的.env文件。通过配置文件,来达到修改变量,而不是修改代码的目的。

曾经流行的PHP系统中,往往会提供在后台管理配置项的功能,将配置项保存在数据库中,现今已不推荐使用这种方式。一来之前的系统很多是面向非程序员的站长的,所以需要配置可视化,但我们目前的系统都是有编程基础的人员进行管理的,直接修改配置文件并不存在门槛;其次,如果通过后台保存在数据库中,需要先连接数据库,然后才能读取配置项,在运行机制上会有一个先后问题,所以并非任意的配置项都能保存到数据库。

一般来说,配置项会满足下列特征中的一个或几个:

  • 可调整的值。
  • 环境变量。 系统入口、环境名称、debug等。
  • 服务间耦合信息。 数据库信息、reids信息等。

配置对象

配置对象,系统管理后台的所有功能,都可以抽象成对配置对象的管理。拿用户管理功能举例来说:

  • 新增用户:为系统新增一个用户对象。
  • 删除用户:删除系统中的某个用户对象。
  • 修改用户密码:修改系统中存在的用户对象的密码属性。

配置对象是如何抽象出来的呢?

1
分析系统需求 -> 构建系统逻辑 -> 抽象系统所需对象 -> 明确对象的属性 -> 对象对应数据库中的表,对象属性对应数据表的字段