我建议您熟悉PHP的历史,我知道这样做使我更加了解今天PHP以及来自哪里。
简而言之,PHP由Rasmus Lerdorf编写,为C代码提供简单的包装器功能,实际上正在做很大的改进,以便他可以使用更简单的语言/语法来编写需要动态行为的模板。 PHP和包围它的社区的发展最好被描述为有机的。与其他有机生长的东西一样,它不仅仅是一个混乱的,不对称的,完全不一致的。
一旦了解了PHP及其社区,您就需要拥抱所有的PHP和它所有的东西。这个想法在Terry Chay在他的文章PHP without PHP中最为出色。他专门在谈论这个简洁的缓存的概念,但他捕捉到了PHP的编码概念,就像PHP一样(在这里插入最喜欢的语言)比任何人都更好已经见过换句话说,不要试图让PHP成为Java,C#,Ruby等,因为如果你失败了,你会讨厌你的生活。
我必须说,你必须首先,最后,总是避免大多数PHP开发人员使用意大利面代码反模式的趋势。换句话说,如果你发现你正在编写一个包含sql查询,数据操作,数据验证和html输出的代码,所有这些都在一个php脚本中,那么你做错了。
为了避免这种情况,学习一些有关Web面向设计模式的性质将是有帮助的。这当然排除了对面向对象编程的熟悉程度。但是,一旦学习了PHP中面向对象编程的基础知识,就可以研究MVC设计模式。您不必完全实现这一点,但使用Model-View-Controller的基本想法将允许您避免大多数新手倾向于创建的blob脚本问题。
在这一点上,我强烈建议您使用一粒盐在网络上找到任何代码段。即使你在一本书中找到它,你将不得不考虑这本书的年龄。 PHP作为一种语言已经推出了相当长的一段时间,你不能只是以面值来代码示例,因为根据他们的年龄,他们可能会使用在3.x或4.x中有效的变通方法,但是不再是必要的新功能。
一个伟大的事情是研究那里的各种框架。评估你喜欢什么,什么不做。甚至可以处理框架文档中提供的每个quickstart,以便您可以开始了解自己喜欢和不喜欢的内容。我强烈建议您查看框架中的代码以及其他几个开源项目,以便您能够了解其他人如何在PHP中执行操作。再次,用一粒盐,因为每个PHP开发人员都有自己的宠物小便和细微差别,我们都不是一直都是对的。事实上,大多数时候使用PHP都有几个很好的方法来做某事。
如果您想更好地了解框架正在执行的模式,并且通常会在SO上的常见白话中抛出,我建议您阅读Fowler和GoF.他们将教授所有关于基本设计模式您将在开发工作中使用。
具体注意以下几点:
>功能文件包含LOTS的功能。这最有可能代表了将功能直接放在需要它们的脚本中的需要,或者也可能表示有机会创建一些更通用的函数来实现几个高度特定功能的角色。当然,如果你正在建立一个内聚性好的封装类,你不应该遇到这个问题。
做一切课。这是一个黑色的反模式,真的很讨厌。在这种情况下,您需要确定凝聚力和封装是否崩溃,并将这些点用作将类分解成若干更小,更易维护的类的机会。
>不使用参数化查询或至少转义参数的SQL查询。非常非常非常糟糕
>任何不执行验证或仅在客户端进行验证的实例。在开发网络时,保持网站和用户安全的唯一方法是假设其他人都是黑帽子。
突然强迫使用模板引擎的愿望。 PHP是模板语言。确保在使用模板引擎之前,您有明确的理由将其他图层添加到您的网站上。
如需进一步阅读,请查看以下内容: