phpcms的级别是一个开源项目,而不是一个php框架。至于框架和开源系统的区别,参看我写的另外一篇文章吧。
它的优点有很多,如:
来源于网络
1:基于模块化编程,不但有了很多现成的功能模块,如:首页模块,投票模块,采集模块等,减轻了开发的负担。同时采用安装和卸载功能模块的特点,让系统变得灵活起来。
2:基于mvc,以及面向对象,单入口等特点,让它的整体架构变得清晰、可爱。
3:自带模板解析引擎,这符合了一个可行性开源系统的特点。
4:模型和自定义模型,让扩展功能变得方便,以至于可以开发出更多独特需求的项目。
5:熟练应用它,可以在几个小时之内开发一个常见网站。
6:可与discuz等论坛结合。让你的项目发挥更大的作用。比如做站群,做用户信息通信,做单点登录系统等等。
7:你可以到phpcms的论坛上承接项目,赚点外快;
所以,它是值得研究和学习的,也是php开发项目的最佳综合实践代表之一。
但是它也有自己的缺陷:
来源于网络
1:入门比较高,需要有php的基础,不大适合零基础的人学习。
2:适合做项目,但不适合用来学php,比如即使你要打印一个hello world,也要绕个半天。所以应该是学了php再来用它,而不是通过它来学会php。
3:它是直接面对项目开发,自然就有会很多行业术语,这会带来很多莫名其妙的难以理解,加大学习负担。导致对它的灵活使用需要比较长的时间。如,初学者看到“频道”或者“模型”就很可能感觉莫名其妙、不知所云了,因为这是我当初学phpcms的感受。
4:很多动态标签突如其来,更是不知其所以然。如:{pc}{/pc}。这些在其他开源系统甚至php原生态里都看不到...
学习方法:
1:要多接触它,使用它,即使晓得会遇到解决不了的问题,也要多查资料去试着解决。
2:多看开发手册,多问百度、谷歌等。
3:多和学的好的过来人交流,但不要动不动就提问,可能没多少人喜欢一味的回答你。自己要注意一些技巧。
4:要想深入的学好它,还是要加强php的基础学习,让应用和理论联系起来。
注意事项:
来源于网络
1:学了它还要学php吗?
当然,它只是php的一个系统级的应用例子而已,并不能代表php的所有内容。
2:学习它和学习php的关系是什么?
你最终是要学会php的,而不应该只是学会phpcms,否则你也深入不了它。所以态度应该是:用它来提升你的技术水平,而不是一辈子用它来做饭碗。反过来,如果你有了全面的php基础,比如php的面向对象你很熟悉,php的常用函数和类库你都熟悉,那你学习它,也是很轻松的一件事了。
3:不要迷信和迷恋。
像这种开源系统多达几十个上百个,所以不要迷信某个开源系统。无知才导致迷信。而且每个开源系统都有自己的擅长领域和缺陷之处,也都有瑕疵在里面。比如如果文章模块中的缩略图上传的时候在火狐浏览器里没反映,你该怎么办?此时还是要用你所学的所有前端和php知识来解决它。
所以关系应该是:学习开源系统,一个是为了承接项目的快速使用,另外更重要的是为了提升php水平。只有水平提高了,才会适应的了多如牛毛的开源系统,因为还有如:discuz,ecshop,phpwind,dedecms......何时才是个头啊。
4:那么,什么才是学会phpcms?
不是简单的写个模板,这是前端知识,也不是会模仿着会套个首页模板,这知识量太少了。而是应该要深入了解它的架构,如:缓存机制,模板解析引擎等。否则你很多项目中的那些稀奇古怪的要求可能就难以实现了,会让你头大的很。
所以,要想让phpcms真正的为你承接的项目做一条龙的全程服务,让你安心的用它,光会套个模板是远远不够的,因为比如有些信息你可能需要临时计算的,甚至还得修改数据库。如果没有对它的底层原理很好的认识,可能你很久都难以深入。
比如,你可能很久都不大清楚什么叫“频道”,什么叫“模型”,怎么做采集,怎么写插件,怎么结合其他的高效工具如:redis缓存,怎么做数据库优化,怎么做负载均衡,怎么做站群......随着对这些的深入认识,你能交流的人会越来越少,因为他们都达不到你这个级别,那么此时的你要突破瓶颈,就得靠你自己了,靠你要回去学php了,是全面的学php......
所以,它也是一把双双刃剑,可以给你带来快速开发,也可以让你头痛很久,信心被不停的打击。