PeclでPHPを拡張してみたい。

2008-03-24

第二回PHP拡張勉強会・終了 感想


三重から帰省してきてそのままGREEの新社屋へ。

自己紹介

半分くらいは前からのメンバーなのかな?

関山さん(id:rsky)の似顔絵が似てる・・。あと、m-takagiさんを拝顔できたのが結構感動モノだったり。

Cの参考書片手に持ってたのなんて私くらい・・・(汗

濃いところ

関山さんの話とか、hamanoさんの話とか、「ふーん」って感じなんだけど、細かいところは全然わかりませんでした! こんな私が出ててすみません。><


PHP拡張のつくりかた(2)」

id:i_ogiによる(私にとっての)メインコンテンツ。隣に居たhaltさん(だったっけ?hanawaさんだっけ?誰の発言か忘れた)が

「これだけマクロ書いてあると、C言語知ってるからPecl書けるとか関係ないよ!」

ってふーんそういうものなのか。でも、C言語ほとんど知らない私はもっとわからない!><


でも、id:i_ogiさんの講習はわかりやすかった!これで作れるかって言うと微妙かもしれないんだけど、なんかちょいちょいと中身を変えてみて頑張ろうっていう感じが湧いてくる。嬉しいなー。

zvalのリファレンスの話とか超絶なるほどって感じだったし。$a=&$bで$aも$bも影響が出るとか「ふーん」って。

お礼を言いたかったけど、直接言えなかったのでここで書く。ありがとうございました。


つーわけで

懇親会は当初出るつもりだったけど、実家から帰ってきたらなんか疲れちゃってパスしてしまった。で、id:Yudoufuさんと話しつつ(いやー、みんな良く知ってる人多いなぁ・・・と改めて恐縮しつつ)帰宅し、21時就寝。

次回も出たい。

2008-01-22勉強会に参加した

以下、テクニカルなことは書かない。+懇親会でのも含む


  1. スーツ&ネクタイってオレだけじゃん・・・。浮き
  2. id:i_ogiさんの「そーですよね、実際に使わないと覚えないですから」「私もCちゃんとつかったのPHPのextension書き始めたからですし」に救われる感じ
  3. pecl-gen使うより、ネットワークにつなげる方が難しかった。つか、できなかった。
  4. 初回は第2回 Hello, PHP Extension!:実例で学ぶPHP拡張モジュールの作り方|gihyo.jp … 技術評論社見て予習してけば問題なかった。つか、まんまだった。
  5. けど、その合間合間に出されるTIPSが主食だったり
  6. 主食が消化できませんでした。orz
  7. id:kunitさんステキすぎ。XOOPSも負けへんでー。
  8. がんばるでー。CはPHP-extentionで勉強するでー。

i_ogii_ogi2008/01/23 02:38前日体調不良でくたばってて><、きちんと準備する余裕がなくて、関山さんのナイスタイミングの記事を有効活用させてもらいました。^^;
まあ、実際の所、今回より先がC言語になるので、次回からがディープになるのかなーと思ってます。

tohokuaikitohokuaiki2008/01/24 13:06ありがとうございました!
いやー、あんまディープだとついていけないなーと戦々恐々としております・・・。Cの参考書片手に臨みます。

2008-01-21

実例で学ぶPHP拡張モジュールの作り方第2回

16:50

http://gihyo.jp/dev/serial/01/php-module/0002

が丁度アップされたので、試してみた。

  • 拡張関数を定義するxmlファイルを記述
<?xml version="1.0" encoding="UTF-8"?>
<extension name="hw" version="0.1.0">
  <function name="hw" role="public">
    <proto>void hw()</proto>
    <summary>Print Hogehoge</summary>
    <code><?data
php_printf("Hogehoge%s", PHP_EOL);
    ?></code>
    <test>
      <code><?data
hw();
      ?></code>
      <result mode="plain"><?data
Hogehoge!
      ?></result>
    </test>  
  </function>
</extension>
  • # pecl-gen hoge.xml
  • # cd hoge
  • # phpize
  • # ./configure --enable-hw
  • # make
  • # make test

でFail・・・・。テストのところのXMLが間違えてた・・・。

XMLで間違えてるともう一回pecl-genからやり直しか。

・・・で、直してみたけどtestが上手く通らない。

$ make test

Build complete.

(It is safe to ignore warnings about tempnam and tmpnam).

PHP Warning: PHP Startup: Unable to load dynamic library 'modules/pdo.so' - modules/pdo.so: cannot open shared object file: No such file or directory in Unknown on line 0

PHP Warning: PHP Startup: Unable to load dynamic library 'modules/pdo.so' - modules/pdo.so: cannot open shared object file: No such file or directory in Unknown on line 0

=====================================================================

CWD : /home/****/phpext/hw

PHP : /usr/bin/php

PHP_SAPI : cli

PHP_VERSION : 5.2.0-8+etch9

ZEND_VERSION: 2.2.0

PHP_OS : Linux - Linux colinux 2.6.12-co-0.7.1 #1 Sat Jul 14 12:13:49 UTC 2007 i686

INI actual : /etc/php5/cli/php.ini

More .INIs : /etc/php5/cli/conf.d/pdo.ini

Extra dirs :

=====================================================================

Running selected tests.

FAIL hw() function [tests/hw.phpt]

=====================================================================

Number of tests : 1 1

Tests skipped : 0 ( 0.0%) --------

Tests warned : 0 ( 0.0%) ( 0.0%)

Tests failed : 1 (100.0%) (100.0%)

Tests passed : 0 ( 0.0%) ( 0.0%)

---------------------------------------------------------------------

Time taken : 1 seconds

=====================================================================

=====================================================================

FAILED TEST SUMMARY

---------------------------------------------------------------------

hw() function [tests/hw.phpt]

=====================================================================

まぁいいか。testで通らなくても、テストケースの書き方が悪いだけで・・・。とりあえず、インストール

# make install

Installing shared extensions: /usr/lib/php5/20060613+lfs/

$ php -d extension=hw.so -r 'hw();'

Hogehoge

出来た。:)


なんか、自分だけここで日記書けなかった

12:59

・・・ポイント使わないとGroupで日記書けないのかなーとか思いつつ、はてなに問合せ。したら、

先日の障害の影響で、データベースに異常が発生しており

昨日修正を行いました。

お手数ですがご確認いただけますでしょうか。

書けたよ!>< *1

あと、前に書いてたのも何か復旧してるよ!すごいよ、はてな

http://phpext.g.hatena.ne.jp/tohokuaiki/20080116


とりあえず、coLinux環境を作ってみた。

12:59

http://d.hatena.ne.jp/tohokuaiki/20080115

http://d.hatena.ne.jp/tohokuaiki/20080116

3年前のノートでは、メモリが足りなかったので、1Gのを買って付け足した。ThinkPad内蔵のメモリを交換しないとダメだったんでキーボード外すのも初挑戦。*2


*1:まだセーブして無いけど、タブん

*2ThinkPadって分解手続書がPDFになって見られるのが良いね。

2008-01-16

coLinuxを立ち上げた

19:38

いままで、WindowsでのPHP環境にXSASなんてふざけてたものを使ってたけど、PHP拡張するためにcoLinuxを立ててみた*1。・・・すごいね。これ。PCのメモリが全然足りなくなったから買ってこないと!

*1:昔やった時は、ブルースクリーンが出て諦めた

2008-01-15

とりあえず、環境が無いと話にならないので

02:44

coLinuxをノートパ ソコンに入れてみる。初挑戦。