使用PHP框架还是不?
我已经开始使用PHP编写一些应用程序,而且我越来越熟悉这种语言。 有人告诉我有关CakePHP和CodeIgniter的信息。 我想更好地理解这些如何帮助我,是否值得花时间学习一个框架?
使用MVC PHP框架有什么好处?
那么使用PHP框架有很多好处,让我们看看使用它们的一些主要好处。
- 这些PHP框架遵循一些devise模式,所以当你使用一个框架时,你必须遵循它们的编码约定,这使得你的代码变得干净和可扩展以备将来之用。
- stream行的PHP框架,如CakePHP,CodeIgniter,Zend Framework,Symfony遵循模型视图控制器(MVC)devise模式,将业务逻辑和用户界面分开,使代码更加清晰和可扩展。
- 正如大家可以猜到的,这些框架包含了许多库,使您的工作更轻松。 例如:为了validation表单,您不必像在常规编码场景中那样编写尽可能多的代码(不使用框架),只需调用库的几行代码就足够了。
- 当在一个团队中处理一个大型项目时,MVC PHP框架将成为一个很好的开发工具,因为您可以指定开发人员为开发人员开发模块的一部分,并且在最终级别集成这些开发模块。
- 这些MVC框架确实帮助您快速开发项目,如果您了解框架,那么您将永远不会担心项目的最后期限。
- 大多数这些MVC框架使用清晰的URL方法使您的Web项目search引擎优化友好。
检查文章
我的理念是,只有当你解决了你现在需要的东西时,才应该使用一些东西。
有一个真正的倾向,特别是在这个领域,只是为了使用一个框架或因为你觉得你应该使用的东西。 我劝阻这种做法。 另外我认为,当你以困难的方式完成任务时,我认为框架是最有价值的,这样你就可以很好地理解你有什么问题,以及框架在这种情况下如何帮助你。 框架的select取决于情况。
所有人都说,与Web应用程序的MVC模式是有用的,所以它肯定不会伤害你学习至less一个。 我坚持一个相当简约的框架。 CodeIgniter在这里想起来。
最后,框架的另一个危险就是它们可能是非常有侵略性的,所以你不再使用PHP,而是使用CakePHP,Symfony或其他方法。 这不一定是个问题,但是它的入侵危险性在于你没有在PHP中打下良好的基础,如果你想改变它,那将是太难了,你永远无法做到。
PHP框架最大的好处之一就是可以最大限度地减less在大量常见Web应用程序需求中的重复劳动。 安全性问题,优雅的exception处理,RESTful URL以及整个站点的代码的可重用性都是相当普遍的考虑因素。
熟悉一个框架的工具可能会更容易一些,然后看看是否要采用它所支持的完整的MVC系统。 为此,我build议您熟悉一下Zend Framework。 ZF作为一个类库,可以单独实现,用于特定用途 – 从安全到Lucenesearch – 但是包含类,当它们一起使用时,实现一个完全充实的MVC范例。
我只想告诉我自己的编程经验,但我仍然是新手
- 首先通过使用框架,您将习惯于他们的编码风格/规则,这是很好的,因为大多数框架都深刻地考虑了他们如何编写代码。 总之我得到更好的风格和更干净的代码
- 通常框架来与许多阿森纳(插件和或库),你可以在互联网上find,这将减less你的编码时间,减less浪费时间。 总而言之,您可以将自己的宝贵时间考虑在业务stream程上
- 通过使用开源框架,还有其他程序员已经知道并可能掌握了框架,那么您可以轻松地与其他人协作。
- 事实上,我不是一个组织良好的程序员,但它是在我使用一些开源框架之前。 也许像我一样,你会变得更有组织
这就是我现在可以和你分享的东西,我用英文写作不好,对不起。 但重点是我build议你使用框架
快乐的编码朋友。
我认为花时间学习一个PHP框架无疑是一个很好的投资。 首先,它会教你如何解决构架框架的问题,如何组织你的PHP代码,以及如何处理会话和数据库访问等等。
大多数情况下,如果您认真开发networking应用程序,您将需要使用某种框架,而不是从头开始编写自己的框架。
为什么你不应该写自己的框架的一些原因:
- 你已经重新发明了轮子,已经做了很多次了。
- 与开源框架相比,您不太可能做得更好,而开源框架已经被许多开发人员testing和迭代。
- 你将花费你所有的时间来编写和debugging自己的框架,而不是花在实际创build应用程序上。
所以,是的,学习一些框架,find一个适合你的最好的!
Diclaimer:我不是一个PHP程序员,我还没有写过一个PHP应用程序。 另一方面,我已经安装,定制和使用了很多PHP的cmss为我的网站和购物车。
在我看来,PHP遭受严重的问题。 其中最大的一个就是对于几乎所有大的甚至是成功的项目来说,“框架”似乎都是一个外来词。 PHP代码倾向于快速意大利面沙拉:意大利面条混合了意大利面代码和意大利面条的SQL。
osCommerce,有史以来最成功的购物车之一,大多是无法居住的。 这也适用于大多数的PHP项目。
你是否应该为你的项目使用框架,我说是的! 非也! 无论项目有多大,使用Web框架都可以帮助您整理代码并编写可维护代码。
即使你不使用框架,它也会影响你的编程风格。
使用MVC框架将使您的开发更容易。 尤其是数据库相关的应用 它提供了一个清晰的文件夹结构和大量的代码库。 我build议你从CodeIgniter开始。
当你有一组开发人员在同一个项目上工作时,框架是非常棒的。 MVC控制器精美地集成了devise师+程序员。 但是,创build“框架”元素和“重塑”轮子并不是一个坏主意。 如果您正在开发一个庞大的项目,最好是让自己的代码变得肮脏,并且定制一切以满足您的需求。 这将成为一个更强大的产品,因为它将完全为项目开发。
下面的post是回应一个线程,因为我正在写我的答案RenderIn的post立即closures: https : //stackoverflow.com/questions/3265509/what-are-the-benefits-of-using-a-编程框架 。 线程被closures,并在评论中的链接被放置在这里,所以我会尝试在这里回答他的问题。 在下面的引用是我要提交的内容:
“允许我向你和你的组织推荐Joomla!在我的最后一个雇主那里,我不得不拿起PHP(没有以前的经验),在做了一个半月左右的手工编写PHP,我的任务是编写一个Joomla!组件,用来为用户提供video,还需要创build一个后端,允许非技术人员pipe理员对video进行分类,编辑,删除等操作。他们的缩略图等
现在为了得到一个工作原型,花了大约两个月的时间(当时我是实习生,每周只工作20-24小时,所以如果你有相当多的PHP经验以及MVC开发方法的经验,你可能会比我更快得到一个工作原型)“。
现在回应这个线程的OP:花时间学习一个框架是绝对值得的(我没有看到它在这里提到,直到我的post,所以我会再说一遍:对于我build议的PHP框架的Joomla!)。
学习框架的一些好处(像Joomla!这样的开源框架):
- 一个巨大的社区人谁可以帮助回答你的问题(除了stackoverflow;哈哈)
- 访问所有的源代码,所以你可以自定义它,但是你想要的。
- 大量的免费(和付费)第三方插件来增强function。
- 很多教程。
- 框架照顾自动执行很多平凡的任务。
参考第四项:Joomla! 照顾你的东西,如数据库连接pipe理等,这样你就不必费心创build所有自定义函数来连接到你的MySQL数据库或返回不同types的数据库结果(例如一个logging,第一个结果的第一个logging,logging列表等),只需拨打电话给他们。 Joomla!的API可以在网站上公开获得: http : //api.joomla.org/
无论如何希望这有助于RenderIn和其他任何人对框架(尤其是PHP相关的)感到疑惑。
对我来说一个框架是一个很好的工具来加速你,节省你的时间,只是不想花时间重做它,而不是因为你想节省时间,你不知道它是多less。 如果你这样做,你会付钱的。
对我来说,框架是好的,如果你已经是一个经验程序员,你有触摸或感觉,你知道如何框架下粗略工作(大致不完全),有信心说,如果我想我可以重新创build这个框架简化了sorting。 那么一个框架就是你的快车,如果你想做一些框架没有准备好的东西,或者不寻常的东西或其他奇怪的东西,它不会给你带来痛苦。
如果你不这样做,那么最好用普通的PHP来解决你的问题,并且用你的手指来玩弄语言,并且首先学习好的编程实践和范式和模式。 否则,你将成为join大型团队的新gradle生之一,他们的第一个项目正在开发一个function非常强大的项目,这个项目需要的代码非常less,configuration和修补也更多。 你永远不会是一个好的程序员,不能从头开始构build一个好的PHP应用程序。
如果你在一个使用复杂框架的组织中怎么办?
花一些你自己的时间来解决在这种情况下,普通的老问题PHP,直到你碰到我上面提到的东西。 否则,你永远不会发现自己对编程有信心,并不断告诉自己,“我只知道这些步骤是做到这一点的。” 这不是编程(有点:))。
复杂与简单的框架
一些框架虽然被许多人所使用,但却是压倒一切的。 有太多的层次,你会失去跟踪。 这些框架通常是一些固定的东西,很多的configuration文件,如果你想做一些不寻常的事情,你最好是框架作家(有点夸张:))。 我不想在这里提到任何名字,但是当你遇到这个名字的时候你会知道的。
CodeIgniter是EllisLab团队的产品,其主要产品是使用CodeIgniter开发的Expression Engine。
经过一段时间的使用CI,我发现使用Yii Framework更方便。 它有很多扩展。 用好的文档不难理解。
CakePHP,我认为,接近CodeIgniter。
我强烈build议使用一个框架,而不是一个简单的脚本。 有时可能看起来有点矫枉过正,但我认为事实并非如此。 我有几次我以为我不需要它(简单的应用程序,3分贝表中的基本CRUD)。
不久之后,我发现自己正在做手动的mysql_escape_string,XSS过滤等等。 从那时起,我只能编写非框架代码,当我认为安装程序将花费更多的工作代码。 而这种情况很less发生。
如果我不得不推荐一个PHP框架,我将不得不使用CodeIgniter或Yii Framework,这取决于你的项目的复杂程度。