我看到这个问题是关于C#我想要PHP的答案。我有一些旧的代码,有4页的foreach循环和条件,这使得它很难阅读和遵循。我怎么能让这个OO更多?我在考虑使用SPL函数,但还没有完全理解所涉及的内容。
答案 0 :(得分:3)
此代码可能会被显着清理,并且在向OO的方向推动很远,而不会触及SPL。
只有在想要改变语言结构(如foreach())或内置类(如count())或数组访问函数(运算符[]和函数(如key(),next)中的正常对象行为时才需要SPL: )等)。
清理建议:
答案 1 :(得分:2)
答案 2 :(得分:0)
慢慢开始。一次重构一次。
如果要循环遍历大量数组,请查看array_map
,array_walk
和朋友等数组函数。这更像是一个功能性重构,然后是一个OO重构,但它会带你走得很远。 如果更有意义,那么你将拥有一些函数,然后你可以根据需要将它们推送到适当的类中。
答案 3 :(得分:0)
Johnathan和gnud的一些好建议。不要太担心SPL和learn more about refactoring,并查看refactoring tools are available for PHP。
另外,我不能推荐足够的阅读Working Effectively with Legacy Code:
当然还有规范的Refactoring Book:
PHP是一种难以清除代码味道的语言,但只需坚持不懈就可以完成!每天你必须要看看你的代码库,你会感谢自己。
答案 4 :(得分:0)
如果我理解正确的话,那么你已经嵌套4页深的foreach循环(等等),你想知道你听说过这个OO的东西是否有帮助。
您当然应该继续重构代码以降低嵌套级别并提高可读性,但不要将其与对象方向混淆。
如果你还没有理解OO的概念,你可能会发现重构你的代码更容易将内部循环中的代码分成单独的函数,希望每个函数都有一个简单的任务。
别误会我的意思;我是OO的倡导者,特别是作为一种技术,为开发人员提供更高层次的概念,以更有效地讨论设计。 OO非常值得学习。
但是不要让缺乏关于OO的知识阻止你将内部代码从循环中拉出来并将它们放入单一用途的函数中。
(如果我误解了你的OO知识水平,我很抱歉。)