PHP:应用程序框架问题(供讨论使用)

问题描述:

我是一个爱好开发人员,这意味着我在一边做,而不是经常这样做。我一直在阅读关于Web应用程序框架的内容,并在CakePHP和CodeIgniter之间寻找。我终于决定进一步深入CakePHP,因为它似乎更像我的胡同。PHP:应用程序框架问题(供讨论使用)

问题是,我越深入越多,我不明白为什么我使用框架。所以,铁杆开发人员在那里,与我讨论,或帮助我了解以下内容:

我明白在长期运行的应用程序框架有助于更快地部署代码或更快地编写代码。然而,可以理解的是,这些框架的局限性在于你必须根据框架的标准进行编码?我越来越多地尝试使用CakePHP,这几乎就像我必须在实际编程语言之上学习框架语言/标准一样。例如,我不得不学习CakePHP的标准和方法来实现“更快”的部署和解释,但我也试图编码到PHP标准(这有点内置到CakePHP中),但作为一个整体,这就是我看到了。对我而言,这是一个开销,但如果你知道CakePHP或者你选择的框架,这没什么,因为你可能知道如何编写你的框架?

另一个问题或讨论是,作为开发人员和喜欢MVC方法的人员,但并不真正知道如何使用框架实现它,最好的方法是使用与我一样的代码(通过函数文件),制作我自己的函数等,但也使用MVC技术?我的意思是,我不应该学习一个应用程序框架,而应该将内容样式与MVC作品等功能分开,但使用我自己的功能,或者我应该学习一个应用程序框架。

注意:我可能会错误地讨论应用程序框架,但我不确定。另外,这是为了讨论而不是咆哮;我不知道我不知道什么,所以我实际上正在寻求澄清。

谢谢!

+0

您可能想要阅读右侧栏中提供的一些相关问题。虽然他们可能不完全重复,但他们可能会回答一些你甚至不知道你有的问题。 – Matthew 2011-03-21 23:44:35

+0

框架不仅可以减少编写的代码量,还可以让您在库中进行1个简单的错误修复,并且这在整个解决方案中都会有效。它关于可持续性和可重用性, – RobertPitt 2011-03-21 23:48:20

+0

@konforce:我会这样做的。 @RobertPitt:这就是我正在谈论的并需要反馈;感谢这一点。试图掌握好处,以便最终将我的oldschool functions.php文件转换为MVC/Framework解决方案。 – drewrockshard 2011-03-22 16:06:10

我认为这里有一点需要记住:要通过某种工具提高工作效率,您需要先学习如何使用该工具。你知道如何走路,你可以在一个小时内从A点到B点。如果你想更快地到达那里,你需要学习如何驾驶,而那些花在学习如何驾驶的日子本来可以用来行走。但是一旦你知道如何驾驶,你就会更有效率。

这就像是与框架 - 汽车是框架。

随着框架的整体,它们被用来缓解和加速开发过程。要应用DRY原则,为您提供强大的基本工具(文本处理,输入管理,表单验证,电子邮件和会话处理等),以便您可以立即处理它们,以阻止您重新发明轮子。我曾经使用过一个框架,但是一旦我掌握了这个框架,根据我的经验,这是我不能放过的东西。

我不认为这是一个限制(因为它们是可扩展的),我认为它更像是一种“个人标准” - 一种方式,这些应用程序应该被写入,就像你创建时那样你自己的图书馆。一旦你知道并且热爱你的框架,那个魔法消耗就会消失。

关于MVC,我不会使用“should”这个词,但它绝对是一个很好的选择,不管你做什么 - 如果你使用框架,很好,如果你不这样做,但你分开商务逻辑来自内容,太棒了!这是关于你感觉舒适的一切。 Grid Frameworks,CSS Resets,库使用等都会发生同样的事情 - 这是一个选择问题。我的是什么?使用这些工具是因为它们在那里供您使用并制作健壮的应用程序和网站。他们经过反复测试,他们工作,他们帮助你不重复自己或重新发明轮子(已经做了一千次)。 MVC对于可伸缩性和维护也非常有用。

我的建议是学习框架。有一个原因是你选择Cake over Codeigniter(不知道为什么,但Codeigniter用户在这里!),所以坚持下来,并使用它一段时间。它们都很强大,但是从开始就不能完全看到它的全部潜力。

另外,最后一两件事:因为所有的应用程序都准时的用途,你总是会创建库,不管是什么,以及这些框架使得它很容易创建,使用和十个分量他们。所以你可以混合使用所有这些,以及框架的所有后端功能。

继续尝试 - 你不会后悔的!

不过我的两分钱。

+0

此外,我会建议,如果你是一个使用你的语言的begginer,不要使用框架。深入了解基础知识,编写一些代码,熟悉一下,然后深入框架。如果不这样做,你会错过很多。 – AeroCross 2011-03-21 23:46:37

+0

这是一些真正的好输入。由于其他人越来越多地提到CodeIgniter,我可能会进一步深入。我之所以选择CakePHP是因为我认为更多的人使用它,而且因为我只是网站开发中最懒惰的人,所以我倾向于“顺其自然”,然后在我有信心时分手。所以,在这些方面,我可能会看到CodeIgniter更远一点。 – drewrockshard 2011-03-22 01:20:46

MVC的原则通常是使用面向对象的编程来实现的,但它完全可以让你利用过程式编程的概念。这是Drupal的大部分工作原理。

我已经使用了几个不同的框架,也写我自己的。我更愿意使用自己的设计和实现进行全面控制。我也以一种可以在众多项目中使用核心代码的方式编写它。我还需要为当前的版权所有权问题项目。开发商,我的工作用笨并发誓买

我组,我只用它来愚弄和从未与它的网站。但我更喜欢CakePHP。在学习使用CakePHP时,我经历了很多核心代码来弄清楚如何做某些事情,并决定即使是最简单的请求也不需要那么多的开销。

自己做是一个很好的学习经验。很多人认为它应该只是一个学习经验,并不是用于现实世界,但我不同意。一般框架非常适合快速原型设计,但我个人更喜欢对系统进行更多的控制。那里有其他MVC框架,也可能看看它们。

我始终不同意讨论一些框架设计使,但你至少应该了解为什么他们做了这样的说法,因为它会教你的东西。

没有什么“错误”的使用功能做,但有人只是(在过去的一年)做了开关PHP程序编程PHP OOP;面向对象是要走的路。我想我应该提到我对OOP并不陌生,只是在PHP中兴奋。但它仍然不难学习。

的代码,我再利用,以及它是多么简单创建新页面的数量是值得花费来获得新的东西了与我的老办法相提并论的时间。

+0

感谢您的建议。我正在考虑分支到OOP中,因为它似乎对所有事情有更多的控制权,而不是将所有内容都放入一个大规模的functions.php文件中。 – drewrockshard 2011-03-22 01:21:29

+0

是的,那是什么使我对它。对于每个页面加载,加载的唯一数据是执行请求的操作所需的代码 – dbers 2011-03-23 02:32:36

+0

嗯,我想我会更多地关注CodeIgniter,以查看差异并从这里找出差异。 – drewrockshard 2011-03-26 03:20:41