如题
java、.net平台下都有对应的反向工程功能。为啥laravel没有呢,感觉laravel社区挺大的啊。
更新
看到回答中有说使用 laravel migration进行code first的。刚看了下文档,感觉migration和code first没有多大关系,而且好像没有解决我的需求。migration本质是一个数据库版本管理工具,用于团队间数据库结构共享。其实我想表达的需求是:
需求一
由于php是弱类型语言,我个人是从java、.net转到php的,无法适应php中大面积使用字符串索引的开发方式。这种方式有以下问题,我想避免这些问题。
- 影响开发效率;
- 容易出错,字符串一个字母写错就会导致不可预知的问题;
- 难以重构。
比如我创建一个model类 User 要访问这个类的一个字段,需要这样写:
$user['name']
而我想在有代码补全的前提下这样写:
$user->name;
当前的解决方案是使用ide-helper生成PHPDoc,暂时可以解决此问题。
需求二
数据库中已经建立好的外键关联,需要手工写代码建立model中的关联,比如hasOne和hasMany之类,这些代码和数据库结构是严格对应的,完全没有必要手写,我的疑问和需求是为啥没有工具实现自动生成关联呢。.net下的ef做法是将数据库结构反向工程为一个描述文件以及相关model类,通过类即可方便实现数据库操作,java平台下也有相关方案。
我认为任何orm框架都应该用这种思路吧。即:model类代码和数据库结构一一对应,提供高效的访问数据库接口。到了laravel这边感觉像是一个只完成了一半的工程。本来是非常重要和核心的内容反而需要使用ide-helper这种相对较弱的辅助来实现。这一点可非常不艺术.....
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…