使用FuelPHP进行DB水平分割支持

是札幌办事处的K.

传统上,服务器系统(LAMP环境)的创建专注于开发自己的框架,但近年来越来越多的开源框架被使用。

内部框架并不坏,但如果它是一个开源框架,我认为是否很容易接管另一家公司的运营,或者你是反向开发它并处理另一家公司的运营。

所以,我想写一下我听到的FuelPHP,这次它在社交游戏和其他开发中被广泛使用,我会告诉你我不关心的DB提示。

*有关FuelPHP的大腿类型的详细信息,请参阅日文文档。

(FuelPHP日文文件)http://fuelphp.jp/

 

■这次创建了环境

这次,我们在以下环境中进行了验证。

Apache 2.2.22

PHP 5.4.44

mysql 5.5.44,

加油PHP 1.7.3

虽然它被称为空置内部检查环境,但PHP版本有点旧,但FuelPHP正在支持它。

顺便说一句,最新发布的FuelPHP版本是1.8,它还支持PHP 7!

我想在那里上传任何报告。

 

提示!

■支持DB表的水平分区

数据库表的水平分区是社交游戏中负载均衡的有效方法。

但是,与FuelPHP相对应的水平分割意外地没有信息,并且要做到这一点是偶然的。

尽管FuelPHP具有将DB本身分离为主从的功能,但是在不考虑水平分散表的情况下的处理并且找不到良好的样本。

 

因此,我们创建了一个扩展现有ORM模型的模型,并决定根据条件选择一个表。

对于每个进程和子模型类,继承并使用此扩展模型。 (这是一个普通的程序..)

 

在这个机制中,我们做了以下事情。

·创建覆盖连接类的连接,

其中,根据划分规则选择表格。

·准备继承类不分为分表,

进行分区设置。

·单个表类继承上述继承类并执行各种操作。

 

写它让我觉得有点复杂,但它几乎如下。

fig001

例如,如果你找到它,它实际上意味着它是一种在Query :: forge中更新自己的类的机制,所以这很好。

当使用Scaffold等自动生成类时,需要重写它。

 

在我们公司,我们准备一个具有分布式目的地的表,并从每个用户获得的表中访问它(在_0等)。我认为这个区域是设计的一部分。

 

■流浪汉的东西

Fuel PHP配置文件配置被描述为从核心复制并重写,重写之后将采用,但是

在开发以外的环境下,我们发现核心下的配置将存在。

因此,在我这次复制的配置文件中,我设置了mysqli,但是一旦我将环境更改为生产,就是一个错误! !

作为检查的结果,这是一个错误,因为核心的配置默认是pdo。

 

由于FuelPHP经常重写核心本身,因此似乎必须要小心。

 

■印象

我觉得FuelPHP易于使用且是一个轻松的框架,但由于它还需要一些阅读能力,我认为最好定制和使用它。

在未来,我想触及各种各样的东西以及FuelPHP。