Vendor目录下的包,了解Yii2用了什么类库。
punycode.js - “Punycode是一个根据RFC 3492标准而制定的编码系统,主要用於把域名从地方语言所采用的Unicode编码转换成为可用於DNS系统的编码。Punycode可以防止所谓的IDN欺骗。”(百度知道)
这个库的作用应该是这样的。是一个转码的工具。
typeaheade.js - 是Bootstrap的一个autocomplete插件,我觉得很有用。例如用户在搜索栏输入p, 搜索栏下面会显示PHP。 前提当然是需要把数据准备好。autocomplete虽然是一个很小的功能,但我觉得很多网站都没做好这个小功能,可能是因为时间的关系。这个小功能对用户体验还是挺重要的。
inputmask.js - “Inputmask 是一个 jQuery 输入插件,用于创建确保让用户能够按预先定义好格式输入的文本框。这些格式可以是日期,数字,电话号码等。”(http://f2ex.cn/inputmask-jquery/)
codeception是关于PHP测试的类库,下面有base, specify 和 verify。
doctrine, instantiator。 “The instaniator is able to create new instances of any class without using the constructor or any API of the class itself:”;
应该是创建新实例的类。很有用。
ezyang, htmlpurifier. 这个一看名字就知道是html过滤器,防止XSS攻击的。很重要的库。
fzaninotto, faker。 创建假数据应用于开发时的需要。
guzzlehttp, psr7。 这个应该是新规范,百度的资料不多。“This repository contains a full PSR07 message implementation, serveral stream decorators, and some helpful functionality like query string parsing.” 然后还有Stream implementation。 这个应该是高级内容,慢慢了解。
myclabs, deep-copy. 一看就知道是深拷贝,是拷贝对象的。 Javascript里面也有深浅拷贝。这个包还说:"It is designed to handle cycles in the association graph."。
phpunit- 应该是php代码测试模块
symfony- Yii 有使用symfony的一些工具,有空的话可以讨论一些symfony,感觉也是很强大的一个框架。
yiisoft 里面是yii的一些工具。
按照文档在SiteControler里面创建actionSay方法,然后用render函数传递给视图,URL访问,成功。
然后我尝试一下把action去掉,只创建Say方法,竟然访问不了,显示Object not found。这个有趣,TP5应该不会出现这种情况。
文档里面写到:“Yii 使用 action 前缀区分普通方法和操作。 action 前缀后面的名称被映射为操作的 ID。”
Yii::$app, 这个很重要,之前看到这个都不太懂什么意思。 “Yii::$app代表应用实例,它是一个全局可访问的单例。同时它也是一个服务定位器,能提供request, response,db等特定功能的组件。” 我的理解是这个实例里面提供很多重要的功能,服务定位器接下来慢慢了解。
使用表单
刚开始创建entry.php视图文件的时候,form表格显示不正常,检查后发现 $form前面少了 = 号,导致渲染错误。
视图使用了小部件ActiveForm生成HTML表单,很强大,少编写了很多代码,Yii还有很多小部件等待我去发掘。
打算想拓展mobile的时候,生成HTML表单没问题,可是最后没显示号码出来,应该是没拿到数据的问题。以后慢慢解决。看来还是得多写不同的代码才容易发现问题。
Gii
使用CRUD Generator 代码前,一定要用 Model Generator生成相应的Model代码,否则会报错。
网友评论