Magento module vs Zend Framework module

Magento 和 Zend Framework 都有 module 这个概念,我觉得这两者在设计思路略有区别,不能拿 Zend Framework module 去套 Magento module,反之亦然。

简单点说,Magento module 是功能模块,Zend Framework module 是物理模块。Magento 把系统分割为十几个子系统,每个子系统各司其职,相对独立,但在整个 Magento 框架下,相对独立的子系统也能非常方便地与其他子系统通信,调用其他子系统中的功能。Zend Framework module 着眼逻辑分层,从 module 到 controller 再到 action。Zend Framework 并没有为 module 之间的通信作过多的考虑,如果用户有此需求,需要自行考虑,比如借鉴 Magento 的做法,在 Zend Framework 上再套一个框架。

Solved my Fedora PC hangs at boot

我的一台装有 Fedora 的电脑有个启动后无法进入图形界面的老毛病:每次有软件包升级以后,Fedora 都会以最新的一个内核版本启动。电脑陆续被安装了三个内核版本2.6.29.5,2.6.30.8,2.6.30.9。可是只有最老的内核才能把电脑启动起来,如果以新内核启动,提示信息是:

virbr0: Starting userspace STP failed, starting kernel STP

有人说是 libvirt 的 bug 造成的,有人说这个 bug 已解决。不管怎么样,我看卸载 libvirt 对我没什么影响,先 remove 再说——可问题依旧,但提示信息变了变:

r8169: eth0: link up

实在不知所云,我一直以为是虚拟机软件造成的问题。Google 了好一阵子,才发现可能是 nvidia 驱动有问题,解决办法是

yum install kmod-nvidia

只此一招就搞掂,虽然搞掂了也不知道那玩意干啥用的。

Magento: Pass values from Block to template

There are many ways in Magento to pass values from Block to template. I think these two ways are neat:

Method 1:

in Block, $this->setVariableName($value);
and in template, $this->getVariableName();

Method 2:

in Block, $this->assign(‘variableName’, $value);
and in template, $variableName is ready to use.

Zend Framework in Magento

The library of Zend Framework included in Magento under lib folder is not the genuine Zend Framework. Although I don’t know why Magento did that, I do know:

  • If I replace Magento lib/Zend with genuine ZF, Magento throws errors.
  • If I put geninue ZF in php include_path, Magento appends it to its own include_path, and Magento runs into fussy status. I notice email facility stops working. There may be more functionalities affected.
  • I have loads of code extending Zend_Form. I was intended to reuse them in Magento without rewriting. However, Zend_Form depends on Zend_View, which is not handy in Magento.

As one of caveats I’ve got from Magento, is whenever possible, avoid touching Zend classes directly.

Badass and Caveats

学到两个英文单词,Badass and Caveats,字典里不容易查到。

Badass 竟然是褒义词,意思是很优秀的、非常好的。我看了金山词霸的翻译,是错的。

如果把注意事项翻译为 Caveats 就很地道。可惜,拿 Google translate 英译中得到“注意事项”,但中译英只得到“notes“。

Evil iphone data roaming

不久前细数了 iphone 若干桩罪,如今又多出一桩:

老婆带着 iphone 回了一趟中国,结果弄出了近300镑的数据费。iphone 是个老虎机,这数据漫游费我也没意识到,不然我会事先提醒老婆。不过,O2 iphone 出厂设置就是这种老虎机设置(data roaming on),我觉得它居心叵测。

Magento database fetch mode

I was used to write $modelName->column_name to get attribute value in database. It requires $resource->_getReadAdapter()->setFetchMode(Zend_Db::FETCH_OBJ);.

However, it is not Magento’s default fetch mode (default is Zend_Db:FETCH_ASSOC). Whenever fetch mode is changed, it must be changed back to the default after using it. Otherwise, method getCollection() of ALL models will stop working. There may be other side effects if you leave the adapter’s fetch mode changed.

Beauty Ady

小女有个跟安以轩音似的名字,但我给她取名时,我并不知道安以轩的存在,因为好久不看中国电视剧了。最近无意中发现竟然有个美女叫安以轩,而且身为圈内人士,名声却是例外地好,太让我高兴了。我衷心祝福她,当然啦,也祝福小女。

收集了几张安以轩的照片摆显摆显。我本不喜欢芳草苑太花俏,下载了 Nextgen Gallery 一直没有 activate,今天破个例——Nextgen Gallery 挺好的。

Adorable Ady

Picture 1 of 8