yii框架是一款基于组件的php框架,包括输入验证、输出过滤、sql注入和跨站点脚本等,只加载您需要的功能,可帮助您开发清洁和可重用的代码。具有快速、安全、专业的特点。适用于开发 WEB 2.0 应用的 PHP 框架,您值得拥有。
yii框架特色
1、运用了PHP命名空间、Trait、 PSR标准 、Composer和Bower包管理器, 等新技术新标准。
2、实现了 依赖注入和依赖注入容器 以及 服务定位器(Service Locator) 等新架构新模式。
3、Yii2.0格外重视安全性,采取一系列手段有效防止SQL注入、XSS攻击、CSRF攻击、cookie篡改等。
广泛支持各类SQL和NOSQL数据库,高效实现了Active Record等数据库查询、操作界面,提供数据库迁移、复制、 读写分离等功能。
4、只需极少量的代码就可以实现完全符合标准的RESTful API。
5、支持各种粒度、介质的缓存机制。
6、提供多种认证和授权手段基于cookie和基于令牌的认证,RBAC等权限控制手段,支持OpenID,OAuth1,OAuth2等。
7、支持Bootstrap,jQuery UI,提供了丰富的Widget挂件供使用。
8、完善的国际化支持,提供符合 ICU标准 的时间、复数等格式化工具和消息翻译、视图翻译等功能。
9、除了支持Twig和Smarty 2个主流的PHP模版引擎外,开发者还可以自己写扩展支持其他引擎。
10、为苦命码农提供了 Yii调试工具条 和 Gii代码生成器 以及 文档生成器 等高效开发工具。
11、集成了 Codeception 和 Faker,并与DB Migration相结合,提供了一个fixture框架,方便测试开发。
yii框架安装教程
前提:非常重要,你的php版本必须是php5.4以上
1.首先需要下载应用模板,分为基础模板和高级应用模板,这里我以高级应用模板为例子 :
下本站提供的的高级应用模板,或上官方下载(https://github.com/yiisoft/yii2-app-advanced )
2.下载完之后解压放在www目录我是放在 D:wampwwwyii2advanced
cmd dos命令进入这个D:wampwwwyii2advanced下:
3.运行 php -r "readfile('https://getcomposer.org/installer');" | php
4.这是就在D:wampwwwyii2advanced目录下面下载了一个composer.phar文件,有了这个文件就可以执行php composer.phar命令了,提示
5.运行php composer.phar global require "fxp/composer-asset-plugin:1.0.0-beta3"这个命令,这个命令式升级模板应用的,一定要执行,否则访问会出错,如果 报 Nothing to install or update这个错误,就跳过此步骤,无需更新了
6.准备所有插件!!非常重要,少了这步一切都会失败
执行命令:php composer.phar global require "fxp/composer-asset-plugin:1.0.0"
7.安装我们的yii2的应用:
执行命令:composer create-project --prefer-dist --stability=dev yiisoft/yii2-app-advanced ../yii2test 就会在上一层目录下生成yii2test应用
请注意,您可能会被提示安装过程中输入你的 GitHub 的用户名和密码。这是正常的。只要输入它们并继续。如果你没有git账号,注册一个就可以了,但是安装的时候可能需要退出cmd,重新操作。
8.最后一步:初始化我们的应用,初始化是在你创建的yii2test目录下 执行cmd init命令 选0 y
ok,这么我们的yii2的安装就完成了,进入测试目录:
localhost/yii2/yii2test/frontend/web/index.php
yii框架使用教程
使用命令行工具 yiic 创建 web 应用
Yiic 是一个命令行工具,通过它,你可以通过简单的使用一条命令,来创建一个完整的应用。
YiiRoot/framework/yiic webapp WebRoot/testdrive
比如:C:\wamp\www\yii\framework>yiic.bat webapp c:\wamp\www\abc
这条命令在 www 目录下面自动为你创建了一个名为 abc 的 Yii 的代码框架。你可以通过下面这个 URL 在本地访问这个刚刚创建的应用。
http://localhost/abc/index.php
下图就是我们刚刚创建的 Web 应用
图 2. 使用 yiic 创建的 Web 应用
实现表的 CRUD 功能
首先,我们需要实现对文件信息的增删改查,即对表 file 中的数据进行操作和维护。
1. 连接数据库:
将准备好的数据库文件 pii.sqlite 放置在 C:\wamp\www\pii\protected\data 目录下。
在文件 C:\wamp\www\pii\protected\config\main.php 中,定义使用的数据库文件。
清单 2. 定义数据库文件
'db'=>array(
'connectionString' => 'sqlite:'.dirname(__FILE__).'/../data/pii.sqlite',
),
2. 配置 Gii 代码生成器
Gii 是一个强大 web 应用代码生成器,可以取代或者简化开发者的工作量,自动生成代码实现标准的功能模块。在使用前,我们需要对文件 C:\wamp\www\pii\protected\config\main.php 做些定义。
清单 3. 配置 Gii 代码生成器
'import'=>array(
'application.models.*',
'application.components.*',
),
'modules'=>array(
'gii'=>array(
'class'=>'system.gii.GiiModule',
'password'=>'password',
),
),
定义之后,我们可以通过 URL http://hostname/pii/index.php?r=gii 来访问 Gii。
图 3. Gii 代码生成器
3. 使用 Gii 为数据表建模
在 Gii 中,我们将使用 Model Generator 为数据库中的表建模。我们选择 Model Generator 之后,可以看到下面的页面。
图 4. 使用 Model Generator 生成模块代码
预览并生成代码,这个生成器会在 protected/models 生成模块文件 File.php。
4. 为表创建 CRUD 代码
有了模块文件,我们需要使用 Gii 中的 Crud Generator 为这个模块生成 CRUD 代码。
图 5. 使用 CRUD 生成器生成代码
这时,通过 http://localhost/pii/index.php?r=file,你就可以看到 File 的维护界面了。
图 6. 生成的 Files 维护界面
使用同样的方法,我们也可以为明细表 pii 创建了相应的 php 文件和维护页面。
5. 将创建的功能加入到 Web 应用中
下面,我们要介绍如何把刚刚创建的功能加入到 Web 应用中。首先,我们需要对文件 C:\wamp\www\pii_OK\protected\views\layouts\main.php 进行一点修改。
在这个文件里,我们可以根据自己的需要来定制将要显示的页面。比如,看下面的代码,我们做了两处改动:第一是取消了 Home 和 Contact 两个 tab 的显示,我们通过加“//”注释了这两行代码。第二是增加了两个 tab:Files 和 PIIs,新增加的两行代码实现了显示上面步骤里我们创建的两个页面。
清单 4. 自定义标签页
widget('zii.widgets.CMenu',array(
'items'=>array(
// array('label'=>'Home', 'url'=>array('/site/index')),
array('label'=>'Files', 'url'=>array('/file/admin')), // new added
array('label'=>'PIIs', 'url'=>array('/pii/admin')), // new added
array('label'=>'About', 'url'=>array('/site/page', 'view'=>'about')),
// array('label'=>'Contact', 'url'=>array('/site/contact')),
array('label'=>'Login', 'url'=>array('/site/login'),
'visible'=>Yii::app()->user->isGuest),
array('label'=>'Logout ('.Yii::app()->user->name.')',
'url'=>array('/site/logout'), 'visible'=>!Yii::app()->user->isGuest)
),
)); ?>
现在来看看效果吧。果然,Home 和 Contact 页面不见了,取代它们的是 Files 和 PIIs 页面。
图 7. 加入了 Files 和 PIIs 的 Web 应用
通过这一步,我们将新创建的两个数据表 DRUD 的应用就添加到我们的网页中了。我们已经可以直接通过这两个页面来维护表里面的数据了。
更新日志
错误7670:添加# Yii 网络 urlnormalizer规范要求并没有尾随斜线(rob006,cronfy,klimov paul)
错误7670:UrlNormalizer说#规范要求并没有尾随斜线(rob006,cronfy,klimov paul)
错误9027:网站的# Yii固定子类 uploadedFile回报父母的实例在调用后(andrewnester)
错误9101:固定# Yii Web视图网络财富管理:一方面:appendtimstamp财产(githubjeka,silverfire)
错误9277:固定# Yii 控制台控制器 assetcontroller失去目标捆绑自定义选项(petrabarus,klimov paul)
错误9561:#固定cangetproperty()和cansetproperty()返回Yii 数据库 baseactiverecord假属性(klimov paul、镍三)
错误10358:在# yii.js Ajax预固定的比赛条件(silverfire)
错误10563:#固定形成文件下载内容配置头(samdark)
错误10567:固定# Yii assetcontroller控制台控制器失去束重写配置,这使得它的外部(他保罗)
错误10587:新#用控制器实例没有响应::event_after_send处理器(samdark,andrewnester)
错误10681:#恢复固定beforevalidate事件调用yii.activeform.js(silverfire)
错误11347:固定# Yii 工具 pjax::registerclientscript()通过自定义容器的pjax js插件(silverfire)
yii2.0是目前软件的最高版本,而1.1版是上代的老版本,现在处于维护状态。2.0版是一个完全重写的版本,采用了最新的技术和协议,包括依赖包管理器(Composer)、PHP 代码规范(PSR)、命名空间、Traits(特质)等等。yii2.0版代表了最新一代框架,是未来几年中我们的主要开发版本。