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

vmware 7上5分钟装最新的macos x snow leopard 10.6.3

我一直想要苹果,但是,家里的财政大权不是我能管的。又想买一个黑苹果吧,但财政大臣那边还是不同意,认为买一个假玩意没意思。

虽然我一直想搞台笔记本,但目前好象还没有准备好,上级领导不批啊,所以看到素包子这篇文章就鸡动了一下。。。

素包子找了一些资料,大多不是介绍的最新的vmware7装最新的macos x,搜到了一个不错的安装介绍,参考着做完全没问题,而且很简单,感谢作者刘洪志和电脑报。5分钟搞定配置过程,接下来就是等待自动安装和重启了。

貌似可以升级到10.6.4,做了个snapshot,更新去了,一共700M左右。

(其中使用darwin.iso启动进行安装的步骤可以省略,可以直接使用OSXPCBETA_ArcticFox.10.6.3.iso启动安装。)

想偷懒并且对版本要求不高的同学可以下premade的vmware镜像,直接使用,大小10G,见BT种子,用迅雷离线下载瞬间完成,满水管下载。

Mac OS X 10.6.2

原文在:http://baoz.net/install-macos-x-snow-leopard-10-6-3-in-vmware-7/

好象主要是那两张图:

大小: 354.05 K
尺寸: 288 x 376
浏览: 1776 次
点击打开新窗口浏览全图

大小: 308.41 K
尺寸: 288 x 376
浏览: 1633 次
点击打开新窗口浏览全图

Tags: apple, macos, vmware

创建Yii扩展

