Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
面向高级PHP开发人员的MVC_Php_Oop_Model View Controller - Fatal编程技术网

面向高级PHP开发人员的MVC

面向高级PHP开发人员的MVC,php,oop,model-view-controller,Php,Oop,Model View Controller,我需要更多有经验的程序员的帮助。我想提高我的MVC技能。但是我找不到一个关于谷歌MVC的好教程。谷歌总是给“新手MVC” 我理解什么是MVC,我可以做到,但我没有足够的经验在OOP中做一些实际的事情 如果有人知道一本好的面向对象的MVC教程,请告诉我正确的位置-我正在寻找好的链接、书籍等。我向您推荐的是一本关于设计模式的书。这些书中的大多数还介绍了MVC模式,如果您构建了一个完整的框架,那么其他模式也值得一看 一本好书是。 我不知道它是否存在于英语中,但我会搜索其他书籍并比较其内容 包含仅PHP

我需要更多有经验的程序员的帮助。我想提高我的MVC技能。但是我找不到一个关于谷歌MVC的好教程。谷歌总是给“新手MVC”

我理解什么是MVC,我可以做到,但我没有足够的经验在OOP中做一些实际的事情


如果有人知道一本好的面向对象的MVC教程,请告诉我正确的位置-我正在寻找好的链接、书籍等。

我向您推荐的是一本关于设计模式的书。这些书中的大多数还介绍了MVC模式,如果您构建了一个完整的框架,那么其他模式也值得一看

一本好书是。 我不知道它是否存在于英语中,但我会搜索其他书籍并比较其内容

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

在全面理解OOP之前,您甚至不能开始钻研MVC。其中包括OOP实践(,)原则(,)和常见模式(不,singleton不是面向对象的模式)

MVC是一种先进的体系结构设计模式,它需要坚实的理解。它不适用于初学者或小型“hello world”应用程序。当对OOP实践的简单遵循变得过于松散而无法控制代码库时,可以使用MVC向代码库添加额外的约束

我能为您提供的最好建议是,首先扩展有关面向对象代码的知识:

以上两节课应涵盖基础知识。然后转到:

当您理解了本系列中的所有内容后,您可以进一步展开:

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

p.S.:你也可以看看这本书(小心,因为它有问题):php


@House博士,实际上CI是PHP中两个最差的框架之一。和蛋糕一起吃。它不实现MVC或任何其他受MVC启发的设计模式。它依赖于全局状态,包含PHP4工件,打破所有坚实的原则,完全忽略SoC。如果你想了解MVC CI是最糟糕的选择之一。你的阅读能力强得多。。框架不实现MVC。你的代码确实如此。@tereško,网络游击队!我建设性地这样说:我注意到你的陈述经常如此刻薄(如上所述,以及在你对雷德雷盖的评论中),可能与不太可能引起冒犯的方法有关。对于每一个成功的开源项目,都有人全身心地投入其中,我想也有人为此付出了汗水和眼泪!Symfony 1是一个伟大的框架,周围有一个繁忙的生态系统,无论您认为它是否符合当今的开发成熟度水平。简短版本:以积极的方式批评他人,但不要影响他人的工作。同样,删除投票。是的,这个问题似乎没有建设性。但是,不,它不应该被删除。把它关上——这就够了。这是因为:它包含了非常有用的答案。Kapitel 4、Erzeugungsmuster、behandelt Entwurfsmuster、die eingesetzt werden、um Objekte zu erzeugen。Vorgestellt werden在diesem Kapitel的“单一模式”、“工厂方法模式”、“抽象工厂模式”和“原型模式”中。。在最后一章中,它介绍了梨。这看起来并不那么有希望。@tereško那又怎样?你认为这本书很差劲,因为它涵盖了单身模式?很难说(注意我怎么既没有说它“差劲”,也没有投反对票)。我只是说人们应该仔细阅读它。特别是如果计算一下“php书籍”中的垃圾总量,比如GoogleTalk,因为在测试环境中。谢谢你的列表。@tereško这是我以前从未读过的最好的链接之一,非常感谢你的链接。有没有可能解释一下用php进行单元测试的实际原因。我只是想知道使用phpUnit或Jenkins等工具在框架中进行单元测试的重要性。我们可以忽略这个吗。我问这个问题是因为当我写代码的时候,我经常感觉到我写代码是为了确保我可以轻松地使用php单元来测试它的功能。因此,使用phpunit需要更多的开发工作。首先,Jenkins是一个持续集成工具。不同的主题。至于单元测试——不,您不需要使用它。编写可以测试的代码不应该花费太多时间。如果您编写了好的OOP代码(没有全局状态,必要时进行依赖注入),那么测试它的能力将只是一个副作用。而且,如果要编写测试,则需要额外的时间。可能会解释哪些好处以及如何编写这些测试。问题是,当您在没有测试的情况下开发时,工作流程是这样的:您编写一些代码,上载它,然后以不同的形式填写一些数据,或者单击周围,看它是否有效。。然后你重复一遍。每次填写数据都需要时间。Unittests允许您预先定义输入和预期输出的列表,这样您就不必第100次填写50个字段的保险表,只需测试第32个字段的验证是否正确。每次你发现一个bug时,你只需添加一个测试,其中包含复制该bug的数据和实际应该的输出。单元测试所做的另一件事是——防止你(或一些过于热情的同事)以“优化”的名义删除bug修复,仅仅因为有人不知道或记不起来“为什么在IF语句中会出现这种奇怪的第三个条件?”。如果删除破坏代码的内容,单元测试可能会发现它。