CakePHP与大型、快速增长的模型

CakePHP与大型、快速增长的模型,php,cakephp,Php,Cakephp,在用CakePHP开发的一个小团队中花了9个月的时间,我们开始看到越来越多的模型变得3000、4000甚至5000行长。 并不是代码被重复,而是我们添加了很多功能,只需要这么多代码 我知道,与许多大型应用程序相比,这些文件可能不会被认为是非常大的,我们当然会通过使用私有函数来降低可用调用的数量,但是,如果我们想开始分解其中一些文件以提高可管理性,是否应该遵循任何特定的技术 没有任何db表的模型是否违反了惯例? 是否有更适合放置大块代码的地方 提前感谢您的建议您可以尝试查看所有内容并评估其相关性,

在用CakePHP开发的一个小团队中花了9个月的时间,我们开始看到越来越多的模型变得3000、4000甚至5000行长。 并不是代码被重复,而是我们添加了很多功能,只需要这么多代码

我知道,与许多大型应用程序相比,这些文件可能不会被认为是非常大的,我们当然会通过使用私有函数来降低可用调用的数量,但是,如果我们想开始分解其中一些文件以提高可管理性,是否应该遵循任何特定的技术

没有任何db表的模型是否违反了惯例? 是否有更适合放置大块代码的地方


提前感谢您的建议

您可以尝试查看所有内容并评估其相关性,以及该功能是特定于该模型还是可供多个模型使用。如果在将数据传回控制器之前,您正在对数据进行大量处理,以将其转换为合适的格式(例如字符串格式、日期格式),那么一些处理可以放在存储通用函数的帮助文件中

您可以尝试查看所有内容并评估其相关性,以及该功能是特定于该模型还是可供多个模型使用。如果在将数据传回控制器之前,您正在对数据进行大量处理,以将其转换为合适的格式(例如字符串格式、日期格式),那么一些处理可以放在存储通用函数的帮助文件中

我想问一下,您的模型实际上是在对业务对象建模,还是仅仅是对一些功能或流程建模

对于许多控制器中可用的可重用代码块,我倾向于创建封装该部分业务逻辑的代码块


如果这对分解5000行的庞然大物没有帮助,那么我建议将其放入插件中。

我会质疑您的模型是在对业务对象建模,还是仅仅对一点功能或流程建模

对于许多控制器中可用的可重用代码块,我倾向于创建封装该部分业务逻辑的代码块


如果这不能帮助分解5000行的庞然大物,那么我建议将其放入插件。

如果不知道代码,就不可能正确回答这个问题。检查代码,是否重复相同的工作流程?你能把它抽象成一种行为吗

有一个10k线模型没有什么错,只要代码真的属于模型。经验法则:如果它在操纵某些东西,它就会进入模型


但我不建议使用很多私有方法,它们只会使测试(如果您进行单元测试,您应该这样做)更困难,请参阅。您使用它们的方式在任何方面都是错误的,例如,可见性范围并不被认为限制了公共可调用方法的数量,而是被认为避免了人们扩展代码的关键部分。实际上应该没有太多的私有方法,那些私有的方法应该是私有的,这是有很好的理由的。

如果不知道代码,就不可能正确地回答这个问题。检查代码,是否重复相同的工作流程?你能把它抽象成一种行为吗

有一个10k线模型没有什么错,只要代码真的属于模型。经验法则:如果它在操纵某些东西,它就会进入模型

但我不建议使用很多私有方法,它们只会使测试(如果您进行单元测试,您应该这样做)更困难,请参阅。您使用它们的方式在任何方面都是错误的,例如,可见性范围并不被认为限制了公共可调用方法的数量,而是被认为避免了人们扩展代码的关键部分。事实上,应该没有太多私人的方法,那些私人的应该是私人的,这是有很好的理由的