用yii进行开发的时候,不可避免的就会使用其他的插件,当然也需要自己来为他作扩展,所以,Yii的这一章就一定要看了(http://www.yiiframework.com/doc/guide/1.1/zh_cn/extension.create)。

官方介绍了这些:

  1. Application Component(应用部件)
  2. Behavior
  3. Widget(小工具)
  4. Action(动作)
  5. Filter(过滤器)
  6. Controller(控制器)
  7. Validator(验证)
  8. Console Command(控制台命令)
  9. Module(模块)
  10. Generic Component(通用组件)
可惜这此翻译还是有中有英。。没有完全翻译成中文,不过看看的话还是没问题的。。(behavior就没有翻译。。。)
有空,我会继续看下去。widget还正在看,功能正是我想要的。(博客上非常需要这一个玩意)

Tags: framework, yii, 开发笔记

Yiiframework(Yii框架)开发笔记:续三


1、group by 的时候 count,这个字段默认是取不到的。即

PHP代码
  1. $result = XXX:model()->findAll(  
  2.     array(  
  3.         'select'=>'userid,count(*) as cnt',  
  4.         'group' => 'userid'  
  5.     )  
  6. );  

如果是上述代码,那么sql是对的,但永远取不到cnt这个属性值的,因为show columns的时候,没有cnt这个field,所以它永远不会存在于attributes这个变量里的。那么,怎么打印出这个cnt呢?官方也没有这样的介绍,不过搜索一下论坛,还是有答案的,比如有人就反问曾经一个提问者,did you have a public variable named ‘cnt’?,看到这个反问,我立刻到xxx类里加了一行 public $cnt,然后在获取结果后,用$reuslt->cnt就得到值了。。
后记,其实昨天bobby在测试的时候发现,如果映射到一个存在的字段也可以的。比如cid存在的情况下,count(*) as cid,也可以取到值 ,只是这样会让人很迷惘

2、widget,widget建立起来还算是比较方便的。比如我建一下如下的文件,LinksWidget.php,扔到components目录下,
内容如下:

 

PHP代码
  1. class LinksWidget extends CWidget{  
  2.     public function init(){  
  3.         //相当于beginWidget  
  4.     }  
  5.     public function run(){  
  6.         //相当于endWidget  
  7.     }  
  8. }  

如果在这里面用上了 $this->render('links');那么这个render调用的模版和默认的模版无关,它是widget专用的,当然方法都类似。只要你在Widget文件同目录下建一个views文件夹,把render调用的模版扔进去就OK了。(其实,路径可以通过$this->getViewPath()来获取,以便测试。。)

注:widget比较方便,比如说我现在有N个modules,但有一些内容是公用的,我又不想每个程序都写。当然widget是最方便的喽?举例:友情链接。。。。多方便呀

3、模版。。官方的Extenstion中有一些关于smarty的,但如果真的用的不多的话,自带的prado的viewrender就已经很简化了。比如我们常用的<?php echo $xxx ; ?>简化成了 <%= $xxx; %>,如果是<?php if(xxx){ xxx } ?>也可以用<% if():><% xxx ;%><% endif ;%>这样类似的方式来处理。。简化了好多,而且又和PHP语法非常相似。(可以看一下官方手册,介绍的较多。)

Tags: framework, yii, module, 开发笔记

Yiiframework(Yii框架)开发笔记:续二

继续我的笔记
1、还是cdbcriteria,其实对于这个类,我在上面折腾了好久。比如:

$cdb = new CDbCriteria();

$cdb->select = 'a,b,c,de';

这时候,这个select中的字段只能是主表的字段,如果你都是*的话,当然无所谓,可以直接在查询后直接$result->joinname->attributes这样调用。但是如果你只想取几个字段,怎么办?

官方的GUIDE上没有相应的例子(是我没有仔细找到),后来,蜘蛛和烂桔告诉我了,一个是说scopes一个是说直接改with,于是我选择了更改with的方法(官方AR那一节,with都是用字符串来代替的。。。),于是就变成了这样

$cdb->with['relationname'] = array('select'=>'c,d,e');

2、这回是LOG。。在LOG中显示当前页面执行的SQL时,把LOG打开就成了。。烂桔建议

PHP代码
  1. 'log'=>array(  
  2.     'class'=>'CLogRouter',  
  3.     'routes'=>array(  
  4.         array(  
  5.             'class'=>'CFileLogRoute',  
  6.             'levels'=>'error, warning',  
  7.         ),  
  8.         array(  
  9.             'class' => 'CWebLogRoute',  
  10.             'levels' => 'profile,trace',  
  11.         ),  
  12.         array(  
  13.             'class' => 'CProfileLogRoute',  
  14.             'levels' => 'profile',  
  15.         ),  
  16.     ),  
  17. ),  
于是在页面执行完后,trace信息就全部打开了,当然正式上线后不能这样操作的。。要关掉的,只要开CFileLogRoute就成了

3、DB,由于trace打开后,如果用了bindParam的话,显示的SQL可能是这样的:

SQL代码
  1. select xx,xx,xx from table where id IN (:yad1,:yad2,:yad3) and id = :id  
看不到实际绑定的值是否正确,这时候最担心的是enum的值传递给SQL是字符串还是INT值。所以,在DB那一块,加上

'enableParamLogging'=>true,

然后在trace里面就可以看到,在显示的SQL后面,多了一个类似bindValue的值。你可以对应着查看一下,传入的值是否与你实际相对应

 

 

Tags: yii, 开发笔记, framework

Yiiframework(Yii框架)开发笔记:续一

续:
1、ID在where条件中如何被调用?原来的那个$criteria = new CDbCriteria();$creteria->addCondition()已经不能这样用了,需要使用$creteria->addInCondition("fieldname",$in);然后通过输出的SQL可以查看一下是否正常。

2、gii简化开发的作用十分明显,原来我在本机一切正常,但是移动到局域网后发现无法访问,一直显示404,咨询了群里@hightman,他把他的配置贴出来看了一下,发现多了一个ipFilters,于是加上

'ipFilters'=>array('192.168.*'),然后局域网中所有的访问都正常了。

3、CHttpException,这个其实算是2问题的扩展,因为gii不正常的时候,返回的都是nginx的404页面。还是@hightman说的,他说他在很多服务器上测试过,HTTP的状态头会被HTTP SERVER劫持,即使在config里配置了errorHandle也没用。因此他都是主动返回200状态(除了ajax操作)。了解了这个后,发现这玩意也是既好也不好。好处是当出现错误时,直接显示HTTPSERVER的错误页面,当rewrite的时候不容易被别人发现是用了什么framework。缺点是,就算是自己调试也看不到trace的信息了。。(只能通过LOG查看)

待续

Tags: yii, framework, 开发笔记, gii