Yii框架应用组件用法实例分析_php实例

来源:脚本之家  责任编辑:小易  

1.YiiYii是一个基于组件的高性能的PHP的框架,用于开发大规模Web应用。Yii采用严格的OOP编写,并有着完善的库引用以及全面的教程。从MVC,DAO/ActiveRecord,widgets,caching,等级式RBAC,Web服务,到主体化,I18N和L10N,Yii提供了今日Web 2.0应用开发所需要的几乎一切功能。而且这个框架的价格也并不太高。事实上,Yii是最有效率的PHP框架之一。2.CodeIgniterCodeIgniter是一个应用开发框架—一个为建立PHP网站的人们所设计的工具包。其目标在于快速的开发项目:它提供了丰富的库组以完成常见的任务,以及简单的界面,富有条理性的架构来访问这些库。使用CodeIgniter开发可以往项目中注入更多的创造力,因为它节省了大量编码的时间。3.CakePHPCakePHP是一个快速开发PHP的框架,其中使用了一些常见的设计模式如ActiveRecord,Association Data Mapping,Front Controller以及MVC。其主要目标在于提供一个令任意水平的PHP开发人员都能够快速开发web应用的框架,而且这个快速的实现并没有牺牲项目的弹性。4.PHPDevShellPHPDevShell是一个开源(GNU/LGPL)的快速应用开发框架,用于开发不含Javascript的纯PHP。它有一个完整的GUI管理员后台界面。其主要目标在于开发插件一类的基于管理的应用,其中速度、安全、稳定性及弹性是最优先考虑的重点。其设计形成了一个简单的学习曲线,PHP开发者无需学习复杂的新术语。PHPDevShell的到来满足了开发者们对于一个轻量级但是功能完善,可以无限制的进行配置的GUI的需求。5.AkelosAkelos PHP框架是一个基于MVC设计模式的web应用开发平台。基于良好的使用习惯,使用它可以完成如下任务:方便的使用Ajax编写views通过控制器管理请求(request)及响应(response)管理国际化的应用使用简单的协议与模型及数据库通信你的Akelos应用可以在大多数共享主机服务供应方上运行,因为Akelos对服务器唯一的要求就是支持PHP。因此,Akelos PHP框架是理想的用于发布单独web应用的框架,因为它不需要非标准PHP配置便能运行。6.SymfonySymfony是一个用于开发PHP5项目的web应用框架。这个框架的目的在于加速web应用的开发以及维护,减少重复的编码工作。Symfony的系统需求不高,可以被轻易的安装在任意设置上:你只需一个Unix或Windows,搭配一个安装了PHP5的网络服务器即可。它与差不多所有的数据库兼容。Symfony的价位不高,相比主机上的花销要低得多。对于PHP开发者而言,使用Symfony是一件很自然的事,其学习曲线只有短短一天。干净的设计以及代码可读性将缩短开发时间。开发者可以将敏捷开发的原理(如DRY,KISS或XP等)应用在其中,将重点放在应用逻辑层面上,而不用花费大量时间在编写没完没了的XML配置文件上。Symfony旨在建立企业级的完善应用程序。也就是说,你拥有整个设置的控制权:从路径结构到外部库,几乎一切都可以自定义。为了符合企业的开发条例,Symfony还绑定了一些额外的工具,以便于项目的测试,调试以及归档。7.PradoPRADO团队由一些PRADO狂热者组成,这些成员开发并推动PRADO框架以及相关项目的进行。PRADO的灵感起源于Apache Tapestry。从04年开始,PRADO成为SourceForge上的开源项目之一。这个项目目前进展到了3.x版本。8.Zend作为PHP艺术及精神的延伸,Zend框架的基础在于简单,面向对象的最佳方法,方便企业的许可协议,以及经过反复测试的快速代码库。Zend框架旨在建造更安全,更可靠的Web 2.0应用及web服务,并不断从前沿厂商(如Google,Amazon,Yahoo,Flickr,StrikeIron和ProgrammableWeb等)的API那里吸收精华。9.ZooPZoop PHP框架,意为Zoop面向对象的PHP框架。这是个稳定,可伸缩并可移植的框架。从诞生到现在的5年间,已经在不少产品开发中被使用。Zoop是一个快速,有效并干净的框架。它的伸缩性很好,你可以只安装你需要的功能。对代码并不很熟悉的开发者也可以通过Zoop快速的开发安全的web应用。熟练的开发者则可以更加将Zoop的弹性利用到极致。Zoop建议将display,logic以及数据层(MVC)分开使用。Zoop由很多组件和项目集合而成,其中包括smarty和prototype AJAX框架,PEAR模块等。高效的核心组件提供了很多你原本需要自己编码来实现的功能。Zoop内置的纠错功能可以通过配置实现生产环境下的错误日志生成,这个错误日志提供了很多信息,可读性很高,可以更轻易的寻找并排除错误。Zoop的一个特别之处在于其GuiControls,在PHP中是一个相当革新的想法。它提供了很多form widgets与验证完整的集合到一起,并形成了一个可以轻松打造个性化GuiControls的框架。10.QPHPQPHP,意为快速PHP,它是一个与ASP.NET类似的MVC框架。基本上它是这样一个情况:整合了Java和C#的美感除去了在其他PHP框架中使用的Perl形式的意义含糊的语言大量基于OOP的概念www.zgxue.com防采集请勿采集本网。

本文实例讲述了Yii框架应用组件用法。分享给大家供大家参考,具体如下:

应用组件

Yii容易学习和使用。只需要知道PHP和面向对象编程,便可以很快上手,而不必事先去学习一种新的架构或者模板语言。用Yii的开发速度非常之快,除框架本身之外,需要为应用所写的编码极少。造就了

应用主体是服务定位器, 它部署一组提供各种不同功能的 应用组件 来处理请求。 例如,urlManager组件负责处理网页请求路由到对应的控制器。 db组件提供数据库相关服务等等。

我既然要用这个框架,我在第一次使用的时候,肯定就知道能不 能在当前环境上使用了,为什么要每次都要检测呢。当时我就说过,TP为用户做了太多事情。比如旧版本中的TopN函数。Yii的组件思路是非常不错的,

在同一个应用中,每个应用组件都有一个独一无二的 ID 用来区分其他应用组件, 你可以通过如下表达式访问应用组件。

可能 是优先加载的原因吧,优先级没有封装在组件里的样式优先级别高吧

\Yii::$app->componentID

Yii容易学习和使用。只需要知道PHP和面向对象编程,便可以很快上手,而不必事先去学习一种新的架构或者模板语言。用Yii的开发速度非常之快,除框架本身之外,需要为应用所写的编码极少。造就了Yii是最高效

例如,可以使用 \Yii::$app->db 来获取到已注册到应用的 DB connection, 使用 \Yii::$app->cache 来获取到已注册到应用的 primary cache

Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助

第一次使用以上表达式时候会创建应用组件实例, 后续再访问会返回此实例,无需再次创建。

应用组件可以是任意对象,可以在 应用主体配置配置 yii\base\Application::$components 属性。 例如:

