Yii

PHP5和PHP7取数组元素作动态函数名的差异

夙愿已清 提交于 2020-03-18 15:49:08
某厂面试归来,发现自己落伍了!>>> 在 PHP5 和 PHP7 中通过变量获取函数/方法名执行函数/方法时,可能会由于版本之间不通的解释策略导致相同的代码无法运行。 示例 $a = ['add', 'sub']; class Test {   public function add()   {     echo 1 + 2;   } } $t = new Test(); $t->$a[0](); 上例在 PHP5.6 下可以正常运行,但在 PHP7 下会抛出 Fatal error: Function name must be a string。这是因为 PHP5 下执行$t->$a<a href="">0</a>时,会先执行$a[0],获取元素值,然后执行对象的具体方法。 在 PHP7 下,则会先执行$t->$a,导致抛出错误,中断执行。如需要在 PHP7 下正常执行,需要修改为$t->{$a[0]}()。 具体差异可参考: 以上内容希望帮助到大家, 很多PHPer在进阶的时候总会遇到一些问题和瓶颈,业务代码写多了没有方向感,不知道该从那里入手去提升,对此我整理了一些资料,包括但不限于:分布式架构、高可扩展、高性能、高并发、服务器性能调优、TP6,laravel,YII2,Redis,Swoole、Swoft、Kafka、Mysql优化、shell脚本、Docker、微服务

PHP实现RabbitMQ消息队列

◇◆丶佛笑我妖孽 提交于 2020-03-17 14:40:35
某厂面试归来,发现自己落伍了!>>> 先安装PHP对应的RabbitMQ,这里用的是 php_amqp 不同的扩展实现方式会有细微的差异. php扩展地址: http:// pecl.php.net/package/am qp 具体以官网为准 http://www. rabbitmq.com/getstarted .html 介绍 config.php 配置信息 BaseMQ.php MQ基类 ProductMQ.php 生产者类 ConsumerMQ.php 消费者类 Consumer2MQ.php 消费者2(可有多个) config.php <?php return [ //配置 'host' => [ 'host' => '127.0.0.1', 'port' => '5672', 'login' => 'guest', 'password' => 'guest', 'vhost'=>'/', ], //交换机 'exchange'=>'word', //路由 'routes' => [], ];  BaseMQ.php <?php /** * Created by PhpStorm. * User: pc * Date: 2018/12/13 * Time: 14:11 */ namespace MyObjSummary\rabbitMQ; /** Member *

shell脚本---find详解

青春壹個敷衍的年華 提交于 2020-03-17 10:01:57
某厂面试归来,发现自己落伍了!>>> 作用:   Linux下find命令在目录结构中搜索文件,并执行指定的操作。Linux下find命令提供了相当多的查找条件,功能很强大 find常见命令参数: <strong>命令选项:</strong> -name 按照文件名查找文件。 -perm 按照文件权限来查找文件。 -user 按照文件属主来查找文件。 -group 按照文件所属的组来查找文件。 -mtime -n +n 按照文件的更改时间来查找文件 【-7 7天之内 +7 7天前】 -nogroup 查找无效属组的文件,即该文件所属的组在/etc/groups中不存在。 -nouser 查找无效属主的文件,即该文件的属主在/etc/passwd中不存在。 -newer file1 ! file2 查找更改时间比文件file1新但比文件file2旧的文件。 -type 查找某一类型的文件,诸如: b - 块设备文件。 d - 目录。 c - 字符设备文件。 p - 管道文件。 l - 符号链接文件。 f - 普通文件。 -size n:[c] 查找文件长度为n块的文件,带有c表示文件长度以字节计。 -depth:在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找。 -follow:如果find命令遇到符号链接文件,就跟踪至链接所指向的文件。 另外,下面三个的区别:

12.Yii2.0框架视图模版继承与模版相互调用

一个人想着一个人 提交于 2020-03-15 10:20:17
目录 模板渲染的两种方式 加载视图 index.php 和 about.php 页面 建立控制器HomeController php 新建模板 home\index.php 新建模板home\about.php 模板继承属性与视图的相互调用 建立控制器HomeController php. 新建home.php父级模板 新建模板 home\about.php 新建模板 home\index.php 模板渲染的两种方式 加载视图 index.php 和 about.php 页面 建立控制器HomeController php D:\phpStudy\WWW\yii\controllers\HomeController.php <?php /** * Created by Haima. * Author:Haima * QQ:228654416 * Date: 2018/9/3 * Time: 10:30 */ namespace app\controllers; use yii\base\Controller; class HomeController extends Controller { public function actionIndex() { //会自动加载父模板 D:\phpStudy\WWW\yii\views\layouts\main.php return

Yii2在nginx部署上的坑:非index默认页都报404解决办法

喜欢而已 提交于 2020-03-13 16:53:18
自己在开始在apache上搭建的,一切测试正常,结果转移到nginx平台后,发现里面的链接点击全部提示404,第一反应是.htaccess规则没有正常加载,开始尝试自己改写规则,结果没成功,后来发现,nginx平台下需要额外配置yii rewrite规则,配置如下: 在nginx 的配置文件nginx.conf(wdcp部署的多站点的,在对应nginx安装目录下vhost里找对应的conf文件) location / { # Redirect everything that isn't a real file to index.php try_files $uri $uri/ /index.php?$args; } 重启nginx服务 同时确认自己的yii工程,在config/web.php中加入: 'components' => [ 'urlManager' => [ 'class' => 'yii\web\UrlManager', 'enablePrettyUrl' => true, 'showScriptName' => false, ], ] ———————————————— 版权声明:本文为CSDN博主「安迪潘」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。 原文链接: https://blog.csdn.net

Yii2中自带分页类实现分页

不想你离开。 提交于 2020-03-13 11:00:07
1.首先写控制器层 先引用pagination类 use yii\data\Pagination; 写自己的方法: function actionFenye(){ $data = Field::find(); //Field为model层,在控制器刚开始use了field这个model,这儿可以直接写Field,开头大小写都可以,为了规范,我写的是大写 $pages = new Pagination(['totalCount' =>$data->count(), 'pageSize' => '2']); //实例化分页类,带上参数(总条数,每页显示条数) $model = $data->offset($pages->offset)->limit($pages->limit)->all(); return $this->renderPartial('fenye',[ 'model' => $model, 'pages' => $pages, ]); } 2. model层就是直接用../yii/frontend/web/index.php?r=gii 生成的model 3.最后是显示页面 <?php use yii\widgets\LinkPager; ?> <?php foreach($model as $key=>$val){ ?> <?= $val->Id; ?> //相当于

Yii2 Logger 理解 & 使用建议

≯℡__Kan透↙ 提交于 2020-03-12 16:28:57
理解 组成 Yii2的logger主要分为三个部分: Logger 负责日志级别,记录格式等等的配置和管理; Dispatcher 负责日志的收集和对target的管理; target 负责执行写入的操作,可以是写文件,写数据库等等。 流程 配置 log组件放入bootstrap配置中,用于初始化启动 components中配置log的日志消费处理类(若日志分类详细记录较多可单独抽出文件) 配置详解 log flushInterval //日志积累数量,积累到达该数量后才会执行flush traceLevel // 消息跟踪级别,例如YII_DEBUG ? 3 : 0,若YII_DEBUG开启将被追加最多3个调用堆栈层级 targets(这里可以有key,这样可以通过Yii::$app->log->targets[key]->enabled = false;单独关闭某个日志记录) class// 通过什么方式存储 DbTarget/FileTarget/EmailTarget/SyslogTarget levels// 存放的错误级别 prefix// 一个可调用的函数,它返回一个字符串,为每个导出的消息添加前缀 logFile// FileTarget-日志存放路径 categories// 白名单分类 except// 黑名单分类 logVars// 指定记录参数

yii 表单小部件使用

徘徊边缘 提交于 2020-03-11 05:44:26
首先创建model层 因为要使用表单小部件 所以要加载相应的组件 这里需要的组件有 yii\widgets\ActiveForm 和 yii\helpers\Html 接下来在model定义的class里 写方法 首先我们要定义需要使用表单小部件的name值 不多说上代码 <?phpnamespace frontend\models;use yii\base\Model;use yii\widgets\ActiveForm;use yii\helpers\Html;class Form extends Model{ public $name; public $pwd; public $sex; public $hobby; public $age;public function rules(){ return[ ];}public function attributeLabels(){ return[ 'name'=>'用户名', 'pwd'=>'密码', 'sex'=>'性别', 'hobby'=>'爱好', 'age'=>'年龄' ];}static public function agegat(){ $agea=array(); for($i=1;$i<100;$i++){ $agea[$i]=$i; } return $agea;} static public

yii2 中布局文件的 设置方法

折月煮酒 提交于 2020-03-10 23:33:16
网页主题应用的属性: [yii\base\Application::layout|layout 该属性指定渲染 视图 默认使用的布局名字,默认值为 'main' 对应布局路径下的 main.php 文件, 如 果 布局路径 和 视图路径 都是默认值,默认布局文件可以使用路径别名 yii\base\Application::layoutPath|layoutPath 该属性指定查找布局文件的路径,默认值为 视图路径 下的 layouts 子目录。 如果 视图路径 使用默认 值,默认的布局路径别名为 @app/views/layouts 。 该属性需要配置成一个目录或 路径 别名。 public $layout = 'main'; //布局文件的名字   在Modules.php 里面 private $_layoutPath = 'mylayoutsPath';    来源: https://www.cnblogs.com/guixiaoming/p/5511795.html

yii 主题 theme 用法

不羁的心 提交于 2020-03-10 18:08:03
在我们建设网站的时候,不免需要设置 主题,像是 六一儿童节的时候,可以把图片什么的修改一下。 yii 有这样的功能,我们可以设置一下。 views 视图是与网站样式紧密关联。 为了特殊需求我们可以准备多套视图模板,以供选择。 再者我们准备了多套视图模板,能否方便切换。 比如我们的网站也有多套模板 ( 新年、儿童节、圣诞节 ) 。 制作多套 views 视图。 首先:在config 中main.php中, 设置 return array( "theme"=>"children", ); 在theme 文件夹下 添加 children 文件夹 主题总结: 并不是所有的网站都需要主体,比如门户网站、前台网站可以使用主题 访问量较低的网站也没有必要使用主题,后台也不会使用主题。 2.会根据需求快速切换网站样式 3 . 并不是所有页面都需要设置主题页面,其他没有设置主题的页面会使用原本的视图页面。 4. 美工还可以根据主题页面,多准备几套视图模板来适应领导的需求。 5. 在 main.php 里边做配置使用主题 来源: https://www.cnblogs.com/xiaoxiao2014/p/3605293.html