Submitted by gouki on 2018, April 1, 8:40 AM
有时候你会在Yii2中自定义一些组件,比如:Yii::$app->sms / Yii::$app->chat / Yii::$app->queue(你看,这个虽然是系统自带的,但不代表就能被认得出)
那怎么办?IDE无法认出的时候,难道我们一个个的写:
PHP代码
- <?php
-
- $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代码
- 'bootstrap' => ['log', 'autocomplete'],
- 'components' => [
- 'autocomplete' => [
- 'class' => 'iiifx\Yii2\Autocomplete\Component',
- 'config' => [
- '@app/config/console.php', # <-- config list
- '@app/config/web.php',
- ],
- ],
- # ...
- ]
PHP | 评论:0
| 阅读:11812
Submitted by gouki on 2018, March 25, 10:27 AM
Yii2自带的jQuery随着版本一次次的更新,其实也都在每次调整,但事实上为了兼容旧版,我们有时候不需要这么新的jquery.js,这时候,怎么办?其实只要用assetManager对jqueryAsset进行一个覆写就行了。
比如这样:
PHP代码
- 'assetManager'=>[
- 'bundles' => [
- 'yii\web\JqueryAsset' => [
- 'sourcePath' => null,
- 'basePath' => '@webroot',
- 'baseUrl' => '@web',
- 'js' => [
- 'js/jquery.js',
- ]
- ],
- ],
- ]
是不是很简单?
PHP | 评论:0
| 阅读:12052
Submitted by gouki on 2017, December 11, 12:47 PM
注:以下技巧在composer2下面已经没必要了。!!!!!
升级成composer2吧,全解决了
-------------
因为我一直用Yii2框架。所以安装composer和安装后需要执行的命令如下,【纯记录】
1、下载composer
composer下载(具体详细的还需要:https://getcomposer.org/download/ ,必须 sha 还是经常会变的,鉴于可能经常会变所以注释掉了第二行)
- php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
- #php -r "if (hash_file('SHA384', 'composer-setup.php') === '544e09ee996cdf60ece3804abc52599c22b1f40f4323403c44d44fdfdd586475ca9813a858088ffbc1f233e9b180f061') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
- php composer-setup.php
- php -r "unlink('composer-setup.php');"
-
2、mv composer.phar /usr/local/bin/composer #移到系统目录,变成全局命令
3、composer config -g repo.packagist composer https://packagist.phpcomposer.com #国内源
phpcomposer好象垮了!
更新为:composer config -g repo.packagist composer https://packagist.laravel-china.org
4、composer global require hirak/prestissimo #多线程
5、composer global require "fxp/composer-asset-plugin:^1.4" #升级为1.4
6、composer update -vvv
就这样了
合并后的命令
XML/HTML代码
- php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
- php composer-setup.php
- php -r "unlink('composer-setup.php');"
- mv composer.phar /usr/local/bin/composer
- composer config -g repo.packagist composer https://packagist.phpcomposer.com
- composer global require hirak/prestissimo
- composer global require "fxp/composer-asset-plugin:^1.4"
- composer update -vvv
- #over
如果采用了git,记得在运行完clone后:git config credential.helper store ,可以将当前用户名和密码存下来(针对HTTP方式,如果是ssh本来就不需要)
PHP | 评论:1
| 阅读:33035
Submitted by gouki on 2017, December 3, 3:36 PM
这回移植的比较彻底。当然也是先使用了网上的代码。不然的话,我初期的一些基础性的东西也要重写
1、写了一些简单的方法,比如yUrl,yRequest,yUser等,然后因为是laraval的玩意,里面有一个方法app(),不得已我重写了一下!否则有部分代码就没法实现了。其实也可以用yHtml来整体替换Html::的。但最终没有这么做。。yHtml =》 app('yii\??\Html')的调用罢了(不多写。记不住详细 代码)
2、引入了皮肤概念。网上的一些代码默认应该都是不支持theme的。正好我有项目要用到theme。不得已,再次加入。同时支持module里的调用(笑哭)
目前有小部分还是以硬编码的形式存在。
最后。因为尝试部分代码使用vue,就遇到了{{}}的冲突。其实blade默认就支持@{{}}来解决冲突(只要是vue的变量,就必须 是@{{}} )
完
PHP | 评论:0
| 阅读:15048
Submitted by gouki on 2017, November 20, 5:02 PM
用Simplepie解析爱范的源时,出现如下错误:http://www.ifanr.com/feed is invalid XML, likely due to invalid characters. XML error: Invalid character at line 604, column 37,比较麻烦。
最后在Simplepie的代码的1397行里加入:
XML/HTML代码
- $this->raw_data = preg_replace('/[^\P{C}\n]+/u','',$this->raw_data);
说实在的,这种不可见的字符最TMD恶心了!~
PHP | 评论:0
| 阅读:15487