多数大学生出来选择的工作和专业无关
首页 > 专业知识

应用PHP框架应该注意些什么

时间:2018-04-14 17:27:03 [来源]:郑州PHP培训学校

   应用PHP框架应该注意些什么

  应用PHP框架可以给程序员们带来很多喊出,比如加快开发进程。应用PHP框架还有一个重要的原因就是能使开发的程序具有良好的稳定性。
  PHP以它强大的功能成为了众多程序员开发程序的首选语言。不过要想灵活的运用这项语言为我们创造价值,这时候就需要一个PHP框架来代替程序员完成那些重复不变的部分。我们下面就为大家介绍应用PHP框架应该注意些什么问题。
  PHP框架是什么?
  PHP框架提供了一个用以构建web应用的基本框架,从而简化了用PHP编写web应用程序的流程。换言之,PHP框架有助于促进快速应用开发( RAD ),不但节省开发时间、有助于建立更稳定的应用,而且减少了重复编码的开发。通过确保适当的数据库交换和在表现层编码,框架还可以帮助初学者建立更稳定的应用服务。这可以让你花更多的时间去创建实际的Web应用程序,而不是花时间写重复的代码。
  通常认为应用PHP框架的作用相当于模型-视图-控制器(Model View Controller)。MVC是种编程的架构模式,将业务逻辑从UI中分离出来,允许一个一个单独修改(也称为关注点分离)。在MVC中,Model指数据,View指表现层,Controller则指应用程序或业务逻辑。基本上, MVC打破了一个应用的开发进程,这样各组件就可以不受影响地各自工作。从本质上讲,这使得用PHP编码更快更简单。
  为什么要应用PHP框架?
  开发人员使用PHP框架的好处很多,其中之一是加快开发进程。在类似项目中重用代码将为开发者节省大量的时间和精力。框架为执行繁琐的代码任务提供预建模块,因此,开发人员可以把时间花在实际应用的开发上,而不是每一个项目都重新构建基础功能。
  稳定是开发者使用框架的另一个重要原因。虽然简单是PHP最大的优点,很多人也因为这一点喜欢使用这个脚本语言,但它同时也是PHP最大的缺点。一些开发者尤其是初学者很容易写出低劣的代码,而自己却没有意识到。使用PHP,应用往往会将静态工作加倍,不知不觉中您可能已经在编码时打开了一个大的安全漏洞,因此可能会受到攻击。重要的是要记住,PHP是一个非常宽容的语言,因此,更重要的是在编程时确保封闭任何漏洞,即便应用看起来可以正常工作。
  最后,PHP框架的使用是非常广泛的,而且有许多不同的框架可供选择。许多开发者会选择知名的框架,是因为它的知名度、其开发团队的巨大支持,而且他们可以通过论坛/社区来与其他使用相同框架的开发者交流,当然你也可以开发自己的框架。这里提醒一下,首先应该检查你的项目来决定是否应该使用一个框架。你应该问自己:它会节省你和其他使用者的时间和精力么?应用程序的性能会更好么?是否会提高稳定性?如果这些问题你的回答都是是,那么你就该为你的项目选择一个合适的框架了。
  何时应用PHP框架?
  这是一个无论有经验的开发者还是初级开发者都共有的问题,而且这个问题也确实没有直接的回答。对于许多初学者来说,一个框架将提供很多简便和稳定,因此应该尽可能地使用PHP框架。这将有助于减少或消除不良编码,加快开发进程。
  另一方面,许多有经验的PHP程序员将框架视为不知道如何写出好的、干净的代码的低级程序员的工具。姑且不论这一点的真假,起码毋庸置疑的是PHP框架是一个可以用来节省时间并强化自己编码的工具。
  当工作的项目时间紧迫时,使用PHP框架就有很多好处,可以大大加快编码进程,因此所以如果你时间紧迫,使用PHP框架就是很好的选择。另一个例子是,当你所做的项目有大量代码时,也应当考虑使用PHP框架,因为这将有助于减少工作的繁琐度。
  寻找一个什么样的PHP框架?
  有许多可供开发者选择的PHP框架,甚至还可以创建自己的框架,尽管只建议PHP专家级这样做。当寻找你最需要的PHP框架时,重要的是要搞清楚谁将自始至终使用或修改你的应用,如果是有很多人做这件事情,那么最好使用流行的PHP框架,这样大部分开发者都不会陌生。另一方面,如果你想构建Web应用程序为你个人使用,那就最好选择令你满意的PHP框架,而不在乎它在开发者社区中是否流行。
  应用PHP框架的参考因素有很多,包括:容易使用、快速开发、性能、开发者中的流行程度、强大的功能,技术支持、论坛等。当你第一次选择PHP框架时,为了找到一个适合你需求的最佳选择,建议多尝试几个。每个框架都有所不同,并有不同的长处和短处。例如Zend框架由于V3和多样的功能、并且有一个广泛的支持系统,因而它流行了这么久。相反, CakePHP是另一个晚于Zend框架的PHP框架,相应的支持系统也比较少,但更方便和易于使用。
  正如你所看到的,每种类型的应用PHP框架都有自己的优点,因此,最好反复试验以找出其中哪个最适合你的需要。另一个选择PHP框架的有效方式是咨询你的同事,看看开发社区里选择哪个。那些真正使用过具体框架的能够明确地告诉你它的易用性、功能、支持可用性、社区内的情况,当然可能还有不足。
  快速掌握PHP检查语法错误技巧
  我们在这篇文章中为大家详细介绍了PHP检查语法错误的相关方法,帮助大家提高自己的实际代码编写能力,进一步提高对PHP的了解程度。
  PHP检查语法错误的实现可以帮助我们节约许多编程中的时间,提高代码编程的可靠性和高性能。之前在当当的时候的一个项目中用到了一个简单的模板引擎,其实也是借鉴discuz来做的模板引擎,很简单,它所作的事情就是把一些自定义的标签编译成PHP代码。
  已经说了很简单了,所以编译的时候也名优进行模板语法的检查,那么在开发过程中就会出现编译出来的PHP文件有语法问题,有语法问题没有关系,我修改重新编译一下就好了。
  首先不能在每次请求的时候都把PHP模板重新编译一下,会严重影响性能,折中的处理时在每个编译好的PHP文件末尾检查一下该模板文件是否已经修改过,根据设定的更新频率,如果又需要则重新编译模板文件,现在的问题是编译出来的PHP文件自己有语法错误,根本执行不到模板检查那一步,所以即使修改了模板文件中的问题也不会重新编译。 所以我想寻找一种简单的方法来检查生成的PHP文件是否合法。不合法就重新编译,这样开发过程中就不用出现错误就得手动删除缓存文件了。
  在网上找了一下。刚开始以为 token_get_all()函数能处理PHP检查语法错误的问题,结果发现,它只是做简单的词法分析。没有办法。后来到论坛上去问了一下,有人告诉我有这样一个函数 PHP_check_syntax() http://www.PHP.net/manual/en/function.PHP-check-syntax.PHP 我想问题就这么坚决了。。我真应该RTF(Read The Fuck Mannual). 仔细一看。这个函数已近被弃用了:
  Note: For technical reasons, this function is deprecated and removed from PHP. Instead, use PHP -l somefile.PHP from the commandline.
  这个technical reason 到底是什么呢? 先不管了,以后再慢慢研究,反正不能使用这个方法就对了。
  他们的建议是使用命令行$PHP -l filename.PHP 来检查语法。
  Gary Every给了我一个代码片段参考:
  在命令行下检查问题也不大。如果我要放在在线应用呢? 这就涉及到可移植性的问题了。首先是操作系统,然后就是环境变量。这样的话就会依赖于服务器端的配置。在http://www.PHP.net/manual/en/function.PHP-check-syntax.PHP 上有人贴出了自己的PHP_check_syntax()函数实现。
  有的采用的就是上面的命令行的PHP检查语法错误方法。
  后面有提到使用eval的方法来验证。eval方法会执行传入的代码, 如果代码有语法错误则会抛出parser error, 可以使用’@'错误抑制符去掉错误信息,eval和echo一样并不是函数,不能使用变量函数的方法调用比如:
  $func = ‘eval’
  $func()这样的调用就是无效的。它会提示没有eval函数,如果你自己定义这么一个函数也是有问题的。因为eval是一个关键字。
  eval调用和include差不多,如果被包含文件中没有明确return就返回null。如果直接eval我们需要检查的文件会造成被检查的文件内代码被执行,这可不是我们想要的,我们只需要检查一下这个文件的语法是否正确。 我们可以在要检查的文件之前添加return 语句,让代码提前跳出,那么后面的代码就不会执行了。好的,就这么干。代码如下:
  < ?PHP
  if(!function_exists('PHP_check_syntax')) {function PHP_check_syntax($file_name,
  &$error_message = null) {
  $file_content = file_get_contents($file_name);$check_code = "return true; ?>";
  $file_content = $check_code .
  $file_content . "< ?PHP ";
  if(!@eval($file_content)) {
  $error_message = "file: " .
  realpath($file_name) . " have syntax error";return false;
  }
  return true;
  }
  }
  if(!PHP_check_syntax("file.PHP", $msg)) {echo $msg;
  }
  else {
  echo "Woohoo, OK!";
  }
  < ?PHP
  foreach:: a => b
  ?>
  因为Parse error 是没法被 set_error_handler处理函数处理的。这个异常没办法catch到。所以才使用了@来抑制错误。这带来的问题就是我们无法得到详细的错误信息。 不过目前我需要的功能也只是检查语法是否正确。不正确的话重新编译模板文件,就这么简单,至于语法错误,在显示网页的时候自然会看得到。
  PHP检查语法错误最好的办法就是这个被遗弃的PHP_check_syntax这个方法回到PHP中。下次再研究下他们是出于什么原因把这个函数去掉的。
  同你共同分享PHP学习技巧
  PHP学习技巧其实也并不是能帮助你一步登天似的掌握PHP语言。我们还是需要在不断的努力,坚持下学习增进自己的知识库。
  我们知道,在学习PHP语言的过程中是没有什么捷径的,只有在不断的经验积累下,慢慢的去体会其中隐含的概念,来深刻的掌握自己所学到的知识。我们在这里为大家总结了一些PHP学习技巧。
  我先把我自己学习PHP的过程做一下概括:
  (1)熟悉HTML/CSS/JS等网页基本元素,完成阶段可自行制作完整的网页,对元素属性达到熟悉程度(2)理解动态语言的概念,运做机制,熟悉PHP语法(3)学习如何将PHP与HTML结合起来完成简单动态页面(4)接触MYSQL,开始设计数据库程序
  (5)不断巩固,摸透大部分PHP常用函数,并可理解OOP,MYSQL优化,以及模板(6)完成一个功能齐全的动态站点
  这套PHP学习技巧的线路可能跟许多学习PHP的爱好者不谋而合,这也算是一个循序渐进的学习过程,不过新手不要看到上面的概括就以为学习蛮简单的,任何东西其实都不简单,即使是小吃部的烧饼也不是一下子就会做成的。
  我先解释一下我的学习思路。
  首先,理解网站这一概念之后不难看出,任何网站都是由网页组成的,也就是说想完成网站,必须先学会做网页,因此必须要掌握了HTML,才能为今后制作网站打下基础。
  在学习HTML中我想边学边做是最有效的方式,当然这一方式对于PHP学习技巧同样是最有效的。
  HTML中的任何元素都要亲自实践,只有明白了什么元素会起到什么效果之后,你才会记忆深刻,而一味的啃书,绝对是不行的。
  掌握静态网页的制作技术是学习开发网站的先决条件。
  我假设你目前已经可以完成一个静态页面了。那么咱们就开始学习动态语言的概念吧,刚一接触动态语言,可能很多人都会蒙了,怎么这乱七八糟的东西,在网页里显示的时候却是另外一码事?其实这并不算乱七八糟,你写的HTML代码不也一样是一堆堆的字符吗?
  毕竟,代码并不是作为直接输出的,而是经过处理的,说白了,HTML是经过HTML解析器,而 PHP当然也就通过PHP解析器了,跟学习HTML一样的道理,想让任何的解析器完成操作,就必须使用它们专用的语法结构,所以PHP长相奇怪也就不足为奇了。
  对于PHP学习技巧的理解是新手最难迈过的一道门槛,不过你应该感到幸运的是PHP已经最大极限的为了新手而努力了,如果你学过其他的语言,也许会觉得PHP的确相当的简单,即使你理解不了PHP,但是也必须先跟它混个脸熟。
  搞清楚HTML和PHP的概念,那么PHP和HTML混合编程应该不成问题,在这期间,你完全可以让PHP给你算算一加一等于几,然后在浏览器输出,不要觉得幼稚,这的确是跟阿波罗登月一样,你打的是一小段代码,但是对于你的编程之路,可是迈出了一大步啊!兴奋吧?但是不得不再给你泼点冷水,您还是菜鸟一个。
  高兴一段时间就必须继续努力了,接下来就是学习数据库了,MYSQL可算是PHP的黄金搭档了,不过,虽然话是这么说,你也可能恨不得把MYSQL给生吞活剥了,因为这一行一列的东东简直让自己头晕目眩。
  头晕归头晕,目眩归目眩,你不可能吃饭的时候咬了自己一下舌头就从此不吃饭了不是?放下畏惧,继续努力,咱们是来征服它的,而不是被它征服的,振奋起来吧同志。
  在一番搏斗之后,你终于理解了数据库的概念,而且让你兴奋不已的是你终于可以通过PHP来连接数据库了,这期间你是怎么学会的,我们不去考证了,但是事实证明,你已经可以了。
  学会了PHP和数据库的你,无疑是左手拿着MOTOLOLA右手拿着NOKIA,要多潇洒,有多潇洒,哈哈,终于学会了,但是可能这个时候,又会有人不经意的拍拍肩膀对你说:哥们,别高兴的太早,你还是菜鸟,离学会还差着一大截呢!等到你发奋努力的学会了用PHP成功的插入,删除,更新数据的时候,显然,你已经距离成功指日可待了。
  这个时候的你也许是这种状态:
  你会HTML吗?会,我能编好几个大表格排板的网页啦!
  你会PHP吗?会,我会把一加一的运算写在函数里,然后调用啦!
  你会MYSQL吗?会,我会把我的信息在数据库里插入删除啦那,接下来你该怎么做呢?我觉得,小试一下身手,大概是没问题了,那么交给你个任务,做个留言本吧,这和HELLO WORLD有一比啊!^_^,同是新手面临的第一道关。
  花了一段时间,你终于学会把表单的数据插入数据库,然后显示出来了,应该说一个程序的雏形已经诞生了。但是,你可能瞅瞅东,看看西,人家这个编论坛,那个CMS,还有那啥CRM,我啥时候写一个呢?
  不要急,可以说你的马步已经扎的差不多了,接下来就要开始练把势的时候了,如果有条件的话,用笔或者打印一个简易的PHP手册在身上,时不时的摸出来看看,记得,去WC也不能放过(^2^)。
  再有条件的话,买本书看看吧,《PHP+MYSQL WEB开发(第三版)》号称圣经级,(也许是个不错的选择(声明:作者没给我啥好处费,我也不是书托,隔着大老远,我连他老兄的面都没见过的说-_-)巩固了自己的知识,熟悉了PHP和MYSQL开发的要领之后,再回头看你写的那个留言本,你也许会怀疑那真的是你写的吗?当然,如果屋里还有鬼的话,也许是它写的-_-这个时候,你的留言本应该加入注册以及分页功能了,而如果你更强的话,UI(用户界面)也可以加强,完成之后,感觉是不是特有成就感?不管怎么样,咱好歹是写了一个动态网站程序了,放在自己的网站上耍耍吧,让好朋友来看看,嘿,看咱写的多棒,然后再在网上宣传一下。
  几天之后你再打开留言本,哎?哇,一下弹出N多页面!很明显,你的留言本并没有做好安全防范,被人用JS代码小小的耍了一下,我很同情你这个时候的感受,但是没有别的办法了,继续努力吧!
  你发奋努力,熟悉了安全方面的问题,然后又设计了一些程序,感觉还不错。
 

上一篇:探讨PHP动态图像创建技巧

下一篇:如何正确实现PHP生成唯一标识符