我主要是寻找良好的开发实践,特别是当与mysql一起工作时。我搜索了所有的问题,但没有找到任何相关的问题。如果有人分享他们从经验中获得的实践和智慧,我将不胜感激。
除了一些编码标准之外,我还在寻找设计标准和通用的架构实践。
背景:我的职业生涯始于Java,多年来我转向了C#/.NET领域。我从事建筑师行业已经三年多了。添加这个只是为了给人们一些想法。
发布于 2009-04-18 07:34:16
我建议您熟悉PHP的历史,我知道这样做让我对PHP今天是什么以及它来自哪里有了更多的理解。
简而言之,PHP是由Rasmus Lerdorf编写的,目的是为实际执行繁重任务的C代码提供简单的包装器函数,以便他可以使用更简单的语言/语法来编写需要动态行为的模板。PHP的发展和它周围的社区最好的描述是有机的。就像其他有机生长的东西一样,它不仅有点混乱,不对称,而且完全不一致。
一旦您了解了PHP及其社区,您就需要拥抱PHP的一切,无论它是什么,或者不是什么。Terry Chay在他的文章PHP without PHP中提出了这个想法。他特别谈到了时髦的缓存的概念,但他抓住了PHP编码的概念,就好像它是PHP一样,而且(在这里插入最喜欢的语言)比我见过的任何人都要好。换句话说,不要试图把PHP变成Java,C#,Ruby等等,因为如果你这样做了,你会失败,你会讨厌你的生活。
看看How is PHP Done the Right Way?吧。
我必须指出,您必须首先、最后并始终避免大多数新手PHP开发人员倾向于使用意大利面条式代码反模式。换句话说,如果你发现你写的代码在一个php脚本中包含了sql查询、数据操作、数据验证和html输出,那么你就错了。
为了避免这种情况,了解一些面向web的设计模式的本质是很有帮助的。当然,这就排除了对面向对象编程的熟悉。但是,一旦您学习了PHP中面向对象编程的基础知识,就需要学习MVC设计模式。您不必完全实现此功能,但使用模型-视图-控制器的基本思想将允许您避免大多数新手倾向于创建的blob脚本问题。
在这一点上,我强烈建议您对您在web上找到的任何代码片段持保留态度。即使你在一本书中找到它,你也必须考虑这本书有多老。PHP作为一种语言已经取得了相当大的进步,你不能仅仅从表面上看代码样本,因为根据年龄的不同,他们可能正在使用在3.x或4.x中有效的变通方法,但对于新的特性不再需要。
有一件很棒的事情要做,那就是研究各种框架。评估一下你喜欢什么,不喜欢什么,甚至可以按照框架文档中提供的每个快速入门,这样你就可以开始了解你喜欢什么,不喜欢什么。我强烈建议您审阅这些框架中的代码以及其他几个开源项目,这样您就可以了解其他人是如何在PHP中做事情的。再说一次,对此持保留态度,因为每个PHP开发人员都有自己的烦恼和细微差别,而且我们中没有人总是正确的。事实上,在大多数情况下,使用PHP会有几种很好的方法来做一些事情。
如果您想更好地理解由框架实现的模式,并且这些模式通常使用通用的术语,那么我建议您阅读Fowler和GoF。他们将教授您在开发工作中将使用的所有基本设计模式。
特别要注意以下几点:
包含大量函数的
如需进一步阅读,请参阅以下内容:
PHP Application Design Patterns
Defend PHP --帮助您了解最常见的批评。
Security of strip_tags and mysqlirealescapestring
What should Every PHP Programmer Know
Best Way to Organize Class Hierarchy
发布于 2009-04-18 04:33:47
有很多针对PHP的工具。请使用它们,并编写良好的可维护代码。你会让每个人都更快乐。
发布于 2009-04-18 06:40:42
使用PDO或mysqli。使用其中之一将为您提供准备好的语句,这会更安全、更有效。我不敢相信我看到这么多使用古老的mysql接口的示例和教程。例如,如果您决定尝试postgres,PDO还将使切换到不同的数据库系统变得更加容易。
您可以考虑使用Doctrine (http://www.doctrine-project.org)。它有自己的学习曲线,但提供了非常方便的功能。对我来说,最方便的部分是表创建/测试数据加载函数。就我个人而言,我更喜欢编写自己的SQL并使用PDO执行它,而不是在生产中大量使用ORM。
主要学习SQL和MySQL。http://www.kitebird.com/mysql-book/这本书很棒。PHP方面不是很强;PDO处理了大部分内容。
https://stackoverflow.com/questions/762855
复制相似问题