首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Yii2 进阶篇

过滤器 什么是过滤器 过滤器是控制器动作执行之前或之后需要执行的代码。该代码以对象的形式执行,则应该使用类的方式定义并申明。 过滤器本质上是一种特殊的行为。...为什么使用过滤器 通常情况下,过滤器将代码绑定到所有的操作上,也就是说,每一个操作的执行,都需要先或后执行过滤器,所以,可以用来执行权限检测、缓存处理等事情 在哪里使用过滤器 在控制器中,定义: public.../或 yii\base\ActionFilter::afterAction() 方法来创建动作的过滤器 定义在beforeAction()中的代码会在操作执行之前执行 定义在afterAction(...)中的代码会在操作执行之后执行 如:创建一个过滤器,记录操作执行的时间 首先应该创建一个过滤器,比如在frontend 应用中创建一个 filters目录,专门用来存储过滤器,然后创建TimeFilter.php...过滤器应用.png 在beforAction中,如果返回true表示放行,操作继续执行,如果返回false,表示停止,操作不再执行。 加载过滤器 ?

2K31

yii2使用Migrations为整个数据库表创建迁移

在if判断里面有做了六件事,我们这次仅针对于创建的时候修改,找到else if的preg_match('/^create_(.+)$/', $name, $matches)这个条件里面,以下是我的代码:...这里为什么要新增条件 WHERE Key_name'PRIMARY',因为当你有个自增主键的时候,他也会输出出来,但这个自增主键并不是我们想要的索引字段,所以我们使用条件将他干掉。...以上步骤都完成以后,我们就开始新建console命令啦~ 作者创建的控制器是:TimerController.php,如果你们有控制器可以直接使用,再新建一个Model文件,并且将引入Model关键词...(先进入到你的程序根目录,有yii.bat的那里) windows的DOC命令:/你的文件夹路径/yii timer(控制器名)/migrationdb(方法名)。 Linux命令:老子不会。...如果报表已存在的错误的话,那么就是你没有将表删完,Migrations创建迁移 跟 其他操作的时候,会自动新增一张为 migrtions的表,这张表是记录的。

