我有一个“验证器”类,可以对一组数据进行任意检查。例如,检查数组中给定值的字符串长度。验证器还可以检查给定值并查看它在数据库中是否唯一。我想对这个类进行适当的依赖注入(inject),但是,我正在努力解决如何在这种情况下实现它。验证器不需要数据库连接即可运行。所有其他验证检查都可以在没有数据库连接的情况下正常工作。现在,我可以选择使用属性注入(inject)来指定连接。或者,如果没有通过属性注入(inject)指定连接,我将使用服务定位器模式来解析来自IoC容器的默认连接。我做错了吗?处理类运行不需要的类依赖项的正确方法是什么?我目前像这样使用验证器:$rules=array('ema
它更像是一个架构相关的问题,如果我问错了栈,抱歉。他们会把它们放在一个文件夹里吗?喜欢$uid.$md5(random).$namesaveinonefolderfolder/5231.124wdadace123214.arandomname.jpgfolder/42.15125dawdaowdaw232.arandom2name.pngfolder/etc或$uid/$md5(random).$name5231(uid)/12421adwawda2321.arandomname.jpg42/15125awdawdwadwa232.arandom2name.pngetc/2323awd
在我的项目中,我决定使用服务模式(可能还有存储库模式)来处理我的应用程序中的业务逻辑。例如,我有一个Client代表客户的模型和相应的ClientService负责特定于客户的业务逻辑。classClientServiceextendsServiceimplementsClientServiceContract{publicfunctioncreate(array$attributes){//Createanewclient...}publicfunctiondoSomethingElse(Client$client){//Dosomethingelse}}例如我有另一个服务UserS
这是一个非常宽泛的问题:我一直在用PHP构建一个小型MVC框架,主要是为了学习更好的编码实践(因此我有一个系统来管理我的家庭财务)。在阅读过程中,我发现了很多关于VO和DAO的内容,这对我来说是新的,至少在形式上是这样。这让我意识到,尽管我已经用PHP编程了几年,但我只参与过一个项目,而且有点孤立。所以我熟悉MVC、VO/DAO和3-Tier。我的问题是,在Web应用程序开发中是否还缺少其他关键架构模式?是否有任何其他常见做法或“行业标准”,如果有,哪里有一些好的地方可以阅读它们?(特定于PHP者优先) 最佳答案 我还会研究代码生成
我想开始使用ZendFramework2并需要一些关于框架架构的指导。我比较了Akrabat'sZF2tutorial有了它ZF1equivalent到目前为止我注意到的主要区别似乎是使用modules.我喜欢模块作为独立且可重复使用的代码片段的想法,我认为它可以帮助分割我的应用程序并使其更易于维护。例如,我可以有以下URL=>module映射:http://example.org/products=>Productsmodulehttp://example.org/services=>Servicesmodulehttp://example.org/oauth=>Oauthmodul
我想这样做://ModelclassnamespaceBookshop\Inventory\Model;useCore\Inventory\Model\ProductasBaseProduct;classBookextendsBaseProduct{//...}//QueryclassnamespaceBookshop\Inventory\Model;useCore\Inventory\Model\ProductQueryasBaseProductQuery;classBookQueryextendsBaseProductQuery{//...}看起来不错,对吧?但是:$book=Bo
我目前正在将一个包含大量意大利面条式遗留代码的大型应用程序重构为更结构化、更易于维护且最重要的是可测试的应用程序。我可以看到,显然将类依赖项注入(inject)其中,而不是将对象创建与业务逻辑混合,这使得编写单元测试更加容易。我读过这样的评论:“不正确地使用依赖注入(inject)导致的问题多于它解决的问题。”这到底是什么意思呢?对于如此复杂的措辞,依赖注入(inject)似乎是一个非常简单的概念。您如何滥用通过构造函数发送依赖项而不是在依赖类中实例化它们的想法?为什么后者会更可取?我现在所能看到的是,它使编写测试和模拟对象的隔离功能变得非常容易。当一个类有太多职责并直接指向需要重构的
我需要一些帮助来理解PHP的内部工作原理。还记得,在过去,我们曾经写过TSR(Terminateandstayresident)例程(pre-windows时代)吗?一旦该程序被执行,它将保留在内存中并且可以通过一些热键(alt-或ctrl-组合键)重新执行。我想在网络服务器/应用程序中使用类似的概念。比如说,我有common_functions.php,它包含在该apache/php服务器上运行的所有Web应用程序的通用函数(如Generate_City_Combo()、Check_Permission()或Generate_User_Permission_list()等)。在所有模
我是OOP范例(和AJAX/jQuery)的新手,但想创建一个采用MVC架构的基本站点,使用PHP,具有AJAX功能。我绘制了一张关于我目前如何“理解”该架构的简要图表。大概当使用AJAX时,它充当Controller直接与模型交互以检索所需的任何功能?我添加的文件名只是为了让您了解我“认为”应该包含的内容。例如index.php将是一个html/css模板,在相关位置(无论它们是什么)包含模块-news.php、navigation.php等。database.php/pager.php可能包含类和扩展类我为分页或连接/查询数据库而创建我正在努力查看Controller组件可能是什么
关闭。这个问题是opinion-based.它目前不接受答案。想改善这个问题吗?更新问题,以便可以通过editingthispost用事实和引文回答问题.2年前关闭。Improvethisquestion编辑,2020/09:如果有人想知道,12年后,是的,我们现在都已经转向JSON和Kubernetes。原文如下。显然,没有一种解决方案可以满足所有人的需求。架构总是一种权衡。我想创建一个框架,最初是针对网页游戏的RAD。目标语言是PHP,虽然架构应该是广泛适用的。我为这个框架制定的目标是:实现结果的方式的灵active;为开发人员提供最大的舒适度;连接模块,如LEGO®积木;多种类型