Yii

YII 项目部署时, 显示空白内容

两盒软妹~` 提交于 2020-05-08 05:19:00
本地开发完成,想部署到服务器上,选用了GIT来在服务器上获取上传的本地项目,结果clone后,访问网址后,YII就是个空白页,啥信息也没有,无语。。 刚开始以为是权限问题,后来给访问的目录加了777,结果还是空白页,最后都删了,随便写了个index.html发现可以访问,那就是说就是YII出错,不是服务器的原因。 没有报错,如何处理? 找开index.php在最前面加入以下代码 error_reporting(E_ALL); ini_set( ' display_errors ' , 1 ); 这回所有错误都会显示,不会只出现空白页了! 错误页面: 可以看到说是: vendor/autoload.php文件不存在 ,What?难道本地没有?查看本地是有的啊,看GIT上的目录,发现没有~~~~ 仔细看本地目录下有个当时解压YII时,包内自带了 .gitignore 文件 打开看看: 可以看到,它已经将这些文件忽略上传了~~~无语 直接删除,重新GIT clone就可以了。 来源: oschina 链接: https://my.oschina.net/u/4285976/blog/3533798

composer 安装 Yii2遇到的BUG

本小妞迷上赌 提交于 2020-05-07 14:40:30
通过 Composer 安装 安装 Composer 如果还没有安装 Composer,你可以按 getcomposer.org 中的方法安装。 在 Linux 和 Mac OS X 中可以运行如下命令: curl -sS https://getcomposer.org/installer | php mv composer.phar /usr/local/bin/composer 在 Windows 中,你需要下载并运行 Composer-Setup.exe 。 如果遇到任何问题或者想更深入地学习 Composer, 请参考 Composer 文档 。 如果你已经安装有 Composer 请确保使用的是最新版本, 你可以用 composer self-update 命令更新 Composer 为最新版本。 在本指南中,所有 composer 命令都假定您已经安装了 全局 的 composer, 这样它可以作为 composer 命令。如果您在本地目录中使用 composer.phar , 则必须相应地调整示例命令。 如果您之前已安装 Composer,请确保使用最新版本。 您可以通过运行 composer self-update 来更新Composer。 //将Composer更新站点替换为中国全量镜像(很重要,此步没做以后的都不会成功) composer config -g

composer 安装 Yii2遇到的BUG

♀尐吖头ヾ 提交于 2020-05-07 12:58:25
通过 Composer 安装 安装 Composer 如果还没有安装 Composer,你可以按 getcomposer.org 中的方法安装。 在 Linux 和 Mac OS X 中可以运行如下命令: curl -sS https://getcomposer.org/installer | php mv composer.phar /usr/local/bin/composer 在 Windows 中,你需要下载并运行 Composer-Setup.exe 。 如果遇到任何问题或者想更深入地学习 Composer, 请参考 Composer 文档 。 如果你已经安装有 Composer 请确保使用的是最新版本, 你可以用 composer self-update 命令更新 Composer 为最新版本。 在本指南中,所有 composer 命令都假定您已经安装了 全局 的 composer, 这样它可以作为 composer 命令。如果您在本地目录中使用 composer.phar , 则必须相应地调整示例命令。 如果您之前已安装 Composer,请确保使用最新版本。 您可以通过运行 composer self-update 来更新Composer。 //将Composer更新站点替换为中国全量镜像(很重要,此步没做以后的都不会成功) composer config -g

yii2 GirdView使用全教程

牧云@^-^@ 提交于 2020-05-05 13:57:23
开始GridView GridView主要是为了实现表格复用,尤其我们做后台的时候,你发现表单和表格占据了大部分页面,而表格的样式又是高度的统一,那么如果有这样一个挂件,传入数据集自动渲染表格该多好。 于是GridView出现了,一个有细节、够稳定的表格渲染挂件。 通常情况下GridView是和各种dataProvider配合使用,针对于yii2框架中的dataProvider我之前写过一篇文章,你可以看下,这将有助于你对GridView的学习。 小谈yii2中3个数据提供者及与GridView的搭配使用 在学习GridView挂件之前,我们需要先了解GridView的结构,看下图。 简单的说,一个GridView由N个column(列)组成,而每个列里有自己的header、content和footer操作,这在GridView的代码中有所体现 try { echo GridView::widget([ 'dataProvider' => $dataProvider, 'columns'=>[ 'id', 'created_at:datetime:生成时间', [ 'label'=> '会员名', 'attribute'=> 'username', 'format'=> 'text' ], ] ]); } catch(\ Exception $e){ // todo }

YII2组件之GridView

余生长醉 提交于 2020-05-05 13:57:02
采用的是yii2.0.14版本,为了学习方便,以问答式书写。 开始GridView GridView主要是为了实现表格复用,尤其我们做后台的时候,你发现表单和表格占据了大部分页面,而表格的样式又是高度的统一,那么如果有这样一个挂件,传入数据集自动渲染表格该多好。 于是GridView出现了,一个有细节、够稳定的表格渲染挂件。 通常情况下GridView是和各种dataProvider配合使用,针对于yii2框架中的dataProvider我之前写过一篇文章,你可以看下,这将有助于你对GridView的学习。 在学习GridView挂件之前,我们需要先了解GridView的结构,看下图。 简单的说,一个GridView由N个column(列)组成,而每个列里有自己的header、content和footer操作,这在GridView的代码中有所体现 try { echo GridView:: widget([ 'dataProvider' => $dataProvider , 'columns'=> [ 'id', 'created_at:datetime:生成时间', [ 'label'=>'会员名', 'attribute'=>'username', 'format'=>'text' ] , ] ]); } catch (\ Exception $e ){ // todo }

YII2中配置MySQL读写分离

删除回忆录丶 提交于 2020-05-04 16:38:45
在实际开发中,为了服务更好的响应,通常会设置数据库的读写分离,主库负责写入更新等操作,从库负责读操作。 以下是YII2中配置MySQL读写分离,一主多从设置。设置好后,这些从库其中之一将被建立起连接并执行读操作,而主库将被用来执行写操作。 这样的读写分离将通过以下配置自动地完成。 return [ 'components' => [ 'db' => [ // 主库配置 'class' => 'yii\db\Connection', 'dsn' => 'mysql:host=localhost;dbname=master_test', 'username' => 'username', 'password' => 'password', 'charset' => 'utf8', // 从库的通用配置 'slaveConfig' => [ 'username' => 'username', 'password' => 'password', 'attributes' => [ // 使用一个更小的连接超时 // 这里每个从库都共同地指定了 10 秒的连接超时时间, // 这意味着,如果一个从库在 10 秒内不能被连接上,它将被视为“挂掉的”。 // 你可以根据你的实际环境来调整该参数。 PDO::ATTR_TIMEOUT => 10, ] , ] , // 从库的配置列表

里满是穿越岁月的爱的力

删除回忆录丶 提交于 2020-05-03 18:39:18
sdfsdf 服务网格作为一个改善服务到服务通信的专用基础设施层,是云原生范畴中最热门的话题。随着容器愈加流行,服务拓扑也频繁变动,这就需要更好的网络性能。服务网格能够通过服务发现、路由、负载均衡、心跳检测和支持可观测性,帮助我们管理网络流量。服务网格试图为无规则的复杂的容器问题提供规范化的解决方案 将供应链搬出中国,似乎成了过去两三个月新冠肺炎疫情衍生出的热门话题。 年初新冠肺炎疫情爆发,让中国供应链的生产活动几乎完全停顿,影响席卷全球:苹果的新 5G 有可能因疫情而延期推出,特斯拉新款芯片无法及时交付、陷入“芯片门”纠纷。其余像三星、小米、索尼等著名跨国企业,均受到供应链停摆的影响。 因此,shnghnz.answers.yahoo.com/question/index?qid=20200427223304AAwa1Na?CA9=31fua=54y answers.yahoo.com/question/index?qid=20200427223333AAyWVEN?LZ3=87zfq=90t in.answers.yahoo.com/question/index?qid=20200427223333AAyWVEN?RO1=15ads=33a malaysia.answers.yahoo.com/question/index?qid=20200427223333AAyWVEN

浅述PHP7底层设计01-PHP7语言执行原理

蓝咒 提交于 2020-04-30 11:24:49
PHP作为一种解释型语言,不同于编译型语言编译结果即为当前CPU体系的指令,PHP源代码只有编译成opcode才能够被zend虚拟机直接执行。 下面就简单描述PHP7语言执行原理: 1. 源代码首先利用Re2c实现的词法分析器进行词法分析,将源代码切割为多个字符串单元,分割后的字符串称为Token; 2. 基于Bison实现的语法分析器将Token和符合BNF文法规则的代码生成抽象语法树; 3. 抽象语法树(AST)编译生成opcode; 我们常常讨论的解释型语言执行效率较低,原因在于PHP执行过程中要多了翻译为opcode的过程。 不仅如此,与常驻内存的Java等语言不同,PHP代码在执行过后,内存会马上释放,基本上所有数据都会在此时销毁(仅有极少数数据会缓存)。 这种执行机制的优点在于有效避免内存泄漏,内存回收机制更简单,缺点就是每个PHP请求都得重复执行请求-翻译-执行的过程。 备注:内存泄漏(Memory Leak)是指程序中己动态分配的堆内存由于某种原因程序未释放或无法释放,造成系统内存的浪费,导致程序运行速度减慢甚至系统崩溃等严重后果。 为了弥补不是常驻内存的缺憾,引入opcode缓存,zend虚拟机会将第一次执行的PHP代码编译结果缓存到内存或者硬盘中,当下次执行该部分代码时直接读取缓存,一定程度上可以提高PHP运行速度。 参考资料 1. 陈雷

使用 Php Artisan Tinker 来调试你的 Laravel

巧了我就是萌 提交于 2020-04-27 20:21:43
Posted on 2016年6月19日 by ichou 本文翻译自: Tinker with the Data in Your Laravel Apps with Php Artisan Tinker 今天,我们将通过介绍 Laravel 中一个不太为人所知的功能,来展示如何快捷的调试数据库中的数据。通过使用 Laravel artisan 内建的 php artisan tinker , 我们可以很方便的看到数据库中的数据并且执行各种想要的操作。 Laravel artisan 的 tinker 是一个 REPL (read-eval-print-loop) ,REPL 是指 交互式命令行界面,它可以让你输入一段代码去执行,并把执行结果直接打印到命令行界面里。 如何简便快捷的查阅数据库数据? 我想最好的方式应该是输入下面这些熟悉的命令,然后立马能看到结果: // see the count of all users App\User::count(); // find a specific user and see their attributes App\User::where('username', 'samuel')->first(); // find the relationships of a user $user = App\User::with('posts')

彻底搞懂 Redis 事务

∥☆過路亽.° 提交于 2020-04-23 18:33:19
提到redis的事务,相信很多初学的朋友会对它的理解和使用有些模糊不清,料想它和我们常见的关系型数据库(mysql 、mssql等)中的事务相同,也支持回滚,但这样理解就进入了一个误区,首先:关系型数据中的事务都是原子性的,而redis 的事务是非原子性的。再多说一句,什么是程序原子性?简单的理解就是:整个程序中的所有操作,要么全部完成,要不全部不完成,不会停留在中间某个环节。那么非原子性就是不满足原子性的条件就是非原子性了。我们用例子来解释一下: 原子性 :数据库中的某个事务A中要更新t1表、t2表的某条记录,当事务提交,t1、t2两个表都被更新,若其中一个表操作失败,事务将回滚。 非原子性 :数据库中的某个事务A中要更新t1表、t2表的某条记录,当事务提交,t1、t2两个表都被更新,若其中一个表操作失败,另一个表操作继续,事务不会回滚。(当然对于关系型数据库不会出现非原子性) Redis事务相关命令: MULTI : 开启事务,redis会将后续的命令逐个放入队列中,然后使用 EXEC命令来原子化 执行这个命令系列。 EXEC: 执行事务中的所有操作命令。 DISCARD: 取消事务,放弃执行事务块中的所有命令。 WATCH: 监视一个或多个key,如果事务在执行前,这个key(或多个key)被其他命令修改,则事务被中断,不会执行事务中的任何命令。 UNWATCH: