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

Yii2-smarty的一些小坑

在写本文前我不得不说一句,其实我是不想用smarty的,我想尝试一下twig,但是phpstorm的Twig插件真要命,卡成翔,所以我只能用smarty。为什么不用prado了呢?官方说不支持了,我晶啊

在使用smarty的时候官方的代码和例子看上去很美,不过要注意几点

1、用yii2-smarty,还是必须得用layout,如果你不支持layout文件,默认就是/layouts/main.php,天啊,为什么是PHP?而且在这里面也还真的能用PHP代码。整个都崩溃了

2、你可以指定layout文件,比如:main.tpl,OK你必须得象PHP文件一样,得写{$this->head()},{$this->startBody()}{$this->endPage()}等,否则 ClientScript功能就无法使用

3、如果你指定layout=false,那么,就不支持ClientScript了。因为你incude file='xxx.tpl',在每一个独立的文件里都必须要象2中一个个的this->head(),this->endPage全写上

4、再来一个bug:{registerJsFile url=''},这个函数有BUG

原来是:

PHP代码
  1. public function functionRegisterJsFile($params$template)  
  2. {  
  3.     if (!isset($params['url'])) {  
  4.         trigger_error("registerJsFile: missing 'url' parameter");  
  5.     }  
  6.   
  7.     $url = ArrayHelper::remove($params'url');  
  8.     $key = ArrayHelper::remove($params'key', null);  
  9.     $depends = ArrayHelper::remove($params'depends', null);  
  10.     if (isset($params['position']))  
  11.         $params['position'] = $this->getViewConstVal($params['position'], View::POS_END);  
  12.   
  13.     Yii::$app->getView()->registerJsFile($url$depends$params$key);  
  14. }  

改成为:

PHP代码
  1. /** 
  2.  * Smarty function plugin 
  3.  * Usage is the following: 
  4.  * 
  5.  * {registerJsFile url='http://maps.google.com/maps/api/js?sensor=false' position='POS_END'} 
  6.  * 
  7.  * Supported attributes: url, key, depends, position and valid HTML attributes for the script tag. 
  8.  * Refer to Yii documentation for details. 
  9.  * The position attribute is passed as text without the class prefix. 
  10.  * Default is 'POS_END'. 
  11.  * 
  12.  * @param $params 
  13.  * @param \Smarty_Internal_Template $template 
  14.  * @return string 
  15.  * @note Even though this method is public it should not be called directly. 
  16.  */  
  17. public function functionRegisterJsFile($params$template)  
  18. {  
  19.     if (!isset($params['url'])) {  
  20.         trigger_error("registerJsFile: missing 'url' parameter");  
  21.     }  
  22.   
  23.     $url = ArrayHelper::remove($params'url');  
  24.     $key = ArrayHelper::remove($params'key', null);  
  25.     $params['depends'] = ArrayHelper::remove($params'depends', null);  
  26.     if (isset($params['position']))  
  27.         $params['position'] = $this->getViewConstVal($params['position'], View::POS_END);  
  28.   
  29.     Yii::$app->getView()->registerJsFile($url$params$key);  
  30. }  

其实就是$params['depends']这个参数。registerJsFile只能接受3个参数,但事实上用了4个参数,所以调整一下即可

 

Tags: yii2, smarty, twig

怎样删除vmware fusion

早些年用vmware fusion的时候,就感觉速度不行。总是觉得卡卡顿顿的,后来用了pd后才发现,真心不是一个量级的

vmware我分配了2G内存,才跑起来不卡,我用PD,512M都能飞一样的。

但早期我删除的vmware的时候,是直接把vmware fusion.app拖到垃圾筒里了,结果。它的虚拟网卡还在,这让我很烦恼,如今,有一个比较方便的方法:

XML/HTML代码
  1. rm -rf /Library/Application\ Support/VMware/  
  2. rm -rf /Library/Preferences/VMware\ Fusion  
  3. rm -rf ~/Library/Application\ Support/VMware\ Fusion  
  4. rm -rf ~/Library/Caches/com.vmware.fusion  
  5. rm -rf ~/Library/Preferences/VMware\ Fusion  
  6. rm -rf ~/Library/Preferences/com.vmware.fusion.LSSharedFileList.plist  
  7. rm -rf ~/Library/Preferences/com.vmware.fusion.LSSharedFileList.plist.lockfile  
  8. rm -rf ~/Library/Preferences/com.vmware.fusion.plist  
  9. rm -rf ~/Library/Preferences/com.vmware.fusion.plist.lockfile  
  10. rm -rf ~/Library/Preferences/com.vmware.fusionDaemon.plist  
  11. rm -rf ~/Library/Preferences/com.vmware.fusionDaemon.plist.lockfile  
  12. rm -rf ~/Library/Preferences/com.vmware.fusionStartMenu.plist  
  13. rm -rf ~/Library/Preferences/com.vmware.fusionStartMenu.plist.lockfile  

 

运行之前,记得先sudo -s 进入管理员模式。

上面的数据不是我平空捏造,它来自官方:http://kb.vmware.com/selfservice/microsites/search.do?cmd=displayKC&docType=kc&docTypeID=DT_KB_1_1&externalId=1017838

同时,该文里还有手动删除 3.x的办法,我想,现在2014年应该没有3.x的用户了吧?

 

 

Tags: vmware

wget与wput

不多写,就几个关键点:

wget ftp://xxx.xxx.xxxx.xxx/data/* --ftp-user=xxx --ftp-password=xxx
用于下载FTP目录
 
wput /var/www/xxxx ftp://user@password:/data/xxxx
上传目录,但上传的时候会有点小问题,比如有中文、或者有空格的时候,在批量上传的时候可能会失败
据说:
XML/HTML代码
  1. $find /home/test -type f >> ~/list.txt   
  2. $while read i ; do wput “$i”  ftp://ftpusername:password@ip/myname ; done < ~/list.txt   
未测试,但看这个while do 应该可行。
纯笔记
 
最后附上wget拉取整站的代码:
XML/HTML代码
  1. wget \  
  2.  --recursive \  
  3.  --no-clobber \  
  4.  --page-requisites \  
  5.  --html-extension \  
  6.  --convert-links \  
  7.  --restrict-file-names=windows \  
  8.  --domains example.com \  
  9.  --no-parent \  
  10.  www.example.com/article/page/  
可以参考一下不过对于CSS嵌套CSS中的图片可能不OK
 

Filezilla 在 yosemite 下的配置文件有变动

  升级到 yosemite 后,发现耗电量大增,怀疑是当初的配置有问题或者装了一些不该装的软件。所以还是一咬牙重装了,在重装先做一件事,就是备份/Users/(username)的文件夹。其中就有 filezilla 的配置。不然的话,新装之后,我的那么多服务器的配置文件怎么搞?

新装好后。在安装了 filezilla 完成后,将原备份下的.filezilla 拷到现在/Users/(user)目录下。启动 filezilla,结果发现我的站点管理器里并没有出现我原来的站点。感觉很奇怪。

于是我在新装的 filezilla 里新增了一个站点。然后退出。find /Users/(user) -name "filezilla",居然发现在自已的目录下发现了一个.config/filezilla。跑进去一看,里面的文件和.filezilla 一样。于是 cp -R ~/.filezilla/* ~/.config/filezilla/ 

再启动一下 filezilla。果然配置全回来了。

PS:官网的 filezilla 的安装文件,在安装的时候要注意一下。如果你一直下一步下一步,会多安装两个程序的(开始向国内的用户学习?通过安装程序安装其他 APP 了?提示出现 MacKeeper 等软件的时候,选择 skip 即可)

Tags: filezilla, yosemite

MAMP Pro 3.05 on Mavericks updated to Yosemite - Apache does not start

 今天新版发布,立刻升级,结果就这MAMP玩意不能启动了。启动的时候直接报错:

XML/HTML代码
  1. dyld: Symbol not found: _iconv Referenced from: /usr/lib/libmecabra.dylib Expected in: /Applications/MAMP/Library/lib/libiconv.2.dylib in /usr/lib/libmecabra.dylib /Applications/MAMP/Library/bin/apachectl: line 80: 2799 Trace/BPT trap: 5 $HTTPD "$  
开始没注意,是以为80端口没有足够的权限,再仔细一看,怎么是动态 链接库出问题了?难道是补丁没更新?
于是打开Xcode,果然说有必须要安装的组件等着我更新。更新完后再启动,还是这个问题。
不得已Google一下,果然在stackoverflow上有人有提出了类似的问题,并且被解决了:http://stackoverflow.com/questions/25139599/mamp-pro-3-05-on-mavericks-updated-to-yosemite-apache-does-not-start,解决的方法居然非常简单,只要将MAMP目录下的envvars改名成_envvars就可以了:
XML/HTML代码
  1. mv /Applications/MAMP/Library/bin/envvars /Applications/MAMP/Library/bin/_envvars  
记得不要CP,cp没用。。估计会优先检查这个envvars,如果文件存在就用这里面的环境变量了。改名后就不管了
 
如果觉得有用,记得去上面的链接帮别人点个赞。哈
 
 
 

Tags: mamp, mavericks, yosemite, apache