我一直在为PHP / MySQL工作编写大量代码。到目前为止,所有这些都是程序性地利用函数来实现多次/位置的功能。开始发现一些难以管理的网站 - 时间去OO。
我想学习面向对象PHP和MV的MVC。 MySQL的。我在Java和MVC方面有一些经验,但从未与Web技术有任何关系,即HTML / CSS / JS等。我真的不明白动态生成的HTML如何适应类等。
我正在提出一些关于我可以从哪里开始的建议。理想情况下,一些网站从头开始有很好的例子。我此刻并不想使用框架,因为我发现它对你来说太过分了。一旦我理解了使用MVC的面向对象方法,我可能会使用一个框架来更轻松地管理。
干杯, 埃文
答案 0 :(得分:2)
你有很多代码,尽管很难改变,但它可能有用。进行大修会让你回头一段时间,所以最好的方法是增量。找到一些可以从使用对象中获益的东西,并在那里使用对象。重构,因为您可以运行测试。您可以使用普通的事件流来处理这些事情,事情就可以了。
坦率地说,如果你真的想要删除冗余和重复,那么你经常会找到只写一个小函数可以减少的地方。如果您经常这样做,您将找到适用于相同数据的功能组。这将建议在哪里寻找物体。换句话说,如果你用合适的耳朵听,代码会告诉你。
答案 1 :(得分:0)
如果你只想要一个好的在线课程,也许你应该看看
http://www.lynda.com/home/DisplayCourse.aspx?lpk2=653&srchtrk=index%3A1%0Alinktypeid%3A2%0Aq%3APHP%20Object%20Oriented%0Apage%3A1%0As%3Arelevance%0Asa%3Atrue%0Aproducttypeid%3A2%0Acategory_facet%3APHP
这门课对我的一个朋友非常有用。他完成本教程后预订的进度非常棒。它将向您介绍在PHP和面向对象中构建CMS的基础知识。
答案 2 :(得分:0)
不是一个真正的答案,但是太大而无法发表评论。
实际上HTML对于类没什么用,JS和CSS根本不涉及PHP,MVC和OOP。
您的代码应生成一些数据,这将以一种或另一种方式显示。您可以使用某些类来呈现此数据,但它不是那么重要的类。
虽然JS和CSS通常是完全独立的文件,直接从服务器通过浏览器调用,但是避免使用应用程序代码(除非动态生成)。无论如何,你应该没有太多的关注。
尽管将类层次结构与典型PHP应用程序的离散执行方式联系起来仍然是一项艰巨而重要的任务。有智慧的人曾经说过,“如果Windows在每次用户点击后都必须重新启动,那么它就会被写成完全不同”。
答案 3 :(得分:0)
我认为你应该从小块开始逐步进入OOP。我的意思是你应该为你经常使用的东西写简单的类,比如处理表格,图片上传,网站消息,会话处理。
当你习惯编写类和处理对象时,现在是时候使用mvc和其他东西来跳过像重构整个“引擎”这样更大的东西到OOP了。
答案 4 :(得分:0)
欢迎来到SO。
我绝不是一位PHP专家,这是我的想法:
使用PHP进行面向对象编程确实有帮助,但不太可能像去除所有冗余或使代码“整洁”一样。传统的PHP编码方式可以产生很好的代码。 OO有助于封装您的代码以隐藏实现并通过直接组合和/或继承来重用其他代码。我想说这里真正关心的是如何将“静态”html与“动态”PHP分离。 例如,不应该有很多:
echo "<h1>A title</h1";
echo "<p>blah blah blah...";
即使在条件打印中也是如此。
我想说将一个页面/脚本上的整个业务逻辑分成几个函数,至少隐藏一个函数内的细节。
关于PHP的流行OO框架的问题,CakePHP是一个很好的,从Ruby on Rails获得灵感。
答案 5 :(得分:0)
阅读MVC Tutorial in PHP以了解MVC然后开始使用像Zend,CakePHP,Symphony或CodeIgniter这样的MVC框架......