DB使用FuelPHP水平分割支持

这是札幌办事处的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!

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

 

提示!

■支持数据库表的水平分区

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

然而,与FuelPHP相对应的横向分割意外地没有信息,并且要摸索出来。

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

 

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

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

 

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

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

其中,表格是根据分割规则选择的。

·为继承准备班级不分为分表,

进行分区设置。

·单独的表类继承上述继承类并做各种事情。

 

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

fig001

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

当使用脚手架等自动生成类时,需要重写。

 

在我们公司,我们准备一个分布式目的地的表格,并通过每个用户获取的表格(在_ 0等中)访问它。我认为这个领域是设计的一部分。

 

■流浪汉的东西

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

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

因此,在这次复制的配置文件中,我使用mysqli进行了设置,但只要将环境更改为生产环境,就是错误! !

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

 

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

 

■印象

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

将来,我想和FuelPHP一样接触各种各样的东西。