Home > Program

Program Archive

Symfonyのactions.class.phpを分割する

記事に連続性がありませんね。 仕事中に見つけるTipsなのでご了承。

あと、今まで付けていたエントリータイトルの[ tag ]を外しましたよ。 これからも外します。
理由はWordpress側でタグ付けが出来るようになったからですな。 便利便利。

PHPフレームワークのSymfonyネタです。 今まで知らなかったので載せます。
symfonyのactionクラスは {root}/apps/{appname}/modules/{modname}/actions/ に actions.class.php という名前で保存されています。

http://hoge.com/{modname}/index にアクセスするには actions.class.phpに executeIndex() というメソッドを加えればOK.
というのは基本ですが、メソッドが増えることも多いはず。

DRYを気にせずに書いてしまうと100kb超えなんて目じゃないぜ!
と、目指したくもないので分けます。

Continue reading

[ memo ][ JavaScript ] Fxでのフォーム配列のいじり方

メモメモ。 30分くらいハマった。
Firefoxは何かとワガママですな。
そんなFxでの配列フォームの触り方。

<form name=”sampleForm”>
<input type=”text” name=”input_value[]” />
<input type=”text” name=”input_value[]” />
<input type=”text” name=”input_value[]” />
</form>

なんてフォームがあった場合。

document.sampleForm.elements["input_value[]“]

からいじれる。

lengthは

document.sampleForm.elements["input_value[]“].length

パラメータ取得したいときは

document.sampleForm.elements["input_value[]“][0].value

でいいはず。
いい加減長いので処理の最初に
var inputs = document.sampleForm.elements["input_value[]“];
とかってしてもいいかもですね。

[ PHP ] IRC Gatewayでも作ってみようか(調査)

PHPです。
CakePHP勉強会で触発されたわけではありませんYO!!

何かというと、PHP製IRC Gatewayですね。
Perlはplumを始めいろいろとありますし、Rubyはnadokaがある。 PHPないじゃん!
PHPerとしてIRCしてる以上、どうせなら自分でメンテもしやすいであろうPHP製がいいよ、たぶん。 楽しそうだし。

で、調べてみたこと。

  • PEARにNet_SmartIRCというIRC Botライブラリがある(これは前から知ってた、というか使ってる)。
  • 過去のバージョンにはircg(IRC Gateway)という関数もあった。
  • ※ この関数はPECLに移動したというマニュアル記事を見かけたが現在はないようである。 さらにircgは商用を視野にいれたものがあるようだが、事実上開発はストップ。 対応バージョンもPHP 4.2.x/4.3.xだけで、さらにいうとソースコードも未公開である。

    とりあえずこんだけ。
    「作ってみようか」になったのはircgが使い物にならないから至ったわけです、はい。 思いつきです。 そのうち頓挫するかもしれません。

    で、Gatewayなんて(当然ですが)作ったことがない。
    IRCの仕様すらよく知らない。 以前にRFC読んだことあるけど斜め読み。
    のでNet_SmartIRCのソースコードを読んでみる。 接続まででわかったこと。

  • PHPのsocket_*でソケットを張ったり切ったり。
  • コマンドを送るにはsocket_write()を使っているだけ。
  • どうもこれだけらしい。 やり方(IRCのネットワークまでの接続方法)さえわかれば誰でも作れますね、Net_SmartIRC.(いや、全部見てないけど、接続さえしてしまえばあとはたぶんコマンド投げるだけっしょ?)

    調べたここまでです。
    ここまでをまとめると、「無人Botは簡単」

    現時点で懸念してるのは、まずここまででログの取得やメンバーの取得なんかはできそうなことがわかったが、問題はIRC Server< -> Gatewayではなくて、Gateway< -> Clientです。
    どうやるんだー!? まったくわかりません。
    たぶんGatewayは、Clientから送られてきたコマンドをただIRC Serverに流すだけだと思うけど・・・合ってるかな。 まったく予想がつかない。
    そういえば、LimeChatには送受信コマンド一覧表示とかっていう機能があった気がしてきた。 あとで調べておこう。

    まぁ、フェイドアウト間違いなしですが追い込むためにPOSTしてみましたとさ。 今日はここまで。

    [ PHP ] events.php.gr.jp 第3回CakePHP勉強会

    今日の13時まではCakePHPかー どうしようかなーと思っていたんですが、IRCの場の空気に呑まれ(謎)参加することに。
    内容は次のとおり。

    第3回CakePHP勉強会 – events.php.gr.jp

    第3回CakePHP勉強会を開催します。

    CakePHPの活用事例やさまざまなネタで交流し、さらに広がるCakePHP界を盛り上げましょう。

    発表できるネタ、発表したいネタのある方はご連絡ください。ライトニングトークも予定していますので、短時間の発表でもOKです。

    ZendFrameworkとSymfonyは触ったことありますが、CakePHPは未経験。
    受け売りを読む限りではZFとSFの中間みたいなもんかー?という印象。 当日までに環境作成とHello Worldと気になるところくらいは触っておこうと思う。

    あ、その前にノートPCにOS入れないと・・・。

    [ PHP ] CentOS 4 x86_64 でのPHPインストール時のハマりどころ

    自分用メモも含みます。

    環境としてはWEB ARENAのVPS上です。
    CentOS 4, x86_64のようです。 64bit Linuxは/lib64なんてあるのでもうトラブルが起きないことはないってのが目に見えますが例に漏れず。
    PHPは5.2.5です。

    解決方法のその前に、私の環境でのconfigureオプションはこんな感じです。

    ./configure \
    –with-apxs2=/www/bin/apxs \
    –enable-pdo=shared \
    –with-pdo-sqlite=shared \
    –with-sqlite=shared \
    –with-mysql \
    –enable-mbstring \
    –enable-mbregex \
    –with-gd \
    –with-freetype-dir \
    –with-jpeg-dir \
    –with-png-dir \
    –with-zlib-dir \
    –enable-gd-native-ttf \
    –enable-gd-jis-conv \
    –enable-zip \
    –enable-exif \
    –with-tidy \

    では早速、ハマりどころ1
    –with-mysql
    です。 MySQLはyumでインストールしてあります。

    checking for MySQL UNIX socket location… /var/lib/mysql/mysql.sock
    configure: error: Cannot find libmysqlclient under /usr.
    Note that the MySQL client library is not bundled anymore!

    解決法はconfigureのオプションに –with-libdir=lib64 を加えるだけです。

    –with-libdir=lib64 \

    もちろん、これを加えることで発生するエラーももちろんあると思います。 が、それは割愛します。

    もう一点。 libtidy周りですね。
    これは珍しく(?)make install時にエラーが起きます。
    tidy自体はconfigureで–enable-sharedをつけています。
    ちと問題を再現出来なくなってしまったのでアレですが、対処法だけ。
    起きるエラーは確か、libtidy.soを触ろうとして「それはライブラリじゃありません」的な内容です。
    対処法は

    vi /etc/ld.so.conf

    で開いて

    /usr/local/lib

    を一行加えるだけです。

    64bit環境だと必ず起きる問題だと思うのですが、常識なのか、突っ込んだことをしていないのか。
    不思議。

    ホーム > Program

    Search
    Feeds
    Meta

    Return to page top