1.9K31
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    怎样选择适合自己php框架

    为什么选择使用PHP框架? 是什么让我们使用框架而不是使用纯粹的php原生语言来开发我们的应用?使用框架的一些好处如下: PHP框架使开发过程更快,例如,你不必为从数据库中查询数据去写复杂的查询语句。...以上的好处很显著以致于不容忽视。...如果你正在寻找一个模块化的框架,就去选择Symfony,其他的话,Laravel和Yii都是很好的选择。 安装 这三个框架提供了许多安装程序。...另一方面,如果你不认识任何PHP框架,又想尽快上手,那么可以考虑Laravel。Laravel有一个简单的学习曲线,你会发现网上很多教程来帮助你开始。...ajax支持 因为提供更快的操作,它是开发实时应用的最好选择 高度可扩展 错误处理强大 有利于开发Restful风格Web服务 有强大的社区支持和丰富的学习资源 Laravel: 最受欢迎的框架 支持Composer

    4.8K20

    如何选择PHP框架?

    目前,有82%的网站,它们的服务器端使用的编程语言就是 PHP。 本文将介绍三种最流行的PHP框架:Symfony, Laravel和Yii。...为什么要选择PHP框架? 为什么要使用框架而不是原生PHP来开发你的应用程序?下面是使用框架的一些好处: PHP框架令开发更快。...Symfony使用Twig,所以如果你在过去已经用过Symfony,你可能需要用Twig来开发你的一个Yii项目。 这里没有明确的哪个框架更好。三种框架使用模板引擎以便写出更好的前端编码和维护。...如果你正在寻找一个模块化的框架,就选symfony吧,或者Laravel,Yii也是很不错的选择。 安装 这三个框架提供了多个安装程序。...不过,Symfony和Yii都是优秀的框架。Symfony是行之有效的,有一个更大、更成熟的社区。Yii是一个独特的框架,它是强大的,安全的,并能完成工作。

    7.8K90

    干货 | Elasticsearch 6个不明显但很重要的注意事项

    3.1 TF计算 例如,如果我们有两个文档: 文档1:To be or not to be, that is the question. 文档2:To be. I am. You are....that is the question 2)它也可以存储为: 如果应用了停用词过滤器,它将删除所有常用语言术语,例如:to,be,or,not,that,is,the。...请记住,分片不能进一步划分,并且始终驻留在单个节点上。这样大小的分片也可以很容易地移动到其他节点,或者如果需要,在集群内复制。具有此分片容量可以为您提供速度和内存消耗之间的折衷值。...针对大数据量级规模的集群,(建议)每个集群中应至少包含3个候选主节点。系统会从所有符合主节点的节点中,选择一个节点作为主节点,其作用是执行群集范围的操作。另外两个节点纯粹是为了获得高可用性。...【官方文档警告】: 将过多的仅协调节点添加到群集会增加整个群集的负担,因为所选主节点必须等待来自每个节点的群集状态更新的确认! 不应过分夸大仅协调节点的好处 - 数据节点可以愉快地用于相同的目的。

    2.2K30

    第16篇-关于Elasticsearch的6件不太明显的事情

    例如,如果我们有两个文档: To be or not to be, that is the question. To be. I am. You are. He, she is....它可以存储为 question 如果应用停用词过滤器,该过滤器会删除所有常见语言术语,例如:to,be,或not,即the。 所以这是索引部分。但是,搜索文档时将应用相同的步骤。...请记住,分片不能进一步划分,并且始终位于单个节点上。这样大小的分片也可以很容易地移动到其他节点,也可以在集群中复制(如果需要)。具有这种分片容量可以为您建议在速度和内存消耗之间进行权衡。...仅协调节点用作客户端请求的负载平衡器。他们知道特定文档可以驻留在哪里,并且仅向这些节点提供搜索请求。然后他们对接收到的结果执行分散和分类操作。对它们的要求是低磁盘,中或高RAM和中或高CPU。...为了拥有仅协​​调节点,您必须禁用该节点上的所有其他角色。 现在是流行的问题。配置大型集群的首选方式是什么?

    2.4K00

    Yii2验证器(Validator)用法分析

    如果需要验证的属性为多个可用数组,如果为一个属性可用字符串也可用数组来表示。 每个属性都可以有多个验证器,如上面的password使用了 required和string两个验证器。...(yii\validators\UrlValidator) 对值进行函数处理: filter——过滤器 这个是对属性值进行加工处理的。如对属性值加前缀、替换特定的字符串等等。...: class RegexValidator extends Validator { /** * @var string|array 所要采用的验证方法,可以为string,也可以为如果个方法组成的...有三种方式可以方便您调用: 1.用在数据模型model的rules方法里面: ['name', RegexValidator::className(), 'method' => 'lowerchars'...可以单个引用,也可以为数组,当为数组时对应的错误信息'message'也得为数组,而且错误信息与之对应。

    2.9K31

    详解yii2实现分库分表的方案与思路

    会基于覆写的tableName来决定表名是什么。...有2个思路解决M库问题,1种是yii2通过改造直连多个地址进行访问多库,1种是yii2仍旧只连1个地址,而这个地址部署了dbproxy,由dbproxy根据你访问的库名代理连接多个库。...如果此前没有熟练的运维过dbproxy,并且php集群规模没有大到单个mysql实例客户端连接数过多拒绝服务的境地,那么第1种方案就可以解决了。否则,应该选择第2种方案。...为什么数量都是2指数,是因为如果面临扩容需求,数据的迁移将方便一些。...总结 以上就是关于yii2实现分库分表的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

    1.8K30

    yii2 modal弹窗之ActiveForm ajax表单异步验证

    前面我们讲述了yii2中如何使用modal以及yii2 gridview列表内更新操作如何使用modal的问题,本以为modal要告一段落可以开始新的话题了,但是实际问题往往超乎想像,这不modal弹窗提交的表单说是怎么验证的问题又出来了...后面若是有我再把话改回来。 yii2中,ActiveForm默认做了客户端验证,但是表单的提交,却不是无刷新的。也就是常常看到的表单提交后页面会刷新。..._modal_activeform_ajax.html // 看主要的验证操作,该操作是表单字段失去焦点时异步验证,同时如果直接提交表单,也会先执行该操作进行验证 public function actionValidateForm...一般而言,上面的操作没有问题,但是总是会有特殊的人遇到特别的问题,问题突出,我们下面以一个案例进行说明: 有小伙伴遇到要验证的字段是unique类型,更新操作的时候,这可傻了眼了,怎么都处理不好了,我们下面给出一个针对字段...document-nav-form', 'enableAjaxValidation' => true, 'validationUrl' => $validationUrl, ]); 上面代码的意思很简单,如果是更新操作

    1.5K21

    YII2通过composer优化vendor

    本文讨论通过composer工具安装Yii2框架并优化Vendor过程中遇到的问题,约定读者对composer基本原理有一定了解,并且有安装Yii2框架的实际经验。...框架安装问题 在Yii2社区里经常会遇到一类问题,那就是 安装完官方推荐的版本后 1 为什么没有vendor文件夹?...其实在install的时候,假如发现composer.lock版本和目前vendor目录下的代码版本是一致的,则Composer会什么也不做,composer.lock的目的就是让你安心在目前这个版本下工作...如果组件已经使用composer引用到项目中,成为公共组件,需要谨慎使用composer命令,当然需要专人负责维护,不设置共享操作权限。...另外一种思路也是可以尝试的,对于软件安装包的版本,统一以官方最新的版本为主,如果由此产生兼容或者其它问题,针对性的解决新问题。

    1.5K40

    1x1卷积详解:概念、优势和应用

    当时浏览一下细节,我从没想过我使用这样的操作,更不用说对其细节有任何的想法。但是通常是术语看起来很深奥,而概念本身并不是。...此外,我们指定了一个想要处理的过滤器大小,对于一个正方形过滤器可以使用单个数字,即size=3意味着一个3x3的过滤器。...现在,根据F是小于还是大于K,我们减小或增大了过滤器空间中输入的维数,而未进行任何空间变换(H,W不变)。所有这些就是使用1x1卷积运算! 但是,这与常规卷积操作有何不同?...好处 在cnn中,我们经常使用某种池化操作来对卷积输出的激活映射进行空间下采样,以避免由于生成的激活图的数量增加使反向传播变得难以处理。这种问题是与CNN的深度成正比的。...这给我的用例带来了三个好处: 将来自32个二维激活图(通过在输入上对前卷积层的滤镜进行卷积生成)中的信息投影到单个激活图(请记住,softconv层的输出的滤镜为dim = 1)。

    4K11

    Yii使用技巧大汇总

    一、从yii权威指中学到的 db组件 'schemaCachingDuration'=>3600, 为什么不起做用?...,或用redirect跳到编辑页,就不需要了,如果还是要显示当前页 以上就有用了,比如在当前时显示,编辑或添加新的记录 如何分页 itemCount总记录条数 CPagination代表分页信息,有多少页...jquery插件http://digitalbush.com/projects/masked-input-plugin/ 在一对多,多对多查询时,the eager loading 联合所有的表生成一条语句,如果主表有...CController的一个方法 renderDynamic($callback); COutputCache几个属性,duration,dependency 另外还有几个,可以通称为Variation, 有什么作用呢...,然后给CActiveRecord绑定即可 如果你自己有个目录下有些类或文件常用,可以在main.php的最上边定义一个路径别名 复制代码 代码如下: Yii::setPathOfAlias('local

    2.4K31

    PHP中常用的七大框架的优点与缺点

    二、Yii Yii 是一个基于组件的高性能php框架,用于开发大型Web应用。Yii采用严格的OOP编写,并有着完善的库引用以及全面的教程。...,所以基本可以确定的是Zend Framework前途无量,如果花费更多的时间去完善框架。...同样的,Zend Framework架构本身也是比较优雅的,说明Zend官方是有很多高手的,设计理念上比较先进,虽然有一些功能实现的不够完善,比如View层,自动化脚本等等,这些都有赖于未来的升级 六、...,能够零碎的包含单个多个文件 7.非常强大的配置功能,使用xml配置能够控制所有框架和程序运行行为 8.包含强大的多层级项目和应用管理:Project --> Application --> Module...相应的如果使用Symfony的应该都是比较复杂的互联网项目,那么相应的就要考虑关于数据库分布的问题,那么就需要抛弃Symfony自带的数据库操作层,需要自己定义,当然了,Symfony支持随意的构造model

    3.7K40

    yii2的加密解密那些事儿

    相关环境 操作系统及IDE macOS 10.13.1 & PhpStorm2018.1.2 软件版本 PHP7.1.8 Yii2.0.14 在yii2中,管理加密解密的库叫做Security,它以yii2...该方法可以用来进行密码加密,不过yii2有更好的密码加密方案 generatePasswordHash。...如果为false, 则会生成小写十六进制数字. validateData 对已经加了数据前缀的数据进行检测,如下代码 $result = Yii::$app->security->validateData...如果为false, 则表示散列值仅由小写十六进制数字组成. 将生成十六进制数字. compareString 可防止时序攻击的字符串比较,用法非常简单。...Yii::$app->security->compareString("abc",'abc'); 结果为真则相等,否则不相等。 那么什么是时序攻击那?我来举一个简单的例子。

    92120

    Spring Security工作原理(一)

    过滤器 Spring Security的Servlet支持是基于Servlet过滤器的,因此首先了解过滤器的一般作用是很有帮助的。下图显示了单个HTTP请求处理程序的典型分层结构。...最多一个Servlet可以处理单个HttpServletRequest和HttpServletResponse。然而,可以使用多个过滤器来: 防止调用下游的Filter实例或Servlet。...response); // invoke the rest of the application // do something after the rest of the application } 由于过滤器仅影响下游过滤器实例和...在Servlet容器中,过滤器实例仅根据URL调用。然而,FilterChainProxy可以通过使用RequestMatcher接口根据HttpServletRequest中的任何内容来确定调用。...实际上,如果应用程序希望Spring Security忽略某些请求,SecurityFilterChain可能不包含任何安全过滤器实例。

    15510

    Vue前端面试2021-017

    1、Vue中的过滤器的作用是什么 ?如何声明过滤器?..., (dat) => 处理函数) 局部过滤器:只能在当前实例中进行使用 new Vue({ filters: { 声明过滤器 } }) 2、Vue项目中为什么组件的数据声明data()是一个返回了对象的函数...传递数据的使用有什么注意事项?...计算属性是Vue实例中通过computed声明的对象,侦听器是Vue实例中通过watch声明的对象; 侦听器一般都是针对单个变量的数据变化进行监听和处理的配置对象,当监听的变量数据发生更新时自动执行对应的监听函数...,处理相关的业务逻辑 计算属性一般都是针对单个或者多个数据的变化进行监听和处理的配置对象,当监听的一个或者多个变量数据发生变化时,调用执行计算属性的位置会自动运算得到结果;如果数据没有发生变化,调用执行时会直接使用上次缓存的计算结果

    1.1K20
    领券