Yii2初谈

Yii2发布有两个月时间了,一直没有去仔细关注过。

今天在回顾PSR标准时,稍稍扫了一眼Yii2。它的命名风格还是一如既往的与Zend那种既首字母大写又还要下划线连接的很二的命名风格格格不入。其实我看了觉得这种行为挺爽的。

php的命名空间以反斜杠‘‘\’’分割。Yii2每一级目录名是小写字母形式,这与Java相同,而不是靠近Perl。

Github拖下来后,看了一下代码结构,由于使用了命名空间,代码可以按模块分割,分布到不同的目录中,因此核心框架framework中减轻了很多,只有5M多,是我喜欢的风格。

Yii2号称是300多名社区成员提交近万次代码、历经三年左右的开发而释出的版本。他是完全独立于1.x系列开发的。当然,很多特性还是沿袭1.x。新特性中,除了PHP本身的语言特性如命名空间、Traits等,主要是引入了依赖注入、服务定位器 - 组件化概念的强化。数据库方面,Yii2改进了AR类的性能。同时,原生引入了Restful API开发模式,以Model为核心,暴露相关方法。Yii2中表单的创建也更加简单。

use yii\db\Query;
use app\models\Customer;

$customers = (new Query)->from(‘customer‘)
    ->where([‘status‘ => Customer::STATUS_ACTIVE])
    ->orderBy(‘id‘)
    ->all();

$customers = Customer::find()
    ->where([‘status‘ => Customer::STATUS_ACTIVE])
    ->orderBy(‘id‘)
    ->asArray();
    ->all();

总体来说,越来越像Java了,当然也有人多是像ASP.net的MVC。

时间: 2024-10-12 12:52:26

Yii2初谈的相关文章

现代软件工程第02次作业————初谈GitHub使用详解以及设计

现代软件工程第二次作业 --初谈GitHub使用详解以及设计 一.目标任务(图文并茂): 1.参照http://www.cnblogs.com/xinz/p/3803109.html的第一题 A.每人创建一个GitHub账号 B.组长创建一个Project C.添加组员进入Project中的Collaborators,并添加zykgnyue为Collaborator. 2.每人创建一个HelloWorld项目. A.练习使用git基本命令add/commit/push/pull/fetch/cl

Yii2 初体验

看着Yii1.1有那么多的不爽,又看着Yii2一天天成熟起来,于是凑一个小项目的原型阶段,试着用Yii2搞一搞. 随手写了一点体会,以一个Yii1的熟练工人看向Yii2的视角,简单一说吧.(将来随时可能在本文后面追加补充) 默认的模板使用了bootstrap,很美观. basic版和advanced版的config文件不大一样.basic版里面,有web.php,后者没有. 设置为中文显示:config/web.php 中,增加一行 'language'=>'zh-CN'.然后 Home 变成了

DICOM医学图像处理:WEB PACS初谈

背景: 周末看到了一篇原公司同事的文章,讲的是关于新的互联网形势下的PACS系统.正好上一篇专栏文章也提到了有想搭建一个worklist服务器的冲动,所以就翻箱倒柜将原本学生时代做课题时搭建的简易Web PACS找了出来,借着再次搭建的机会学习一下Web PACS相关的技术,例如WADO标准.CGI或者FastCGI等技术. WEB PACS技术浅谈: WEB PACS是一种利用互联网技术,跨越了医院和地域限制的,可随意查询和获取DICOM对象的PACS系统.目前常见的方式有两种:第一种是通过W

Android初级教程:单击事件的传递机制初谈

以上仅是小试牛刀,后续有很多事件传递机制,继续探讨.

DICOM医学图像处理:WEB PACS初谈二,图像的传输

背景: 如前一篇专栏博文所述,借助于CGI或FastCGI技术转发浏览器发送过来的用户请求,启动本地的DCMTK和CxImage库响应.然后将处理结果转换成常规图像返回到浏览器来实现Web PACS.本博文通过实际的代码測试来验证这一模式的可行性,同一时候对C语言编写CGI脚本提出了一些问题. 难题: 计划參照DCMTK自带工具dcm2pnm.exe的源代码.通过DicomImage将DCM文件转换成BMP文件,然后利用CGI技术返回到浏览器.实现一次简单的WEB PACS的影像传输模拟.详细的

Java初谈之泛型

/* * * 泛型与c++的模版有异曲同工之妙 * 泛型是面向对象的 * *函数基本使用格式 < T> 返回值 函数名(){} //可以是任意的大写字母不一定非是T *类基本使用格式 class classname<T> {}  以及 class classname<T extend interface & implements>{} * *使用方式和普通类是一样的 采用new的形式 只不过T要有具体的类(不是对象)代替 泛型无外呼泛型方法和泛型类 下面对常见的

Android初级教程初谈自定义view自定义属性

有些时候,自己要在布局文件中重复书写大量的代码来定义一个布局.这是最基本的使用,当然要掌握:但是有些场景都去对应的布局里面写对应的属性,就显得很无力.会发现,系统自带的控件无法满足我们的要求,这个时候就要考虑自定义控件.自定义view的世界,也很浩瀚,个人需要学的地方还有很多很多.自定义view,会节省开发效率,很有必要学习其基本原理和方法.接下来就对自定义view,做一个初步的认识,一步步了解封装的重要性.但是,也仅仅是一个初步,因为它实在太灵活了. 有这么一种场景,看图: 除了布局之外,还有

Android学习笔记(四七):Content Provider初谈和Android联系人信息

Content Provider 在数据处理中,Android通常使用Content Provider的方式.Content Provider使用Uri实例作为句柄的数据封装的,很方便地访问地进行数据的增.删.改.查的操作.Android并不提供所有应用共享的数据存储,采用content Provider,提供简单便捷的接口来保持和获取数据,也可以实现跨应用的数据访问.简单地说,Android通过content Provider从数据的封装中获取信息. Content provider使用Uri

DICOM医学图像处理:WEB PACS初谈三,PHP扩展骨架

背景: 最近两篇专栏博文讲解的都是有关WEB PACS环境的搭建,如果搭建的平台后端不进行DICOM的相关操作,其实跟PACS压根就一点关系也没有,所以最近几篇看似有些跑题,不过大家不要着急,开发环境的搭建本身就是一项巨大而且艰难的工程,等调试好环境后续的PACS相关开发就会如单机版一样得心应手,再忍耐一会,近期马上会开始介绍在平台上进行WEB PACS的研发. C/C++编写PHP扩展的环境搭建: 上两篇博文只是对该环境的一个取巧的尝试,第一篇博文直接利用APACHE服务自带的CGI,直接调用