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

Yii2自定义组件在phpstorm中识别

 有时候你会在Yii2中自定义一些组件,比如:Yii::$app->sms / Yii::$app->chat / Yii::$app->queue(你看,这个虽然是系统自带的,但不代表就能被认得出)

那怎么办?IDE无法认出的时候,难道我们一个个的写:

PHP代码
  1. <?php  
  2. /** @var IM $im */  
  3. $im = Yii::$app->im;  

如果是这样,那也太累了。翻了一下google,找到这一篇教程:https://github.com/samdark/yii2-cookbook/blob/master/book/ide-autocompletion.md,意思就是说,你自己建一个Yii的文件,创建一些类,然后把刚才的Yii::$app->sms之类的,注释成类的property,然后IDE就能识别了。

最后找到一个项目:https://github.com/iiifx-production/yii2-autocomplete-helper,看样子好象一位俄罗斯大佬写的,嗯,它自动根据你的config来生成一个类似的_ide_components.php,并建议你在IDE里将Yii.php设置为:Mark As Text,这样IDE就不会主动去读Yii.php并识别了。

于是我composer引用了并执行了一下。然后在.gitignore里忽略了_ide_components.php,感觉世界一下子清静多了。

简单用法:

PHP代码
  1. 'bootstrap' => ['log''autocomplete'],  
  2. 'components' => [  
  3.     'autocomplete' => [  
  4.         'class' => 'iiifx\Yii2\Autocomplete\Component',  
  5.         'config' => [  
  6.             '@app/config/console.php', # <-- config list  
  7.             '@app/config/web.php',  
  8.         ],  
  9.     ],  
  10.     # ...  
  11. ]  

 

 

 

正式启用https

 其实早就该启用了,之前在折腾小菜谱的https的时候发现非常麻烦。现在acme.sh进化了,一步走就完成了

 
1、acme.sh --issue -d domain.com --nginx 他会自己找配置
2、将生成好的key,copy到指位位置,为了方便,一般都扔到/etc/nginx/ssl目录下
3、修改nginx配置,在指定的hosts下面添加下列内容:
XML/HTML代码
  1. listen 443 ssl;  
  2. ssl on;  
  3. ssl_certificate /etc/nginx/ssl/neatstudio.com.cer;  
  4. ssl_certificate_key /etc/nginx/ssl/neatstudio.com.key;  
  5.   
  6. ssl_session_cache shared:SSL:20m;  
  7. ssl_session_timeout 10m;  
  8.   
  9. ssl_prefer_server_ciphers       on;  
  10. ssl_protocols                   TLSv1 TLSv1.1 TLSv1.2;  
  11. ssl_ciphers                     ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS;  
  12.   
  13. add_header Strict-Transport-Security "max-age=31536000";  
因为我是用neatstudio.com来创建的,所以生成的文件也就是neatstudio.com.cer和neatstudio.com.key了
 
如果你webserver上东西多,你干脆server nginx force-reload。官方说用reload可能不生效。如果你东西少,你就直接restart算了。
打开https://neatstudio.com ,就OK了。
然后再配置一条。如果是http,就跳到https,(当然 我还没有做这个,因为我还有不少资源用了http的)

Tags: acme.sh, https

mac 安装supervisor

 supervisor是一个python写的守护进程程序,如果你不想用xxx.sh & 或者用nohup xxx.sh > xxx & 这样的方式来运行程序,那么用supervisor是最简单的。

在macosx下,安装supervisor实在太简单了(网上的教程都是用pip来安装),对于mac来说,直接brew install supervisor就OK了。

然而装完后,你ps aux|grep supervisor,会发现其实进程不存在。而你用brew services start supervisor,却又提示你服务在运行。我靠这是多么大的一个坑?

其实还算比较简单,直接打开vim ~/Library/LaunchAgents/homebrew.mxcl.supervisor.plist,看看里面的执行文件路径,运行一下就知道了。

果然 就直接报错了!

XML/HTML代码
  1. /usr/local/opt/supervisor/bin/supervisord -n -c /usr/local/etc/supervisord.ini  
  2. Error: section [inet_http_server] has no port value  
  3. For help, use /usr/local/opt/supervisor/bin/supervisord -h  

咦。居然报[inet_http_server] has no port value?怪不得刚才用supervisorctl 的时候报:http://localhost:9001访问被拒绝。于是,修改/usr/local/etc/supervisord.ini,把那个注释掉的9001端口打开,再运行就OK了

cat一下supervisord.ini,会发现最后一行是include /usr/local/etc/supervisor.d/*.ini。这个时候就要注意了。

在其他平台都是加载的.conf,mac上是.ini,所以其他平台的不能直接复制过来就用!当然,这个目录本身也不存在:/usr/local/etc/supervisor.d/,要先mkdir一下。

好了,其他的就不说了。笔记一下,浪费我半小时时间

 

 

qcloud使用公钥登录

有时候,你不得不承认,在某些方面,腾讯就是比阿里要好一点点。(只是个人观点)

在使用云服务器的时候,很多时候为了安全,我们都采用了publickey进行登录,但阿里的你就得一个个的建,然后上传。而腾讯就比较方便。你只要copy你的id_rsa.pub里的内容,在管理界面进行上传。然后可以直接导入就OK了。

因此,从这方面来说,T真的比A要方便。

Yii2使用自定义jQuery

 Yii2自带的jQuery随着版本一次次的更新,其实也都在每次调整,但事实上为了兼容旧版,我们有时候不需要这么新的jquery.js,这时候,怎么办?其实只要用assetManager对jqueryAsset进行一个覆写就行了。

比如这样:
PHP代码
  1. 'assetManager'=>[  
  2.     'bundles' => [  
  3.         'yii\web\JqueryAsset' => [  
  4.             'sourcePath' => null,  
  5.             'basePath'   => '@webroot',  
  6.             'baseUrl'    => '@web',  
  7.             'js'         => [  
  8.                 'js/jquery.js',  
  9.             ]  
  10.         ],  
  11.     ],  
  12. ]  
是不是很简单?