tohokuaikiのチラシの裏

技術的ネタとか。

【PHP拡張勉強会ログ】実例で学ぶPHP拡張モジュールの作り方第2回

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

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>

で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

出来た。:)

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

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

先日の障害の影響で、データベースに異常が発生しており
昨日修正を行いました。
お手数ですがご確認いただけますでしょうか。

書けたよ!>< *1

あと、前に書いてたのも何か復旧してるよ!すごいよ、はてな
http://phpext.g.hatena.ne.jp/tohokuaiki/20080116

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

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

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

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

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