heiyeluren的blog(黑夜路人的开源世界)

【PHP技术论坛:PHPCup.cn - 中国新锐PHP&LAMP技术论坛】

谢华亮ID:heiyeshuwu
[修改头像]
752507次访问,排名37好友16人,关注者35
既然决定远行,便只顾风雨兼程。
heiyeshuwu的文章
原创 270 篇
翻译 3 篇
转载 193 篇
评论 422 篇
heiyeluren的公告

联系方式:


访问统计: free hit counter code
FeedSky订阅:
FeedSky订阅
最近评论
1005491876:wei shen me dian nao zhuo mian kan bu dao ren he tu biao ne?lian shu ru fa dou bu neng yong ,ying gai zen me chu li ne ?
sam://检查IP地址
if(!preg_match("/^d{1,3}.d{1,3}.d{1,3}.d{1,3}$/", $ip)) {
return 'IP Address Error';
}

//检查IP地址
if(!preg_match("/^\d{1,3}.\d{1,3}.\d{1,3}……
dfdf:sghgfer(5.13)
[url=http://www.100nuoyi.com/shanghaibijibenweixiu.htm]上海笔记本维修[/url]
[url=http://www.100nuoyi.com/shanghailianxianbijibenweixiu.htm]上海联想笔记本维修[/url]
[url=http://www.100n……
普拉多:普拉多 Praado: http://praado.vicp.net 专业的网页收藏夹

每天我们上网都会碰到一些有用的、值得珍藏的网页链接地址(简称:网址),于是我们都用浏览器里的收藏夹来收藏。但是现在的电脑病毒相当的猖獗,电脑遭病毒之后,浏览器里收藏的网址几乎就是无法挽救,损失巨大!同时,现在的浏览器市场有多种多样的浏览器,在一台电脑上的浏览器里收藏了某一网址,可是到……
wushenjun:bfdkljgsjgfjkbjkfjugopreigopixfdg
订阅我的博客
XML聚合  FeedSky
订阅到鲜果
订阅到Google
订阅到抓虾
订阅到BlogLines
订阅到Yahoo
订阅到GouGou
订阅到飞鸽
订阅到Rojo
订阅到newsgator
订阅到netvibes
文章分类
收藏
    相册
    技术图片
    搜索引擎
    ::eYou::
    kevin world
    lewis - 老吕
    qyb - BT的花
    Realzay的blog
    叶金荣
    天堂地狱鬼-dulao5's Blog
    沙漠之周
    狐狸糊涂
    老韩
    與子觀化
    ::Yahoo::
    glemir’s blog
    Rainx
    stauren
    互联网,请记住我 - 162同学的技术博客
    小蚂蚁同学滴测试博客
    张彪同学
    随网之舞 - kaven的DHTML博客
    ::朋友::
    【推荐】中文分类网
    kevin world
    miky
    俺兄弟的blog
    晋陵路人的Blog
    李天华同学滴技术博客
    沙狐部落
    ::网友::
    Code & Stock.
    LionD8的Blog
    Phzzy
    张贺同学的博客
    技术大牛老余的博客
    抚琴居
    邢红瑞的blog
    阿健的博客
    :PHP博客:
    .: Easy style :.
    [琴剑楼]
    CoolCode.cn
    Haohappy的Blog
    Hightman
    iwind的blog
    Javascript开发站
    JD Space
    Nio's Weblog
    Open Source PHP
    PHP面对对象
    SourceForge.net
    trip的专栏
    UGIA.cn
    windix's blog
    Windix's Weblog
    一个藏袍
    俊麟 Michael`s blog
    偶然的blog
    刘敏的blog
    大龄青年的Blog
    廖宇雷的blog
    懒猫开始新生活blog
    某人的栖息地
    王春生的博客
    神仙
    :牛人blog:
    DBA notes
    侯捷网站
    孟岩
    搜索引擎研究
    方舟
    王咏刚的BLOG
    竹笋炒肉
    荣耀
    车东[Blog^2]
    透明思考
    陈硕的Blog
    DHTML
    DHTMLGoodies
    FCKEditor
    Google Code
    Google Web Toolkit
    HTML Goodies
    HTML.it
    HTMLAre
    HTMLdog
    JavaScript Kit
    jQuery
    KindEditor
    Prototype
    TinyMCE
    W3 Schools
    Yahoo JavaScript Developer Center
    Yahoo! Developer Network
    Yahoo! UI Library (YUI)
    网页设计师Web标准
    Java国内站
    ChinaJavaWorld.com技术论坛
    IBM developerWorks 中国: Java
    Java中文站
    Java开源大全
    Java爱好者
    JR - Java翻译站
    J道-JDON
    Matrix: 与Java共舞
    中国Java开发网
    中文java技术网
    PHP国内站点
    CSDN PHP论坛
    Discuz!
    FleaPHP
    Google--PHP用户组
    IBM DeveloperWorks
    JavsScript技术讨论
    Nirvana Studio
    OpenPHP.cn
    PHPChina
    TiM Club
    中文 PFC 1.0 手册--PHP5的开发包
    中文 PFC 1.0 手册--PHP5的开发包
    中文PHP网
    太平洋--PHP开发区
    爱MySQL
    超越PHP
    PHP国外站点
    ADOdb
    Agavi Framework
    Cake PHP
    MySQL Performance Blog
    MySQL Performance Blog
    Nonaweb
    PEAR
    PECL
    PECL Windows
    PHP Builder
    PHP Classes
    PHP Classes
    PHP New Download
    PHP Security Consortium
    php.MVC
    php.MVC
    PHPkitchen(OO & MVC)
    phpPatterns
    PHP国外图书下载
    smart template
    Smarty
    SourceForge.net
    Symfony Framework
    Zend
    Zend Framework
    Unix C/C++
    Free Gentux
    周立发的blog(Linux C)
    Unix/Linux
    BSD智库
    ChinaUnix
    FreeBSDChina
    FreeLAMP
    IBM开发者Linux专区
    Linux Byte
    LinuxKit
    LinuxTS
    Linux伊甸园
    Linux技术中坚站
    Linux非常空间
    Love Unix
    NetBSD&OpenBSD中文用户组
    NetBSD中国社区
    Oracle中国用户讨论组
    OurLinux
    Unix中文
    Unix中文
    Unix中文宝库
    中国Linux公社
    中国Unix用户技术论坛
    中文FreeBSD用户组
    永远的Unix
    炎黄角马
    程序设计
    CSDN
    IBM开发者中心
    Microsoft TechNet: 主页
    MSDN 中文网站
    PHP中文站
    Sun技术社区
    中国IT认证实验室--企业应用技术
    中国协议分析网
    喜悦国际村
    太平洋电脑网---开发特区
    实用网站
    veBook(国外大量免费图书下载网站)
    Whois.net
    中国Web信息博物馆
    中国互联网络信息中心whois查询
    服务器系统信息查看
    网络安全
    AnySide.com
    CGI Secutiry
    K-OTik Security Monitoring
    Linux Security
    Packet Storm Security
    PHP Secure
    RFC中文文档索引
    Safemode.org
    SecuriTeam.com
    Security Corporation
    SecurityFocus
    SecurityTracker
    Zone-h (区域黑客,每天公布各国被黑的网站)
    中华安全网
    中国信息安全组织
    国家计算机网络应急处理中心
    安全天使
    安全焦点
    幻影旅团
    绿盟科技
    网络安全评估中心(cnns )
    在线手册
    Apache2.0中文文档
    Beyond Linux From Scratch
    Debian参考手册
    FreeBSD Porter 手册
    FreeBSD使用手册
    Linux C函数中文参考手册
    MySQL 4.1.0 中文参考手册
    NetBSD在线手册
    OpenBSD在线FAQ
    PHP ADODB 1.99版手册中文翻译(Tripc)
    PHP中文手册(国内)
    PHP中文手册(国外)
    PostgreSQL中文文档
    Red Hat Linux 9入门指南
    Red Hat Linux 9安装指南
    Red Hat Linux 9定制手册
    中国OSS技术手册中心
    技术文档手册中心-ChinaUnix
    存档

    原创 [原创]国外主流PHP框架比较



    国外主流PHP框架比较


    作者:heiyeluren
    博客:
    http://blog.csdn.net/heiyeshuwu
    时间:2008-5-5

    最近简单的使用了目前在国内用的比较多的几个主流国外PHP框架(不包括国内框架),大致对这些框架有个直观上的感受,简单分享一下,对于哪些做框架选型的时候,权当一个参考。
    主要参考的框架包括:CodeIgniter、CakePHP、ZendFramework、Symfony

    说明:我对很多框架也没有认真使用,只是简单试用了一下,可能很多看法不成熟或者是错误的,请大家指正,一起成长。 :-)


    【 CodeIgniter 】

    官方网站:http://codeigniter.com
    中文网站:http://codeigniter.org.cn
    中文手册:http://codeigniter.org.cn/user_guide
    视频教程:http://codeigniter.org.cn/tutorials
    测试版本:CodeIgniter_1.6.1

    优点:
    1. 配置简单,全部的配置使用PHP脚本来配置,执行效率高;具有基本的路由功能,能够进行一定程度的路由;具有初步的Layout功能,能够制作一定程度的界面外观;数据库层封装的不错,具有基本的MVC功能
    2. 快速简洁,代码不多,执行性能高,框架简单,容易上手,学习成本低,文档详细;自带了很多简单好用的library,框架适合小型应用

    缺点:
    1. 把Model层简单的理解为数据库操作
    2. 框架略显简单,只能够满足小型应用,略微不太能够满足中型应用需要

    评价:
    总体来说,拿CodeIgniter来完成简单快速的应用还是值得,同时能够构造一定程度的layout,便于模板的复用,数据操作层来说封装的不错,并且CodeIgniter没有使用很多太复杂的设计模式,执行性能和代码可读性上都不错。至于附加的 library 也还不错,简洁高效。

     

    【 CakePHP 】

    官方网站:http://www.cakephp.org
    中文手册:http://www.1x3x.net/cakephp
    视频教程:http://search.you.video.sina.com.cn/s?key=cakephp
    测试版本:cake_1.1.19.6305

    优点:
    1. CakePHP是最类似于RoR的框架,包括设计方式,数据库操作的Active Record方式;设计层面很优雅,没有自带多余的 library,所有的功能都是纯粹的框架,执行效率还不错;数据库层的 hasOne, hasMany 功能很强大,对于复杂业务处理比较合适;路由功能,配置功能还不错;自动构建脚手架(scaffold)很强大;适合中型应用;基本实现过了MVC每一层;具有自动操作命令行脚本功能;
    2. 文档比较全,在国内推广的比较成功,大部分都知道CakePHP,学习成本中等

    缺点:
    1. CakePHP非常严重的问题是把Model理解为数据库层操作,严重影响了除了数据库之外的操作能力
    2. CakePHP的cache功能略显薄弱,配置功能稍嫌弱;CakePHP不适合大型应用,只适合中型应用,小型应用来说略微的学习成本高了点

    评价:
    总体来说CakePHP框架代表了PHP框架很重要的一个时代和代表,并且目前发挥着很重要的作用,不少自己写的框架都模仿了CakePHP的方式,是个里程碑式的产品;CakePHP透露着RoR的敏捷开发方式和把数据库操作认为是唯一Model的设计思想,作为开发快速应用和原型是绝好的工具;同样,用来做Web2.0网站的开发框架,也是值得选择的。


    【 Zend Framework 】

    官方网站:http://framework.zend.com
    中文手册:http://www.phpeye.com/zf
    视频教程:http://framework.zend.com/docs/screencasts
    测试版本:ZendFramework-1.5.0

    优点:
    1. 官方出品,自带了非常多的 library,框架本身使用了很多设计模式来编写,架构上很优雅,执行效率中等;MVC设计中,比较简洁,具有路由功能,配置文件比较强大(能够处理XML和php INI),各种 library 很强大,是所有PHP框架中各种功能最全面的,包括它不仅是一个框架,更是一个大类库(取代PEAR),这是它的主要特色;能够直观的支持除数据库操作之外的Model层(比 CodeIgniter 和 CakePHP 强),并且能够很轻易的使用Loader功能加载其他新增加的Class;Cache功能很强大,从前端Cache到后端Cache都支持,后端Cache支持Memcache、APC、SQLite、文件等等方式;数据库操作功能很强大,支持各种驱动(适配器)
    2. 文档很全,在国内社区很成熟,并且目前不少Web 2.0网站在使用,学习成本中等

    缺点:
    1. MVC功能完成比较弱,View层简单实现(跟没实现一样),无法很强大的控制前端页面
    2. 没有自动化脚本,创建一个应用,包括入口文件,全部必须自己手工构建,入门成本高
    3. Zend Framework 作为一个中型应用框架问题不大,也能够勉强作为大型应用的框架,但是作为一个很成熟的大型PHP框架来说,还需要一些努力

    评价:
    作为官方出品的框架,Zend Framework的野心是可以预见的,想把其他框架挤走,同时封装很多强大的类库,能够提供一站式的框架服务,并且他们的开发团队很强大,完全足够有能力开发很强大的产品出来,所以基本可以确定的是Zend Framework前途无量,如果花费更多的时间去完善框架。同样的,Zend Framework架构本身也是比较优雅的,说明Zend官方是有很多高手的,设计理念上比较先进,虽然有一些功能实现的不够完善,比如View层,自动化脚本等等,这些都有赖于未来的升级。总体来说Zend Framework是最值得期待的框架,当然,你目前要投入你的项目中使用也是完全没问题的。

     

    【 Symfony 】

    官方网站:http://www.symfony-project.org
    中文网站:http://symfony-project.cn
    权威指南:http://www.symfony-project.org/book
    学习参考:http://sf.thecodecentral.com
    测试版本:symfony-1.0.13

    优点:
    1. Symfony 是我了解的PHP框架中功能最强大的,而且我使用时间比较长,但是很多功能还是没有挖掘出来;它完整实现了MVC三层,封装了所有东西,包括 $_POST,$_GET 数据,异常处理,调试功能,数据检测;包含强大的缓存功能,自动加载Class(这个功能很爽),强大的i18n国家化支持;具有很强大的view层操作,能够零碎的包含单个多个文件;非常强大的配置功能,使用yml配置能够控制所有框架和程序运行行为,强大到让人无语;能够很随意的定义各种自己的class,并且symfony能够自动加载(auto load)这些class,能够在程序中随意调用;包含强大的多层级项目和应用管理:Project --> Application --> Module --> Action,能够满足一个项目下多个应用的需要,并且每层可以定义自己的类库,配置文件,layout;非常强大的命令行操作功能,包括建立项目、建立应用、建立模块、刷新缓存等等;
    2. Symfony绝对是开发大型复杂项目的首选,因为使用了Symfony,将大大节约开发成本,并且多人协作的时候,不会出现问题,在Project级别定义好基础Class以后,任何模块都能够重用,大大复用代码

    缺点:
    1. 数据库操作model采用了重量级的propel和creole,不过在我测试的版本中已经把他们移到了addon里,可用可不用
    2. 缓存功能无法控制,每次开发调试总是缓存,需要执行 symfony cc, symfony rc 来清除和重建缓存;
    3. 效率不是很高,特别是解析模板和读取配置文件的过程,花费时间不少;
    4. 学习成本很高,并且国内没有成熟的社区和文档,连中文手册都没有,相应的要掌握所有功能,需要花费比较多的时间

    评价:
    Symfony绝对是企业级的框架,唯一能够貌似能够跟Java领域哪些强悍框架抗衡的东西;强悍的东西,自然学习复杂,但是相应的对项目开发也比较有帮助,自然是推荐复杂的项目使用Symfony来处理,觉得是值得,后期的维护成本比较低,复用性很强。相应的如果使用Symfony的应该都是比较复杂的互联网项目,那么相应的就要考虑关于数据库分布的问题,那么就需要抛弃Symfony自带的数据库操作层,需要自己定义,当然了,Symfony支持随意的构造model层。

     


    【 总评 】

    以上数款框架,各有特色,而且都是开源项目,不过框架针对的项目不一样,一般来说 CodeIngiter 比较适合小型项目,CakePHP 和 Zend Framework 比较适合中型项目,Symfony  比较适合大型重量级项目,在项目选型的时候,要充分考虑框架的可以定制性、扩展性,因为每个项目都无法确定你是否会随着需求的变化进行改变。

    相对来说,Zend Framework 和 Symfony 应对变化的能力比较强,特别是能够随意定制 model 层的Class,能够非常方便增加自己业务或者数据处理类,我是个人比较推荐在中大型项目中使用的框架。CodeIngiter 和 CakePHP 在中小型项目中同样能够发挥重大作用,快速开发和原型构建,非常适合目标不清晰的原型项目的开发。了解一个框架最好的方式就是使用它,学习它最好的方式就是看视频。:-)

    仁者见仁,智者见智,在项目挑选框架的时候,请先认真考察项目的需求和未来的变化,然后选择合适的框架,让项目开发速度和后期维护性得到一个合理的平衡,当然了,也许,自己写一个框架更适合。 :-)

    泛泛的评价了几款框架,估计很多东西都没有说到点子上,大家就姑且看之,同样欢迎提出看法指正!

     

    发表于 @ 2008年05月05日 17:31:00|评论(loading...)|编辑

    旧一篇: 另外五个 PHP 设计模式

    评论

    #Jio 发表于2008-05-06 11:24:26  IP: 58.49.112.*
    作者对Zend Framework的描述中,有一个地方我不是太赞同
    Zend Framework自带的view的确是功能非常有限,但是它提供了非常方便的接口,可以非常方便的使用其他的模板引擎,Zend Framework官方的文档中,就提供了完整的将smarty和Zend Framework集成的接口类。所以我觉得,Zend Framework只所以不将view做的那么完整,有很大的原因是已经有了功能很强大的、php官方支持的smarty的原因。
    #test 发表于2008-05-06 12:41:18  IP: 118.26.231.*
    Symfony 可以把缓存功能关闭,就不用cc了
    #heiyeshuwu 发表于2008-05-06 13:13:49  IP: 125.120.164.*
    回复Jio:
    我说的view层不仅仅是模板功能,基本上上面说的框架都模板功能,view层还有很多东西,比如对layout的支持重用,支持类似symfony中 component 和 partial 的功能,其实如果一般框架中使用了模板系统(Smarty之类),性能下降的更厉害,所以大家都不用
    #heiyeshuwu 发表于2008-05-06 13:14:53  IP: 125.120.164.*
    回复 test :
    据我测试经验,我反复尝试了关闭所有的cache功能都还是存在需要cc的过程,不知道是不是symfony的bug
    #hbgth 发表于2008-05-06 13:55:13  IP: 221.232.130.*
    那smarty呢??? 难道不算一个重量级的吗??
    #Jio 发表于2008-05-06 13:58:18  IP: 58.49.112.*
    回复heiyeshuwu:
    symfony我还没有用过,所以也没有办法评论其好坏,不过通过作者的介绍,我倒是对它很有兴趣,有时间一定研究一下。
    不过作者说“使用了模板系统(Smarty之类),性能下降的更厉害,所以大家都不用”,我觉得也并非完全如此。
    至少我所做的项目和我看到的一些其他组织或公司做的项目和软件,不管大小,很多都用模板技术的。
    就拿smarty来说,他使用了缓存的机制,第一次使用那个效率比较低之外,之后使用的效率还是非常的高的。
    #kenzen 发表于2008-05-06 16:39:40  IP: 210.13.101.*
    CakePHP非常严重的问题是把Model理解为数据库层操作,严重影响了除了数据库之外的操作能力

    不是很理解你的这个说法
    #rivalhw 发表于2008-05-06 16:48:30  IP: 59.46.120.*
    框架让让一部分人从繁琐的事物逻辑解放出来,但却让另外一大部分人变得迷茫和轻浮...
    #test 发表于2008-05-06 17:02:57  IP: 118.26.231.*
    对于 Symfony 中应用级别的 yml 文件(app.yml, validate.yml ...), 只要把 cache 关了就不用每次 cc 了,除非你每次调试都涉及到修改系统级别的 yml 文件,如 settings.yml, factory.yml ...
    #test 发表于2008-05-06 17:13:51  IP: 118.26.231.*
    Symfony 启动时初始化的性能损耗不大(和一般的MVC框架差不多),主要性能瓶颈在数据库层(默认是Propel)上,不过可以通过一些合适的缓存机制来进行弥补。关于读取配置文件的性能优化,可以在生产环境中使用插件 sfOptimizer 来把那些配置数据硬编码进行替换,速度就快多了。
    #Haohappy 发表于2008-05-07 04:04:20  IP: 77.56.157.*
    关于Zend_View,黑夜可以看到Zend_Layout和Zend_View的helper部分,应该算是很强大的。你所说的layout重用,是完全可以的。
    #heiyeshuwu 发表于2008-05-07 19:22:03  IP: 60.177.58.*
    to Jio:
    一般内部的MIS,OA系统来说,一般性能差一点可以忍受,对于互联网项目来说,并发访问大,性能非常重要,有时候缓存只是针对数据层来缓解,如果要从模板层缓解,那么这个成本就比较高,开发成本也提高,反而得不偿失。
    #heiyeshuwu 发表于2008-05-07 19:23:53  IP: 60.177.58.*
    to kenzen:
    就是说CakePHP把数据库操作当作缺省唯一操作,其实我们的数据来源不只是数据库,可能是文件系统、远程的XML、或者内存,CakePHP的设计方式更多是针对数据库结构的项目。
    #heiyeshuwu 发表于2008-05-07 19:25:28  IP: 60.177.58.*
    to test :
    就我使用来说,symfony确实怎么都无法关闭模板的cache功能,不知道是啥原因。
    至于symfony的Propel层是可以很轻易的替换,这个也是我很推荐Symfony的缘故,呵呵,很容易构造各种Model层,丝毫不影响。
    #heiyeshuwu 发表于2008-05-07 19:30:42  IP: 60.177.58.*
    to Haohappy:
    总体来说,感觉Zend framework 在view层做的不够好,只是作为一个官方框架来说,需要好好向其他框架学习,呵呵。
    #wqh_2008 发表于2008-05-07 20:03:35  IP: 121.23.165.*
    相互吸取精华——一个目标提高工作效率,缩短开发周期,提高软件质量、、、希望zend framework继续发展
    #三马 发表于2008-05-08 19:44:22  IP: 222.71.181.*
    symfony 的配置文件本身就是生成在cache里面的,读取以后才能运行,当然是无法关闭的。在dev的环境下缓存每次都会生成的,也不影响调试,不需要 symfony cc。

    路人,你的blog为什么在我的google reader里面没法显示新文章?别人有没有这个问题?
    #heiyeluren 发表于2008-05-09 17:05:40  IP: 125.122.48.*
    to: 三马
    俺不知道耶,呵呵,咔咔,也许是csdn的rss刷新的不及时。。。
    #普拉多 发表于2008-05-10 14:05:16  IP: 125.74.76.*
    普拉多 Praado: http://praado.vicp.net 专业的网页收藏夹

    每天我们上网都会碰到一些有用的、值得珍藏的网页链接地址(简称:网址),于是我们都用浏览器里的收藏夹来收藏。但是现在的电脑病毒相当的猖獗,电脑遭病毒之后,浏览器里收藏的网址几乎就是无法挽救,损失巨大!同时,现在的浏览器市场有多种多样的浏览器,在一台电脑上的浏览器里收藏了某一网址,可是到另外一台电脑上或另外一个浏览器时却又不能使用了,普拉多网页收藏夹可以帮助解决此问题。只要您注册个用户帐号,把自己喜欢的网页链接地址(简称:网址)保存在您的普拉多收藏夹里(http://praado.vicp.net),这样,无论您在任何一台电脑上,您都能轻松访问您的收藏夹,再厉害的病毒也无法侵害您收藏的网页链接地址。

    普拉多(http://praado.vicp.net)收藏夹支持多级管理和模糊搜索,大大方便了在信息泛滥时代对有用信息的有效管理。普拉多 Praado: http://praado.vicp.net 专业的网页收藏夹

    每天我们上网都会碰到一些有用的、值得珍藏的网页链接地址(简称:网址),于是我们都用浏览器里的收藏夹来收藏。但是现在的电脑病毒相当的猖獗,电脑遭病毒之后,浏览器里收藏的网址几乎就是无法挽救,损失巨大!同时,现在的浏览器市场有多种多样的浏览器,在一台电脑上的浏览器里收藏了某一网址,可是到另外一台电脑上或另外一个浏览器时却又不能使用了,普拉多网页收藏夹可以帮助解决此问题。只要您注册个用户帐号,把自己喜欢的网页链接地址(简称:网址)保存在您的普拉多收藏夹里(http://praado.vicp.net),这样,无论您在任何一台电脑上,您都能轻松访问您的收藏夹,再厉害的病毒也无法侵害您收藏的网页链接地址。

    普拉多(http://praado.vicp.net)收藏夹支持多级管理和模糊搜索,大大方便了在信息泛滥时代对有用信息的有效管理。

    发表评论  


    登录
    Csdn Blog version 3.1a
    Copyright © heiyeluren