AccessControl其实也就是 yii\filters\AccessControl Filter, 我们下面简写为 ACF 作为描述. ACF,访问控制过滤器,适用于简单的验证,面对的对象便是控制器的action.对于一些复杂的验证方式,我们后面会说到 Role Based Access Control (rbac),即基于角色的权限控制. 接下来我们就上面抛出的问题进行解析. 有同学要质疑了,创建新用户的操作,肯定要后台管理才可以进行操作,包括列表页等一系列操作,没登录肯定不能访问啊啊啊…
思路: 因为yii2框架没有像tp框架那样的setinc这样的累加函数,所以只能在每次累加之前查出当前的这个字段的值,然后写算法累加入库 例如:…
平时使用sql的时候可以如下添加默认字段flag: "select a.*,0 as flag from user_info a", 对于yii2框架则需要这样: $query =(new \yii\db\Query()) ->select([ 'r.real_name', new Expression("'身份证' id_no_type") ]) ->from(['r' => $this->tableName()])…
之前写过一篇Yii2框架RESTful API教程(一) - 快速入门,今天接着来探究一下Yii2 RESTful的格式化响应,授权认证和速率限制三个部分 一.目录结构 先列出需要改动的文件.目录如下: web ├─ common │ └─ models │ └ User.php └─ frontend ├─ config │ └ main.php └─ controllers └ BookController.php 二.格式化响应 Yii2 RESTful支持JSON和XML格式,如果想指定…
前不久做一个项目,是用Yii2框架写一套RESTful风格的API,就去查了下<Yii 2.0 权威指南 >,发现上面写得比较简略.所以就在这里写一篇教程贴,希望帮助刚接触Yii2框架RESTful的小伙伴快速入门. 一.目录结构 实现一个简单地RESTful API只需用到三个文件.目录如下: frontend ├─ config │ └ main.php ├─ controllers │ └ BookController.php └─ models └ Book.php 二.配置URL规则…
[PHP]Yii2框架的坑.md-/Users/zjh/Documents/我的文章/[PHP]Yii2框架的坑 html{font-family: sans-serif;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%}body{margin: 0}article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{displ…
@author 周煦辰 2016-03-21 这段时间新上了一个项目,使用的是Yii2框架.这里记录一下Yii2框架.Yii2-Mongo拓展.Yii2-Redis拓展等的安装流程.因为使用的系统是Windows,这里只说Windows下的安装方法,不过Linux下大同小异,甚至可以说比Windows更加简单. 安装Composer Composer是一个用于PHP包管理的工具.有了Composer,PHP开发的包管理就变得异常简单.对于PHP“悠久”的历史来说,包管理工具显得姗姗来迟.12年3…
注意:先把php.ini里面的php_openssl.dll扩展打开 1.下载yii2框架的文件包yii-advanced-app-2.0.7 2.打开路径为advanced下面的init.bat    0为低版本   1为高版本 3.安装完成以后配置域名以及路径front/web(先查看一下web里面是不是有index.php这个入口文件,如果有就表示安装成功) 这样就可以访问了!有没有很简单的感觉~ 如果有安装问题考虑一下是不是和composer有关系,安装了没有或者其他!…
nginx完美支持yii2框架 server {listen 80;server_name www.peita.net peita.net;# default_server;access_log /data/wwwlogs/www.peita.net_nginx.log combined;index index.html index.htm index.php;include /usr/local/nginx/conf/wordpress.conf;root /data/wwwroot/pet/…
YII2框架动态创建表模型 在YII2中,每个表对应一个model类 在开发过程中,我们在填写一个大型表单的时候,表单里有N个select下拉列表,每个下拉select来自于不同的表: 如果要在程序里用实例化引入这些model类,估计又是N个use引用,而且还需要写查询方法. 所以铁牛在使用过程中,就思考能否创建动态表模型来应用到我们的开发中. 代码见下: namespace backend\classes; //创建动态表模型 //在使用调用某些表数据的时候,勿需创建模型既可调用表数据,生成s…
写代码需要站在巨人的肩膀上,将主要精力集中在自己所需要实现的业务上面,避免反复搭建基础服务,重复造轮子.PHP框架就是这样一些巨人的"肩膀",使得我们"站"得更高,"看"得更远.像PHP本身有着不断迭代和升级的历史一样,PHP框架也有着自己的发展历史,从简单到复杂,从低级到高级,从面向过程到面向对象. 目前,比较流行的是以Laravel5.2+,Yii2,ZendFramework2.0,Symfony2等为代表的新一代框架.这一些框架,普遍和自…
前不久做一个项目,是用Yii2框架写一套RESTful风格的API,就去查了下<Yii 2.0 权威指南 >,发现上面写得比较简略.所以就在这里写一篇教程贴,希望帮助刚接触Yii2框架RESTful的小伙伴快速入门. 一.目录结构 实现一个简单地RESTful API只需用到三个文件.目录如下: frontend ├─ config │ └ main.php ├─ controllers │ └ BookController.php └─ models └ Book.php 二.配置URL规则…
Yii2框架默认採用了bootstrap作为CSS风格,各种视图类组件都如此.之前一直採用默认风格,并在必要的时候加入或者改动一下class来达到目的.但在改版Yii1.1的orange项目时.发现之前也是套的模板,事实上没有好好去理解一下bootstrap的那套规则.所以顺便大致梳理一下吧.以basic模板为例,对比http://v3.bootcss.com/css/ 上的内容进行. 看layouts/main.php.Yii2默认以HTML5文档类型进行的了.但语言默认是en-US.所以要改…
在安装yii2框架的时候,遇到一个很纠结的问题.就是当我把安装包下载下来之后,在公司的电脑安装可以正常,当我回家用自己的电脑安装就报错,提示 php.exe 不是内部或外部命令,也不是可运行的程序.这下,可难道我了,经过东哥指点,终于知道是怎么回事了.因为我装的环境是绿色版的,所以php.exe没有填 写在系统的环境变量里面.公司的电脑估计有程序自动的把php.exe的程序加在了环境变量里面了,经过查看还真的在里面.知道原因,那就实际的操作一下 吧. 报错提示: php.exe不是内部或外部命令…
反射简介 参考官方简介的话,PHP 5 具有完整的反射 API,添加了对类.接口.函数.方法和扩展进行反向工程的能力. 此外,反射 API 提供了方法来取出函数.类和方法中的文档注释. YII2框架中示例 对于yii2框架,应该都知道di容器,对于di容器的源码这里也主要讲明Container类,先看看平时怎么使用di,就用yii2框架中注释的示例代码来展示: container调用示例 namespace app\models; use yii\base\BaseObject; use yii…
说点闲话 距离上次写博客,已经有一年了.在动手写之前,总是带着深深的罪恶感.被它折磨许久,终于,还是,动手了. 值得庆祝的一件事:最近开始健身了.每天动感单车45分钟,游泳45分钟,真的是(生)爽(不)到(如)爆(死). 好了,扯淡完毕,步入正题. ActiveRecord被莫名写入? 准备知识 ActiveRecord的基本用法.如果不理解,可参考这里. 代码现场 /** * @property integer $id * @property string $name * @property…
Yii2框架是一个非常庞大但是并不臃肿的 php 框架.使用 Yii2 框架,可以极大的提升开发效率. 秉持着要知其然也要知其所以然的思想,花了一周的时间,看了 linuor 的 <深入理解Yii2.0> 根据我的理解梳理了一下 Yii2 框架的整体结构.此后简称框架. Yii 框架基础 此框架的三个基础概念: 属性 事件 行为 毕竟三生万物. 属性 一看到这个词可能很迷惑,那么什么是属性呢. 比如说,你现在正在玩一款角色扮演的游戏,角色双手分别有一把 十方大剑 ,一个 十方盾牌. 那么从面向…
现象 在跑 edu_ocr_img 表的归档时,每跑几万个数据,都会报一次内存耗尽 PHP Fatal error:  Allowed memory size of 134217728 bytesexhausted (tried toallocate 135168 bytes) 跟踪代码发现,是在插入时以下代码造成的: EduOCRTaskBackup::getDb()->createCommand()->batchInsert(EduOCRTaskBackup::tableName(), $…
AOP实践:YII2框架本身拥有一个功能,叫做行为.它可以动态的为当前的类附加额外的功能,但这种功能在代码层级结构是静态的,有侵入性的. 下面以YII2框架集成go!aop库为例,介绍在YII2中如何实现AOP编程.(go!aop简介,可以参考go!aop的官网.) 由于YII框架拥有自己的类加载器,所在集成go!aop的时候,不能正常的工作,所以要将其禁用掉,使用composer提供的类加载器.如下代码所示(这里使用YII2高级应用模板): 1.找到  spl_autoload_registe…
在项目实施过程中,往往把一个大项目进行分拆成几个独立的项目,项目用完全独立的域名和文件,可以放到不同的服务器上的独立分项目. 几个子项目共用一个登录点. 原理简单来说就是服务端session 共享, 客户端跨域cookies. 在Yii2框架下只需要几部的配置就可以了: 在几个子项目下,找到config文件下的配置文件main.php 共同配置如下代码: $host = explode('.', $_SERVER["HTTP_HOST"]); if (count($host) >…
ACF ( Access Control Filter) ACF ( Access Control Filter)官网的解释就是一个可以在模型或控制器执行行为过滤器,当有用户请求时,ACF将检查access rules (权限规则),在决定是否让这个用户请求这个行为. 在控制器中使用 public function behaviors() { return [ 'verbs' => [ 'class' => VerbFilter::className(), 'actions' => […
-->安装PHP环境Wamp集成环境,XAMMP等.-->安装Composerhttp://pan.baidu.com/s/1i3fejjvPS:安装过程中的有一个手动操作项选择php.exe的所在目录D:\wamp\bin\php\php5.5.12\php.exe-->下载YII2的框架基本版 http://pan.baidu.com/s/1qWkV344高级版 http://pan.baidu.com/s/1i3B8ezz这里有两个模板:Yii2的基本应用程序模版和Yii2的高级应…
top:环境MacBook 1.通过composer 安装yii2 [yii2需要php的PDO和pdo_mysql扩展,需要确认已安装] a. 首先需要配置composer:我使用的是阿里云的镜像:https://developer.aliyun.com/composer具体配置参照阿里云的文档,具体使用全局composer命令百度 or Google b. 安装yii2:yii2china.com上的文档通过composer安装yii2的命令是:composer create-project…
前言概述: 我是一名PHP开发工程师,最拿手的是版本2.0的Yii框架,在培训班里老师没教我Yii框架,只是由于我弟弟(同行)擅长Yii框架,所以我用得最多的就是Yii2.0,后台我学了ThinkPHP框架的3.2和5.0版本,虽然还算不上熟练,但是多少会用,自己分别用tp3.2和5.0做了两个具有RBAC权限验证功能(3.2是Auth)和基本的增删查改功能的网站后台.至于Yii2,这三年多来,我用它做了多个网站,例如我的个人网站. 框架之争: 很多php初学者都不知道选哪个框架来深入学习.据我…
vendor\overtrue\wechat\src\Foundation\Application.php registerBase 方法 在初始化属性时 $this['cache'] = function () { // return new FilesystemCache(sys_get_temp_dir()); // win 下获取的是 c:\window 没有权限 位置太敏感 加权限什么的就算了吧 return new FilesystemCache(\Yii::$app->cache-…
以yii2为例 打包文件过程比较简单,但打包好以后简单测试yii命令,一直报错: PHP Fatal error: Uncaught yii\base\InvalidParamException: The directory does not exist: phar:///Users/jimmy/PHP/Library/yii2-advanced/yii2.phar/console in phar:///Users/jimmy/PHP/Library/yii2-advanced/yii2.pha…
首先我们要从model层开始写起,主要是为了创建验证规则,还有图片上传的路径以及图片的命名规则(UploadForm.php) 接下来我们要在控制器层写好业务逻辑,就是什么情况下直接在调用model层进行上传,一般失败的时候或者超出自己规定之外的都会跳转页面(UploadController.php) 最后,我们来定义一下表单页面!因为model的验证规则其实已经在rule里面写好了,所以用yii2自带的表单更好!(upload.php) 另外用yii2自带的表单的时候一定要注意一下几点: 1.…
Yii2 本身已经引用了'yii\bootstrap\BootstrapAsset',所以使用bootstrap 非常简洁. 1 在PHP页面引用命名空间 use app\assets\AppAsset; 2 可以直接在PHP页面书写要弹出的iframe的div;在此出可以设置弹窗的宽高,位置,对话框标题等 <div class="modal fade" id="myModalpreview" tabindex="-1" role=&quo…
导出结果: 首先,到官网下载PHPExcel插件包,下载后文件夹如下: 将Classes文件夹放入到项目公共方法内. 新建控制器(访问导出的方法):EntryandexitController <?phpnamespace app\modules\reportmanagement\controllers;use Yii;use yii\web\Controller;use app\modules\reportmanagement\components\Summaryexport;class En…
框架目录结构 [目录] backend——后台web程序 common——公共的文件 console——控制台程序 environments——环境配置 frontend——前台web程序 [文件] .gitignore ——git版本控制中忽略的文件和目录,如果你有一些你不想要的文件到你的源代码里面就把它添加到这个文件中. composer.json——这个下面会描述 init——在Composer里面所描述初始化脚本 init.bat——和上面一样,不过是Windows下面的 LIENSE.…