繁体   English   中英

没有PHP经验的人应该使用像CakePHP或Symfony这样的框架吗?

[英]Should someone with no PHP experience use a framework like CakePHP or Symfony?

我有一个简单的开发网站,我想学习PHP。 我希望该网站安全,可扩展且易于维护。 我应该同时学习框架和PHP吗? 如果我构建一个框架,将会有许多不熟悉的代码。 你会说这增加了安全隐患吗?

没有什么比使用会妨碍你学习PHP的框架,并且使用已建立的框架将降低安全风险,因为你将处理经过良好测试的代码来处理常见任务。

如今,大多数PHP框架的核心是这个简单的三步工作流程

  1. 请求URL并通过中央引导程序index.php文件进行路由

  2. URL名称用于派生类名和方法名称(以及操作方法)。 这是您的主要入口点,您开始编写PHP来处理请求

  3. 在此方法结束时,控制权将移交给视图模板,该模板可以访问您在第二步中设置的某些值。

选择一个框架,了解它是如何做到的,然后在action方法和视图模板中编写你想要的任何类型的PHP。

是的,会有很多其他PHP框架代码在运行,但你永远不必看它。

是的,该框架将具有多种功能和/或用于处理事物的“首选”方式,但您只需要使用您立即理解的那些。

当您开始注意丑陋,无聊或不安全的代码模式时,请再次查看框架功能。 在“做错了”之后,你会更多地了解框架代码为什么以特定的方式做某事并且你会很乐意放弃责任(我会说ActiveRecord样式模型与SQL代码有关)这里很重要)

当您开始使用面向对象的系统时,框架会让您开始对他们如何做某些事情感兴趣,然后您可以开始探索核心框架代码。

绝对。 Frameworks将为您完成所有样板代码,为您提供更高级别的抽象。 如果不处理PHP的某些特性,您可能更容易编码。

任何一半体面的框架也会解决安全问题,因此如果您不熟悉该语言,那么您在框架上编写的应用程序可能比您从头开始编写的应用程序更安全。

我不建议从开始开发人员的框架开始。 如果您对其他OOP语言有很多经验,那么应该没有问题。 但是在考虑使用框架之前,你至少应该知道基础知识(例如语法)。

我会说这取决于你以前的经验。 它本身并不是PHP本身,但它所居住的Web服务器环境可能会分散注意力。 如果您已经熟悉HTTP请求生命周期并且以与使用PHP类似的无状态方式编写Web应用程序,则不应该在使用框架时遇到大问题。

如果您来自“有状态”背景或根本没有背景,框架提供的抽象可能会成为一个问题。 你应该至少知道如何在通过PHP从框架中抽象出详细信息之前在普通PHP中处理会话,cookie,头文件, $_POST等。 另见我之前的答案

我认为,如果您对创建安全系统(尤其是身份验证等)的能力没有信心,那么尽量减少您编写的自定义代码的数量可能是一件好事。 因此,我认为以这种方式使用Web框架对您有利。 它还可以让您熟悉语言的核心,而无需担心外围问题。

我已经看到一些人(具有大量的OOP知识)同时学习PHP和symfony没有困难。

事实上,从PHP转向面向对象的语言只是学习一些概念性的东西以及PHP本身的语法和API。

在我看来,在学习语言的同时学习框架并没有错。 已经有相当多的情况需要这种情况。 例如,大多数学习Objective-C的人同时学习Cocoa框架,大多数C#程序员都会学习.Net,甚至JDK也应该被认为是一个与Java语言一起学习的框架。 为了它的价值,我事先学会了很少的PHP经验的Symfony框架。

我建议你从w3schools.com上的PHP turorial开始。 它简短明了。 您可以在一到两个小时内学习所有必要的基础知识。 为了理解您需要的任何框架。 然后从CakePHP cookbook学习第一章和第二章,并使用他们的教程创建您的第一个CakePHP应用程序。 其余的我同意艾伦风暴。

开始使用PHP框架,也取决于您是否具有一些先前的编程经验,如果是,那是什么类型的。

如果你在其他一些编程语言如java,c中混淆,在创建你的网站时同时学习一个php框架可能不会太困难。

您将遇到的几乎所有PHP框架都使用MVC设计模式 - 如果您了解MVC的基础知识,如果您已经在其他编程语言中实现或具有设计模式的要点,那么从PHP框架开始将非常容易。

您选择的PHP框架也是决定性因素。 如果您使用像Codeigniter,Yii这样的PHP框架,甚至可能使用相对较小的学习曲线的CakePHP,您将在PHP中找到适合您的路径。 虽然如果选择像Symfony,Zend这样的框架 - 你可能会因为花费太多时间做一些简单的事情而感到沮丧,反过来又会炸毁你的项目。

至于关于安全风险的部分,我上面提到的所有框架以及我未提及的其他一些框架都在舞台上花了足够的时间来压制安全风险。

希望这有助于决定。

虽然我是框架的粉丝,但我同意上面的一些其他评论。 从框架开始可能会非常混乱,特别是如果您没有模型视图控制器(MVC)面向对象编程(OOP)理论的经验。

说实话,我发现在我的日子里有很多未完成的框架项目,而不是没有框架的应用程序。 如果您的应用程序是用一些笨重的PHP编写的并且应用程序起飞,那么您可以雇用必要的资源来移动到框架并开发它以承受大量使用并有效地利用资源。

我的建议是首先掌握PHP,然后转移到框架。 我对此的最后一点说明,许多框架也存在缺陷 - 因此,根据您的应用程序需求,应用错误的框架可能会将其推向基础。

只需要我2美分就可以成功发布几个企业应用程序 - 而不使用PHP框架。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM