我需要更多有经验的程序员的帮助。我想提高我的MVC技能。但是我在Google for MVC上找不到很好的教程。 Google始终会为“初学者提供MVC”。

我知道MVC是什么,我可以做到,但是我没有足够的经验来做OOP实用的东西。

如果有人知道MVC的优秀面向对象教程,请引导我到正确的地方—我正在寻找好的链接,书籍等。

评论

@ Dr.House,实际上CI是PHP中两个最差的框架之一。除了蛋糕。它没有实现MVC或任何其他受MVC启发的设计模式。它依靠全局状态,包含PHP4工件,违反了所有SOLID原理,并且完全忽略了SoC。

如果您想了解MVC,CI是最糟糕的选择之一。您最好阅读该用户的最佳答案。

Fabien Potencier – Symfony不是MVC框架。框架不实现MVC。您的代码可以。

@tereško,确实是网络游击队员!我以建设性的态度说:我注意到您的陈述经常过于粗略(上面以及您对redreggae的评论),并且可能以不太可能引起冒犯的方法来做。对于每个成功的开源项目,都应该有人投入我的心和灵魂,我也应该想到汗水和眼泪!无论您是否相信Symfony 1都能满足当今开发成熟度的要求,Symfony 1都是一个很好的框架,周围有繁忙的生态系统。简短的版本:以积极的方式批判,但不要落在人们的工作上。

同样,删除投票。是的,这个问题似乎没有建设性。但是,不-不应删除它。保持关闭状态就足够了。那是因为:它包含非常有用的答案。

#1 楼


包含仅PHP材料的链接用php标记,以便于识别。


在全面了解OOP之前,您甚至无法开始研究MVC。其中包括OOP实践(依赖注入,单元测试,重构)原理(SOLID,SoC,CQS,LoD)和通用模式(不,单例不是面向对象的模式)。

MVC是先进的建筑设计模式,需要扎实的理解。它并不适合初学者或小型“ hello world”应用程序。当对OOP的简单遵循变得太松散而无法控制代码库时,可以使用MVC在代码库中添加其他约束。面向的代码:


清洁代码I:参数
清洁代码III:函数

以上两个讲座应涵盖基础知识。然后继续进行以下操作:


继承,多态性和测试
单元测试
全局状态和单例
不要找东西!

当您理解了本系列中所有解释的内容后,您可以扩展以下内容:



别傻了,掌握SOLID! php

敏捷设计的原理

高级OO模式(幻灯片)php


超越框架(幻灯片)php


敏捷性和质量php


超越设计模式php


此外,我强烈建议您阅读(按此顺序):


设计模式的解释
GUI体系结构
控制容器的反转和依赖注入模式

模式应用程序体系结构指南
域驱动设计:解决软件核心问题的复杂性


PS:您还可以阅读这本书(谨慎地看,因为它存在问题):PHP设计模式指南php


评论


像Google Talk一样,是因为在测试环境中。感谢您的清单。

– whereismydipp
2013年9月12日在7:28

@tereško,这是我从未读过的最佳链接集之一,非常感谢您的链接。是否有可能提供有关php中单元测试的实际原因的解释。我只是想了解使用phpUnit或Jenkins等工具在框架中进行单元测试的重要性。我们可以忽略这个吗? 。我问这个问题是因为在编写代码时,我常常会感到自己正在编写代码,以确保可以轻松地使用php unit来测试其功能。因此,在使用phpunit时需要花费更多的开发工作。

–aravind.udayashankara
13年9月30日在5:55

首先,Jenkins是一个持续集成工具。不同的主题。至于单元测试-不,您不需要使用它。您可以花更多的时间编写可以测试的代码。如果您编写好的OOP代码(没有全局状态,则在必要时进行依赖注入),那么测试它的能力将只是副作用。而且,如果您要编写测试,则将需要更多时间。本讲座可能会解释有什么好处以及如何编写这些测试。

–tereško
2013年9月30日在6:27

问题是,当您在不进行测试的情况下进行开发时,工作流程将如下所示:您编写一些代码,然后将其上传,然后以不同的形式填写一些数据,或者单击周围的内容以查看其是否有效..然后重复进行。每次填写数据都需要时间。单元测试可让您预先定义输入和预期输出的列表,这样您就不必在第100场填写50场保险单,而只是测试第32场的验证是否正确即可。每次发现错误时,您只需添加一个测试数据即可复制该错误以及实际应该输出的数据。

–tereško
2013年9月30日在6:27

单元测试要做的另一件事是-阻止您(或一些热心的同事)以“优化”的名义删除错误修正,只是因为有人不知道或不记得“为什么IF语句中存在这种奇怪的第三种情况? ”。如果删除破坏代码的内容,则单元测试可能会选择它。

–tereško
13年9月30日在6:28

#2 楼

我向您推荐的是一本有关设计模式的书。这些书中的大多数都还涵盖了MVC模式,如果构建一个完整的框架,其他模式也是值得了解的。

一本好书是《 PHP Design Patterns》。
我不知道它以英语存在,但我会搜索其他书籍并比较内容。

评论


Kapitel 4,Erzeugungsmuster,behandelt Entwurfsmuster,eingesetzt werden和um Objekte zu erzeugen。在Diesem Kapitel das“ Singleton-Pattern”,das“ Factory-Method-Pattern”,“ Abstract-Factory-Pattern”和das“ Prototype-Pattern”中的Vorgestellt werden。 ..在最后一章中介绍了PEAR。这似乎没有什么希望。

–tereško
13年5月3日在10:46



@tereško那又如何?您认为这本书很烂,因为它涵盖了单例模式?

–bitWorking
13年5月3日在10:49



很难说(注意我既没有说过它“烂透了”也没有低下头)。我只是说,应该仔细阅读它。特别是如果要计算“ php书籍”中的废话总数。

–tereško
13年5月3日,10:55