[ 'components' => [ // 使用类名注册 "cache" 组件 'cache' => 'yii\caching\ApcCache', // 使用配置数组注册 "db" 组件 'db' => [ 'class' => 'yii\db\Connection', 'dsn' => 'mysql:host=localhost;dbname=demo', 'username' => 'root', 'password' => '', ], // 使用函数注册"search" 组件 'search' => function () { return new app\components\SolrService; }, ],]

信息: 请谨慎注册太多应用组件, 应用组件就像全局变量, 使用太多可能加大测试和维护的难度。 一般情况下可以在需要时再创建本地组件。

引导启动组件

上面提到一个应用组件只会在第一次访问时实例化, 如果处理请求过程没有访问的话就不实例化。 有时你想在每个请求处理过程都实例化某个组件即便它不会被访问, 可以将该组件ID加入到应用主体的 bootstrap 属性中。

你还可以使用闭包来引导启动自定义的组件。不需要直接返回一个实例化的组件。 在应用主体 yii\base\Application 实例化后,闭包也会被调用。

例如, 如下的应用主体配置保证了 log 组件一直被加载。

[ 'bootstrap' => [ 'log', function($app){ return new ComponentX(); }, function($app){ // 可以写自定义的代码 return; } ], 'components' => [ 'log' => [ // "log" 组件的配置 ], ],]

核心应用组件

Yii 定义了一组固定ID和默认配置的 核心 组件, 例如 request 组件 用来收集用户请求并解析 路由db 代表一个可以执行数据库操作的数据库连接。 通过这些组件,Yii应用主体能处理用户请求。

下面是预定义的核心应用组件列表, 可以和普通应用组件一样配置和自定义它们。 当你配置一个核心组件,不指定它的类名的话就会使用Yii默认指定的类。

更多关于Yii相关内容感兴趣的读者可查看本站专题:《Yii框架入门及常用技巧总结》、《php优秀开发框架总结》、《smarty模板入门基础教程》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总

希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。

属性(properties)事件(events)行为(behaviors)单独或者组合使用这些特征,可以让yii框架的类变得更加易用和可定制。举个例子,引入一个用户交互组件[yii\\jui\\DataPicker\\data picker wigets],可以很轻松的在视图中生成一个日期选择控件(jquery ui date picker).use yii\\jui\\DatePicker;echo DatePicker:widget内容来自www.zgxue.com请勿采集。


  • 本文相关:
  • 从零开始学yii2框架(六)高级应用程序模板
  • yii2高级应用之自定义组件实现全局使用图片上传功能的方法
  • yii framework框架使用yiic快速创建yii应用之migrate用法实例详解
  • yii framework框架教程之使用yiic快速创建yii应用详解
  • yii2框架redis基本应用示例
  • yii框架学习笔记之应用组件操作示例
  • yii框架常见缓存应用实例小结
  • yii framework框架中事件和行为的区别及应用实例分析
  • 再谈yii framework框架中的事件event原理与应用
  • yii 框架应用(applications)操作实例详解
  • php 遍历目录,生成目录下每个文件的md5值并写入到结果文件中
  • php判断用户是否已经登录(跳转到不同页面或者执行不同动作)
  • centos 上搭建 php7 开发测试环境
  • thinkphp框架实现生成条形码的方法示例
  • php中模糊查询并关联三个select框
  • php中使用curl发送get/post请求上传图片批处理功能
  • 老生常谈php面向对象之命令模式(必看篇)
  • php分享朋友圈的实现代码
  • 阿里云php sms短信服务验证码发送方法
  • php中的socket_read和socket_recv区别详解
  • Yii框架预定义的组件有哪些
  • yii框架如何访问api
  • 关于YII框架使用的问题(小白问题,高分求助!)
  • php Yii 框架问题!
  • YII 框架的优点有哪些
  • YII框架和THINKPHP的区别
  • yii框架,MBmenu组件,的CSS样式修改了为什么不生效?
  • YII 框架的优点有哪些
  • java框架有哪些常用框架?
  • 用yii2.0高级组件实现更多高级功能
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全php基础php技巧php实例php文摘php模板首页php编程php实例yii框架入门及常用技巧总结php优秀开发框架总结smarty模板入门基础教程php面向对象程序设计入门教程php字符串(string)用法总结php+mysql数据库操作入门教程php常见数据库操作技巧汇总从零开始学yii2框架(六)高级应用程序模板yii2高级应用之自定义组件实现全局使用图片上传功能的方法yii framework框架使用yiic快速创建yii应用之migrate用法实例详解yii framework框架教程之使用yiic快速创建yii应用详解yii2框架redis基本应用示例yii框架学习笔记之应用组件操作示例yii框架常见缓存应用实例小结yii framework框架中事件和行为的区别及应用实例分析再谈yii framework框架中的事件event原理与应用yii 框架应用(applications)操作实例详解php 遍历目录,生成目录下每个文件的md5值并写入到结果文件中php判断用户是否已经登录(跳转到不同页面或者执行不同动作)centos 上搭建 php7 开发测试环境thinkphp框架实现生成条形码的方法示例php中模糊查询并关联三个select框php中使用curl发送get/post请求上传图片批处理功能老生常谈php面向对象之命令模式(必看篇)php分享朋友圈的实现代码阿里云php sms短信服务验证码发送方法php中的socket_read和socket_recv区别详解php获取数组长度的方法(有实例)微信公众平台实现获取用户openid教你如何使用php session使用php生成二维码的两种方法(带php发送get、post请求的6种方法简php中把stdclass object转array的微信公众平台网页授权获取用户基laravel框架数据库curd操作、连贯php删除数组中空值的方法介绍php从数组中删除元素的四种方法实在laravel5中正确设置文件权限的方法php获取汉字首字母的函数使用laravel和echarts实现折线图效果的例thinkphp简单遍历数组方法分析小程序微信退款功能实现方法详解【基于thphp中file_get_contents函数抓取https地址php实现银联商务公众号+服务窗支付的示例深入php与浏览器缓存的分析php如何获取当前主机、域名、网址、路径、php使用gifencoder类处理gif图片实例
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved