您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 电子设计/PCB > 深 入 理 解 Yii2.0
深深深入入入理理理解解解Yii2.0Release1LinuorSeptember14,2014CONTENTS1导导导读读读31.1Yii是什么..............................................31.2背景知识...............................................41.3Yii2.0目前的状态..........................................41.4Yii2.0对比Yii1.1的重大变化(TBD)................................42Yii基基基础础础112.1属性.................................................112.2事件(Event)............................................162.3行为(Behavior)..........................................243Yii约约约定定定353.1别名.................................................353.2配置项(configuration)(TBD)...................................423.3Yii应用的目录结构.........................................443.4Yii的类自动加载机制........................................474Yii模模模式式式514.1MVC.................................................514.2Yii中的服务定位器与依赖注入(TBD)...............................525安安安装装装Yii615.1使用Composer安装Yii........................................615.2从压缩包安装............................................615.3设置Web服务器...........................................615.4Yii中的前后台............................................635.5配置应用环境............................................635.6环境的配置原则...........................................645.7....................................................65iii深深深入入入理理理解解解Yii2.0,Release1当前版本号:Ver20140901本书将随着Yii官方对Yii2的开发而不断丰富内容和进行更新,需要阅读最新的内容请访问《深入理解Yii2.0》的最新版。建议收藏网址,以便今后访问。有任何疑问、需求、批评、建议,都欢迎读者朋友通过底部评论留言告知,谢谢支持!CONTENTS1深深深入入入理理理解解解Yii2.0,Release12CONTENTSCHAPTERONE导导导读读读这是一本干货。主要讲解Yii2.0及所代表的最新一代Web开发框架的新特性、新技术、新思路、新模式。学习完这里面的全部内容,你得到的,不仅仅是Yii怎么使用的实操技巧,还将了解其实现的技术原理和内幕,更为重要的,将是Web开发中最为流行和成熟的设计模式和开发思路。希望读者朋友能够从中有所收获吧。由于本人的水平有限,技术欠精,写的内容不一定对,欢迎读者朋友们在网页底部留下评论,批评指正。1.1Yii是是是什什什么么么Yii是一个PHP框架,用于开发各种类型的Web应用。Yii官方将其定义为高性能、基于组件的框架。就个人的经验而言,总结Yii具有以下特点:•Yii比较“潮”。Yii开发团队一直关注业内Web开发的最新技术,很注意吸收当下最为流行的技术。可以说,近年来Web开发中最潮的技术都可以在Yii身上或多或少的看到影子。比如,刚刚开始的时候Yii带有明显的RubyonRails风格;比如Yii2中刚刚现实的命名空间等PHP最新特性支持等。一个跟得上潮流和趋势的框架,才具有吸引力和生命力,学习起来才有意思、有意义。•Yii比较“易”。正如其名字的发音,Yii是一个比较易学、易用的框架。代码质量很高,有许多可以学习的地方。注释清晰、文档丰富阅读代码难度不高。社区活跃,官方论坛有中文区,国内论坛人气也还OK,知识获取容易。架构相对稳定,从Yii1.1到Yii2的变化看,许多原来的约定和沉淀的经验都还适用。•Yii比较“全”。就Web开发而言,无论是哪种类型的应用、无论是哪个开发阶段的常见问题,Yii都有成熟、高效、可靠的解决方案。对于典型的Web开发而言,这已经是足够了。比如,伪静态化、国际化、RESTful等,Yii都有提供编程的框架。但是,从规模上来讲,Yii还算不上一个大型框架。个人对其的评价是一个中型偏轻点的框架,对于绝大多数的应用而言,肯定是充分的了。•Yii比较“快”。Yii官方把运行效率作为一个重要的特点来宣传。从实际使用看,在诸多PHP框架中,确实效率上具有一定优势。但个人认为这点其实不是特点重要,作为框架的使用者,也就是开发人员来讲,更重要的是开发效率。于由Yii架构合理,Web中开发常用的思路和模式都可以很顺地套上使用。在Web开发中常遇以的细节上,Yii也提供了许多现成解决方案,拿来就可以使用,非常高效、方便。目前,Yii有两个最主要的版本,Yii1.1和Yii2.0。Yii1.1是老的版本,我写这个教程时,最新版本号是1.1.15。Yii1.1现在已经不再进行新的开发了,官方只是进行维护,更新安全漏洞等,不会再有新的功能特性的引入。而Yii2.0是在Yii1.1的基础上完全推倒重新写的一个框架,吸收了当前最新的技术和开发中主流的约定。Yii2.0是最新一代Web开发框架的代表。要感谢Yii开发团队精益求精的不懈努力,为广大Web开发者创造了如此优秀的框架。本人自Yii1.1起就开始接触并使用Yii了,由于工作和爱好关系,也接触过一些框架了。总的说,至今对Yii很满意,最最心仪的是两点:学了Yii,就学到了许多当下最流行、最成熟的东西;开发起快,改进来快。3深深深入入入理理理解解解Yii2.0,Release11.2背背背景景景知知知识识识请留意,虽然本教程以Yii2为主要内容,但并不要求读者具有Yii1.1的开发经验。虽然具有这些背景知识可以更快的掌握Yii2,但在教程中,我会帮助没有Yii1.1相关知识的读者补充有关的概念。只要有了这些概念,读者并不需要从头学习Yii1.1,就可以直接上手Yii2了。当然,Yii作为一个PHP框架,读者朋友最好能够了解一下PHP,并不需要多精通,只需要看得懂代码,会写简单的代码,编程的时候大概知道要使用哪些函数,就基本足够了,边用边学,也是一种学习方法。同时,Yii还是一个面向对象的框架。这意味着在代码组织和问题解决的思路上,Yii都体现了面向对象的思想。要用Yii来开发,最好也要遵循这一思想。因此,读者最好对面向对象编程有一定的了解。其实,看一个程序员水平的高低,不单是对于某种语言、某种开发框架的熟练程度。更重要的,是看其解决问题的思路和方法。其中一大类方法就是面向对象方法。从这点来看,虽然学习和使用Yii并不需要多高深的面向对象的方法。但作为过来人,我还是希望各位读者朋友可以系统地、全面地学习面向对象的开发方法。特别是Web开发中常用的设计模式,本教程也会在涉及到时,进行专门讲解。1.3Yii2.0目目目前前前的的的状状状态态态Yii2.0目前是Beta版本。自Alpha版开始,官方建议不要将Yii2.0用于产品,但可以用于研究学习。在发布Beta版之后,官方又说明自Alpha以来,已经有许多网站和应用在使用Yii2.0开发了,而且使用状况稳定。而且,Beta版不会涉及到架构及接口方面的修改,主要是文档完善和Bug修复。从个人的使用经验看,在Alpha时,确实存在由于框架代码的更新,导致原来自己写的能够正常运行代码,出现莫明妙错误的情况。大概有7、8次吧。但每次出现问题时,根据Yii的调试信息,可以定位错误代码的位置和原因,很快可以判断是由于框架修改的原因造成的。随后,只需要查看最新的Yii2.0代码库,查看最近提交的comment,就可以发现代码库中修改的内容了。根据新的框架代码,对自己的代码作出相应的调整即可。应该说在Alpha版本时,虽然存在代码不稳定的情况,但出现状况的次数对我个人而言是可以接受的,排查起来很容易,代码调整起来也不困难。而到了Beta版本,目前为止,还未出现类似问题。这里只是客观讲述Yii2.0目前所处的状态。对于学习研究而言,一点不妨碍我们对Yii的深入学习。对于生产开发而言,如果对于大型应用、团队大规模开发的场景,建议可以先等等,等正式版发布后再使用。而如果是小型应用,2-3人小团队开发、个人开发,那么,直接上Yii2.0是没有太大问题的。只是每次更新框架代码前,留意框架代码修改的内容,并针对相应的修改作出调试,确保自己的代码不受影响。1.4Yii2.0对对对比比比Yii1.1的的的重重重大大大变变变化化化(TBD)这一节是专门为已经有Yii1.1基础的读者朋友写的。将Yii2.0与Yii1.1的不同着重写出来,对比学起来会快得多。而对于从未接触过Yii的读者朋友,这一节的内容扫一扫就可以了,作为对过往历史的一个了解就够了。如果有的内容你一时没看明白,也不要紧,后面会讲清楚的。另外,没有Yii1.1的经验,并不妨碍对Yii2.0的学习。Yii官方有专门的文档归纳总结1.1版本和2.0版本的不同。以下内容,主要来自于官方的文档,我做了下精简,选择比较重要的变化,并加入了一些个人的经验。1.4.1PHP新新新特特特性性性从对PHP新特性的使用上,两者就存在很大不同。Yii2.0大量使用了PHP的新特性,这在Yii1.1中是没有的。因此,PHP2.0对于PHP的版本要求更高,要求PHP5.4及以上。Yii2.0中使用到的PHP新特性,主要有:•命名空间(Namespace)4Chapter1.导导导读读读深深深入入入理理理解解解Yii2.0,Release1•匿名函数•数组短语法形式:[1,2,3]取代array(1,2,3)。这在多维数组、嵌套数组中,代码更清晰、简短。•在视图文件中使用PHP的?=标签,取代echo语句。•标准PHP库(SPL)类和接口,具体可以查看SPLClassandInterface•延迟静态绑定,具体可以查看LateStaticBindings•PHP标准日期时间•特性(Traits)•使用PHPintl扩展实现国际化支持,具体可以查看PECLinit。了解Yii2.0使用了PHP的新特性,可以避免开发时由于环境不当,特别是开发生产环境切换时,产生莫名其妙的错误。同时,也是让读者朋友借机学习PHP新知识的意思。1.4.2命命命名名名空空空间间间(Namespace)Yii2.0与Yii1.1之间最显著的不同是对于PHP命名空间的使用。Yii1.1中没有命名空间一说,为避免Yii核心类与用户自定义类的命名冲突,所有的Yii核心类的命名,均冠以C前缀,以示区别。而Yii2.0中所有核心类都使用了命名空间,因此,C前缀也就人老珠黄,退出历史舞台了。命名空间与实际路径相关联,比如yii\base\Object对应Yii目录下的base/Object.php文件。1.4.3基基基础础础类类类Yii1.1中使用了一个基础类CCo
本文标题:深 入 理 解 Yii2.0
链接地址:https://www.777doc.com/doc-4895573 .html