弦而時習之

Ruby 中 Constant 和 Class 的關係

下班前龍哥說在 Mailing List 看到了一段 Code 很有趣。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
a = Class.new

p a        #=> #<Class:0x0000558d34f68b48>
p a.name   #=> nil

B = a
p a.name   #=> 'B'

C = a
p C.name   #=> 'B'

裡面 C = a 到底發生了什麼事情,是很值得討論的,因為有了線索是 rb_const_set 可以找到原因,所以就利用下班時間來讀看看這段。

關於前面的用法可以參考之前寫過的自由的 Ruby 類別來了解原因。

用 Zephir 寫自己的 PHP Extension

前一篇文章說到了 Zephir 於是這篇就要來研究一下摟~

關於這篇文章,會做以下幾件事情:

  • 安裝 & 設定
  • 寫一個簡易的 Router
  • 改寫成 Zephir 版本
  • 安裝 Extension 以及測試

那麼,廢話不多說,馬上開始吧!