Oop Nette:模型与供应商库
我有几个模型,我在每个沙盒项目中都实现了一段时间,这让我思考。与我自己的库(理论上包含相同的文件)相比,少数几个具有恒定实现的模型有什么不同 问题#1:在少数模型对象和库中的相同对象之间,执行时间和页面加载是否有任何差异 问题2:为什么我应该使用库而不是少数几个模型(反之亦然) 问题#3:如果这两者没有任何区别,我是否应该创建自己的库来简化composer实现,或者使用某种自定义的沙盒git rep和模型是更好的选择Oop Nette:模型与供应商库,oop,models,implementation,vendor,nette,Oop,Models,Implementation,Vendor,Nette,我有几个模型,我在每个沙盒项目中都实现了一段时间,这让我思考。与我自己的库(理论上包含相同的文件)相比,少数几个具有恒定实现的模型有什么不同 问题#1:在少数模型对象和库中的相同对象之间,执行时间和页面加载是否有任何差异 问题2:为什么我应该使用库而不是少数几个模型(反之亦然) 问题#3:如果这两者没有任何区别,我是否应该创建自己的库来简化composer实现,或者使用某种自定义的沙盒git rep和模型是更好的选择 它不是或是可以忽略不计的。你的课程必须包括在内。无论它们是由composer
即使我不完全了解你的情况,我也会尽可能地回答: 1) 不是真的,它是类自动加载,无论它位于何处 2) 当您发现一些类有共同的含义时,我建议将代码移到库中,这些类可以抽象到某个目录中,例如
- 文件管理器
- 图像调整器
- 前交叉韧带
- CMS
这一切都取决于您的特定类。最好是查看整个项目和您遇到的问题。您所说的“模型”是什么意思?例如,类、NetteObject,我有一个日志模型,它在basePresenter中实现,并记录我需要记录的任何内容。或者我有一个扩展了Nette/Object的对象,它基本上是我的应用程序/模型中其他类的父类。它包含一组有用的函数和检查方法。接下来,以上一个应用程序为例,我构建了calendar,其中包含许多不同的日期/时间相关函数,还用于为前端创建数据结构。一些简单的代码可能会有帮助:你想从哪里加载什么?啊,现在我明白了!所以,基本上,主要的问题是它是否是特定应用程序的定制,以及类是否相关。例如,如果我选择某种CMS,它应该是lib,但如果我们谈论的是某种数据库迁移工具,我计划将其作为CMS的一部分使用,但有时作为其他应用程序的独立模块,我应该将其作为类保留,而不是为这一特定功能选择lib。对吗?在我看来,CMS太复杂了,不可能是lib。另一方面,拥有更多具有特定功能的库是一个好主意,比如db类、寻呼机等,CMS将从中组成。当然,你也可以在github上发布你的CMS应用程序,将其提供给其他人。数据库迁移工具是lib的一个很好的例子,它与composer一起安装,因为您可以与其他应用程序共享它。不应该有太多特定于一个应用程序的功能。但以UserModel为例,不管它在所有应用程序中的使用方式如何,它都不是lib的好选择。希望你能理解。