搜索
首页后端开发php教程新人刚接触 PHP,哪种框架比较容易上手?

接触php不久,但想了解下PHP框架,熟悉下MVC的思想,之前都没接触过这类框架,想问下大家有什么好的框架可以推荐,考虑的出发点又是什么。特别是对于新人~

回复内容:

我习惯看英文的Framework,在StackOverflow和Quora也看了许多讨论,其实框架这个东西,很大程度上是习惯的问题。还有一点,就是要选一些经常维护的框架。如果学了一些冷门的框架,结果人家不维护了,那其实很浪费。
总结一些我用过的几个框架:
  1. CodeIgniter:我曾经用的是1.7版本,代码效率一般,因为是要兼容PHP 4的缘故。2.0之后就放弃了PHP 4,代码更干净了。官方文档非常详细,社区也很大,用的人很多。缺点是没有一套很好的ORM库,默认的Model基于ActiveRecord,但是其实就是一个SQL的延伸。
  2. Zend:所谓的官方PHP框架,架构很松散,可以按需要取用。一开始不是很好学习,但是如果真正懂了的话效率也很高。由于有Zend在背后,所以不会担心不维护的问题。缺点是文档虽然看起来很多,但是并不容易看懂。
  3. Symfony:应该是法国人的老牌Framework,非常庞大,适合企业级别的项目。许多配置用YAML,而且对于环境的要求很麻烦,我简单看了看就放弃了。
  4. Yii:应该是华人开发的,以前和朋友开发的时候用过,Performance很不错,但是里面的Coding Style不是很喜欢,文档也不错。
  5. Kohana:曾经是基于CI的,但是后来重写了代码,但是继承了CI的哲学。HMVC架构并不是很容易学,但是代码非常干净,高效。自带的ORM也不错,缺点是文档不全面。
  6. 编辑1:差点忘了CakePHP:这是我接触的第一个框架,也是最像Ruby on Rails的框架,Bake script可以自动生成许多东西,但是我反而不是很喜欢自动生成。运行比较慢,大概是overhead太多的缘故。支持PHP 4,但是后来几个核心成员新建了一个PHP 5.3的框架叫Lithium (lithify.me/),原生支持MongoDB,我只看了看文档,还没有用。

上面是常见的框架,也都是全面的框架。下面有一些冷门的,轻量级的:
  1. Slim Framework:我个人最喜欢的轻量级框架,基于RESTful route组织的,压缩包才80KB。继承了Sinatra和Web.py的哲学,我跟作者以前讨论过,他在1.5从Singleton换到了Instance,我反而觉得没必要,我很喜欢1.3版本。这不能算是一个full stack MVC framework,也没有强制要求OO。
  2. LightVC:这个更轻量(压缩包24K),只提供VC,不提供Model,做着同时谢了一个ORM叫CoughPHP,配合起来不错。
  3. Flourish Lib:这不应该是一个框架,而是一些Library的集合,里面许多Lib很好用。

最后再推荐一个ORM,一般流行的是Doctrine和Propel,我自己最爱的是RedBean。现在开发都是用Slim来做Route,从Flourish拷贝一些代码,再用RedBean来做ORM,虽然看起来很绕弯,到时我自己习惯了,驾轻就熟也就OK。 强烈不建议新手上手框架!
另外,yii和CI有什么关系?? 我比较推荐CI-codeignighter.

说下几个理由:
  1. 成熟的开发社区,有一帮人和你一起在学这个框架,你不懂的时候可以问,在国内有中文社区(codeigniter.org.cn/)
  2. 相对容易的学习曲线,对比zendframk,它的语法还是相对简单很多,而且有一些配套的书籍可以参考,虽然比较旧了,但还是有参考价值。
  3. 详细的帮助文档,ci的官方博客上有UserGuide,可以帮你迅速了解相关的语法和功能,非常的详细,而且ci框架本身也做了非常多的注释。
总结:可以说,ci对于初学者来说,是一个非常不错的框架,上手容易。

附注:参考书籍列表
CodeIgniter for Rapid PHP Application Development
book.douban.com/subject 如果刚接触PHP的话,我建议不要先碰框架。框架里面有很多提炼的东西在里面,容易让人知其然而不知其所以然,不利于基本功的训练。

MVC是一种编程的思想,和框架关系不大,你可以很熟悉MVC而不熟悉框架,你也可以很熟悉框架而不熟悉MVC PHP中没有像ASP.NET那样的MVC架构,像CI都是通过router的方式实现MVC,个人建议还是先从基础的学起,深入学习后再使用框架。当你再使用CI, Zend 等PHP框架时,你会发现其实本质上都是差不多的,知其然,更知其所以然。 国内的话,英文不是很好的推荐thinkphp或者CI文档都比较全。
英文好点的推荐yii 建议还是选学好PHP基本先吧,再考虑一下CI、SpeedPHP、ThinkPHP,后面两个中文文档比较齐全。 PHP新人,建议先掌握PHP,以后再学习及考虑框架。
PHP框架,看自己喜爱吧。 我的团队在使用CI

ThinkPHP,CI都很不错,相关中文学习文档也多。
声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
php怎么把负数转为正整数php怎么把负数转为正整数Apr 19, 2022 pm 08:59 PM

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

php怎么实现几秒后执行一个函数php怎么实现几秒后执行一个函数Apr 24, 2022 pm 01:12 PM

实现方法:1、使用“sleep(延迟秒数)”语句,可延迟执行函数若干秒;2、使用“time_nanosleep(延迟秒数,延迟纳秒数)”语句,可延迟执行函数若干秒和纳秒;3、使用“time_sleep_until(time()+7)”语句。

php字符串有没有下标php字符串有没有下标Apr 24, 2022 am 11:49 AM

php字符串有下标。在PHP中,下标不仅可以应用于数组和对象,还可应用于字符串,利用字符串的下标和中括号“[]”可以访问指定索引位置的字符,并对该字符进行读写,语法“字符串名[下标值]”;字符串的下标值(索引值)只能是整数类型,起始值为0。

php怎么除以100保留两位小数php怎么除以100保留两位小数Apr 22, 2022 pm 06:23 PM

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

php怎么读取字符串后几个字符php怎么读取字符串后几个字符Apr 22, 2022 pm 08:31 PM

在php中,可以使用substr()函数来读取字符串后几个字符,只需要将该函数的第二个参数设置为负值,第三个参数省略即可;语法为“substr(字符串,-n)”,表示读取从字符串结尾处向前数第n个字符开始,直到字符串结尾的全部字符。

php怎么根据年月日判断是一年的第几天php怎么根据年月日判断是一年的第几天Apr 22, 2022 pm 05:02 PM

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

php怎么替换nbsp空格符php怎么替换nbsp空格符Apr 24, 2022 pm 02:55 PM

方法:1、用“str_replace(" ","其他字符",$str)”语句,可将nbsp符替换为其他字符;2、用“preg_replace("/(\s|\&nbsp\;||\xc2\xa0)/","其他字符",$str)”语句。

php怎么查找字符串是第几位php怎么查找字符串是第几位Apr 22, 2022 pm 06:48 PM

查找方法:1、用strpos(),语法“strpos("字符串值","查找子串")+1”;2、用stripos(),语法“strpos("字符串值","查找子串")+1”。因为字符串是从0开始计数的,因此两个函数获取的位置需要进行加1处理。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

SublimeText3 英文版

SublimeText3 英文版

推荐:为Win版本,支持代码提示!

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境