【发布时间】:2009-10-17 05:10:50
【问题描述】:
我知道使用 PHP 框架的好处(虽然不是第一手资料,只是通过阅读 SO 等),但我没有听说过框架需要多少“忘却”。使用框架时,您将控制权交给了新框架,您必须“忘掉”许多东西,并根据新框架的需要以新的方式重新学习它们。这是真的吗?当涉及到这种不学习方面时,哪个框架最灵活?
【问题讨论】:
标签: php zend-framework cakephp codeigniter
我知道使用 PHP 框架的好处(虽然不是第一手资料,只是通过阅读 SO 等),但我没有听说过框架需要多少“忘却”。使用框架时,您将控制权交给了新框架,您必须“忘掉”许多东西,并根据新框架的需要以新的方式重新学习它们。这是真的吗?当涉及到这种不学习方面时,哪个框架最灵活?
【问题讨论】:
标签: php zend-framework cakephp codeigniter
并非如此,这仅取决于您学到了什么/如何学习。
这也取决于特定的框架,一些添加有用的功能和技巧,而另一些建议(或强制)您使用不同形式的开发、文件结构和功能。
例如,在 php 中,您仍然可以执行 pre_replace('[A-Za-z]',$user.name),仍然可以工作,但 is_alphabetical($user.name) 会做同样的事情。
您仍然可以使用相同的函数,但有些框架要求您重新设计程序的结构,而其他框架只提供帮助程序、函数和数据库类以供使用。
我听说http://codeigniter.com/ 是最丰富的框架,在程序结构方面非常灵活,而http://cakephp.org/ 则更加固执己见。
它不像 ruby on rails 或 django 那样你会学习一门全新的语言,你仍然拥有并且可以使用 php,但最好坚持使用框架的良好编程原则,而不是使用 php 来解决它们。
【讨论】:
我认为这就是 zend 和 symphony 如此出色的原因:你可以使用你想要/需要的东西。所以你不必忘记任何东西..
(尽管在你开始之后你会不断在你的应用逻辑中添加越来越多的元素)
【讨论】:
如果您已经在使用一个框架并考虑切换到另一个框架,这可能是正确的。框架在实现常见任务的方式上往往有所不同。
如果您还没有使用框架,您只会“忘记”手动实现的繁琐和复杂的东西。它应该可以简化您的编程,所以请继续尝试。
【讨论】:
我会说这是更少的un学习和更多的学习以不同的方式做事。像 Zend 这样的框架更灵活,它允许您以几乎任何您喜欢的方式做事,并且只在需要时使用框架的零碎部分。像 Cake OTOH 这样的框架更加僵化,会迫使你更多地学习做事 The Cake Way™;但在大多数情况下,旧方法可能仍然有效,尽管不是最理想的。
俗话说,“CakePHP 中仍然有 PHP”(以及 Zend 和 CodeIgniter)。意思是,任何 PHP 代码都会运行,没有太多情况是框架阻止你做特定的事情。从 PHP 切换到另一种语言需要更多的un学习。
当你开始学习一个框架时,你会逐渐学会不同的、更有效的做事方式,你不必马上忘记你所知道的一切。
【讨论】: