手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜Qcloud , 注册 | 登陆
浏览模式: 标准 | 列表分类:PHP

[置顶] composer初装需要执行的几个命令

 因为我一直用Yii2框架。所以安装composer和安装后需要执行的命令如下,【纯记录】

1、下载composer
composer下载(具体详细的还需要:https://getcomposer.org/download/ ,必须 sha 还是经常会变的,鉴于可能经常会变所以注释掉了第二行)
  1. php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"  
  2. #php -r "if (hash_file('SHA384', 'composer-setup.php') === '544e09ee996cdf60ece3804abc52599c22b1f40f4323403c44d44fdfdd586475ca9813a858088ffbc1f233e9b180f061') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
  3. php composer-setup.php  
  4. php -r "unlink('composer-setup.php');"  
  5.   
2、mv composer.phar /usr/local/bin/composer  #移到系统目录,变成全局命令
3、composer config -g repo.packagist composer https://packagist.phpcomposer.com    #国内源
4、composer global require hirak/prestissimo   #多线程
5、composer global require "fxp/composer-asset-plugin:^1.4"   #升级为1.4
6、composer update -vvv  
 
就这样了 
 
合并后的命令
XML/HTML代码
  1. php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"      
  2. php composer-setup.php      
  3. php -r "unlink('composer-setup.php');"      
  4. mv composer.phar /usr/local/bin/composer    
  5. composer config -g repo.packagist composer https://packagist.phpcomposer.com      
  6. composer global require hirak/prestissimo     
  7. composer global require "fxp/composer-asset-plugin:^1.4"     
  8. composer update -vvv    
  9. #over    
 
如果采用了git,记得在运行完clone后:git config credential.helper store  ,可以将当前用户名和密码存下来(针对HTTP方式,如果是ssh本来就不需要)
 

composer discard changes: what do the [y,n,v,d,s,?] do

有时候你改过代码就会这样,但应该怎么选?

XML/HTML代码
  1. y - discard changes and apply the update  
  2. n - abort the update and let you manually clean things up  
  3. v - view modified files  
  4. d - view local modifications (diff)  
  5. s - stash changes and try to reapply them after the update  
如果没什么大问题,或者当时只是为了debug的,直接选y吧

清理了sablog一个历史BUG

后台删除评论的时候,一直出现了504超时,原本想着,这个破程序用了10多年了就不改了吧。但总感觉不舒服。。。所以就瞄了一眼。

毕竟程序我都改啊改的,支持了PHP7.3了。没必要为了点小事就。。。

看了下代码,原来。在处理评论的时候,不管是编辑、还是删除,原程序都遍历了所有的文章,并更新了所有文章的评论数。。好吧。可能是因为原作者也没想到我废话那么多,写了那么多的垃圾博客内容。。。。

于是我改成了。只要是删除评论,我就将对应的articleid读出来。然后,也只有删除操作的时候,才会更新涉及文章的评论数。

顺便再说一句,原来其实也没有这么卡的,也不会有504 错误的,为什么会出现呢?是因为我用了RDS,相当于这个操作。。。。连接了RDS 几千次。。直接就给弄崩了,原来数据库在本地的时候,几乎不受影响。。几千次又咋地?

换句话说。。。写代码还是要与时俱进啊。。。

Tags: sablog

blade模板用法123

1、component和include的区别是啥

如果你不用slot。。。那component和include真没啥区别,而且component还是块级调用。而include是行级(可以少写一个@endinclude,不是挺好?)
 
2、includeIf includeWhen include ....应该在什么时候调用
如果你有一堆逻辑判断但不知道怎么拆,或者说觉得放在一页里面比较烦,就用这些来进行简单的区分吧
比如你不知道模板是不是存在,就用includeIf(但这个逻辑很妖,你自己写的代码你不知道它存不存在?)
includeFirst,是指定多个模板,当一个不存在就用下一个。这个不是和includeIf一样?你自己写的你会不知道?
所以。感觉有用的也就includeWhen了。根据逻辑判断来调用相应的子模板
 
3、怎么扩展自己的方法?
不太建议,但如果真要扩展,现阶段已经很容易了,比如我在自己的Yii中就是这样:
XML/HTML代码
  1. $this->blade->getCompiler()  
  2.             ->directive('config', function($environment) {  
  3.                 list($key, $defaultValue) = explode(",", $environment . ",", 2);  
  4.                 $environment = trim($key, "\"'");  
  5.                 return Configure::get($environment, $defaultValue != "," ? rtrim($defaultValue, ",") : null);  
  6.             });  
然后在模板里的用法就是
a、@config(abc),获取Yii::$app->params['abc']
b、@config(abc.def) ,获取Yii::$app->params['abc']['def']
c、@config(abc,123),如果没有定义Yii::$app->params['abc'],就返回默认值123
 
4、如果想用blade模板自带的@csrf @method,得自己实现csrf_field , method_field方法(如果你不实现就直接用,会报这两个方法不存在D)
 
 

搞定:Yii2+blade+vue+pjax

 如题,利用laravel-mix进行开发。HTML页面的blade,基本上只含主体结构 。具体的页面全部用vue加载(当成一个个的component)

这样就真正完全利用了vue的各种组件,然后也能享受PHP的变量开发,只是这样就得一个个的加载页面了(每次都得加载app.js,一个app.js可是将近2M的)
所以,加载vue-pjax-adapter。利用pjax的特性。少加载很多内容。但这个插件,原来也是for laravel的。用了之后,发现网址不会变了。看了下代码。他的pushState的更换居然是利用response.headers中的x-pjax-url,于是在Yii的controller->afterAction中增加:response->headers->set('x-pjax-url',url::current),一切都搞定
 
在开发的时候,使用mix文件的browseSync+webpack的watch。改动后自动刷新页面。也是一个不算爽的爽功能了
 
减轻不少压力。在没有专业前端的情况下也能享受VUE的开发乐趣(其实就是不用vuex,vue-router等)
Records:60512345678910»