我想在ソシャゲサーバー開発(lumen5.4)中,流暢地寫下我打算做的事情和我的感想

请在团队中找一个有经验的人,
一个只在业余时间玩玩PHP的人被迫疯狂地独自开发某大型社交游戏的IP,这简直是个疯狂的事情。

根据需要随时更新

    1. 类型宣言

 

    1. 虽然变量名有点能理解,但还是有了解更容易啊。

 

    1. Collection很方便

 

    1. 更早地发现它的便利性就好了(比如where和groupBy很方便)

 

    1. 但在循环内频繁使用where是不合适的(没有索引,所以每次都要遍历整个数据)

 

    1. 如果能使用索引就方便了

应该好好理解bindIf和singleton

AppServiceProvider.php
app()->singleton(“Hoge”, \App\Hoge::class);

虽然通过app()->Hoge访问,Hoge实例只会被创建一次

AppServiceProvider.php
app()->bindIf(“Hoge”, function($app) {
return new \App\Hoge();
});

通过app()->Hoge访问,每次都会创建Hoge实例
刚开始试的时候误认为两个都只会创建一次,后来才发现

应该统一使用->get()来获取查询构建器中的数据
明显只能获取一条数据的用->first(),但这种情况下返回的是stdClass对象
而->get()返回的是Collection对象
而且我希望返回值的类型统一为Collection,所以用了return (Collection::make(first返回的结果));
所以在处理中$c[‘hoge’](用first获取的数据)和$c->hoge(用get获取的数据在foreach中处理)混在一起
尝试使用Eloquent
ORM会自动发出SQL语句,所以这次用了查询构建器,但下次可以试试用ORM验证一下也行(类型声明可能更清晰)

在路由器上使用group的group
在lumen5.4中还不能使用,但从5.5开始可以使用,所以想用一下
使用批量插入(bulk insert)
在优化负载测试时,通过批量插入大量数据可以有很大的改进。
如果有超过10个数据插入,则最好马上使用批量插入
要防止重复数据
重复数据是数据的负担,所以在创建新用户时最好在一定程度上延迟数据的创建(虽然这次的任务数据很多,但一开始就被使用了,所以没办法,但根据数据的创建方法,应该只创建最必要的数据,然后在特定时间批量创建数据)

另外,规定1个月没有登录的用户数据要删除也是可行的
使用KVS(Redis memcache)时需要序列化和反序列化
一开始使用了json_encode json_decode,但