cakephperの日記(CakePHP, Laravel, PHP)


継続的WebセキュリティテストサービスVAddyを始めました!

2011-12-01

PHP Advent Calendar 1日目

@shin1x1さんがPHP Advent Calendar 2011を立ち上げてくれたので、今年もやらせて頂きます。

去年は、PHP関数睡眠学習できるように音声ファイルに出力しました。

睡眠学習的PHPer生活 (PHP Advent Calendar 2010 13日目)

あれから1年

皆さんは既に80%ぐらいは覚えたでしょうから、今年は先取りしてPHP5.4の関数を追加しますね。

追加された差分はこちら

trait_exists
get_declared_traits
libxml_set_external_entity_loader
class_uses
session_status
session_register_shutdown
hex2bin
getimagesizefromstring
header_register_callback
http_response_code
stream_set_chunk_size

差分だけの音声ファイルも用意したので、ぜひ睡眠学習にお役立てください。

Download


前フリ終了


PHPバージョンアップ方法(コンパイル編)

ここからが本題です。

自分はApachePHPコンパイルして入れています。本番環境でPHPのバージョンを上げる時にどうしているか書きます。

基本的には、下記のようにインストールしています。

 ./configure -prefix=/usr/local/php5.3.8 --with-apxs2=/usr/local/apache/bin/apxs  ...オプションが続く
 make 
 make install

このようにコンパイルして入れると、make installでApachephpモジュール(modules/libphp5.so)が上書きされます。

一時的とはいえ上書きされるとスクリプトが動かないので、今回はこの問題の回避方法を説明します。

まず既存のlibphp5.soをコピーします

$ cd apache/modules/
$ cp libphp5.so libphp5.3.2.so

そしてApacheはコピーした方のlibphpをロードするように書き換えます

$ vi apache/conf/httpd.conf

LoadModule php5_module        modules/libphp5.3.2.so

Apacheをリロードします。

その後、phpコンパイルしてインストールするとmodules/libphp5.soが上書きされますが、Apacheはlibphp5.3.2.soをロードしているので影響がありません。

最後に

$ cp libphp5.so libphp5.3.8.so

とやって、Apacheのlibphpの読みこみファイルを、 modules/libphp5.3.8.soに変更してApacheをリロード。


明日は、PHPer王子 @shin1x1さんです!

2010-12-13

睡眠学習的PHPer生活 (PHP Advent Calendar 2010 13日目)

こんにちは、cakephperです。PHP Advent Calendar 2010の13日目の担当です。


PHPを使っていると覚えきれない数の関数を目にしますね。その関数が何をするか、どういった引数を取るかなんて全部覚える必要はないですが、どんな名前のものがあるか覚えておくと、やりたいことがあったときにある程度推測で使えそうな関数が絞れることがあります。


じゃあ、どうやってその関数を覚えるのか。一番楽な方法は寝ながら覚えることですよね?じゃあやってみましょうか :)

MacOSにはsayコマンドというものがあって、英語の文字をしゃべらせることができます。今回はこのsayコマンドを使って音声ファイルを作成し、夜寝ている時にこの音声ファイルを再生させて覚えることにしましょう。たぶん毎日やれば来年の今頃はすらすらと関数名が出てくるはず!

ちなみにWindowsでも同じようなことができます




まずは、MacOSのsayコマンドで音声ファイルを作成する方法。ターミナルに下記のコマンドを入力してみてください。

say "hello" -o hello

これでhello.aiffファイルが作成されます。


同じように、php関数一覧を出力し、その情報をsayコマンドに渡します。

php -r '$funcs = get_defined_functions(); echo implode(",", $funcs['internal']);' | say -o allfunc

みなさんに今日から睡眠学習を実行してもらえるように、MP3形式のファイルを用意しました!

Download

mp3ファイルをダウンロード(17Mbyte)



男性の声じゃいや?では女性バージョンをどうぞ!

Download

mp3ファイルをダウンロード(17Mbyte)


声を変えるのは、say -v Agnes というように-vオプションを利用します。 -v Goodとかやると面白い声が聞けます(php側の出力文字をカンマ区切りにせずに、文字を連結させていくと歌っているように聞こえる)


このsayコマンド、色々と応用させると面白そうです。Twitterの英語タイムラインを読ませるとか、Macサーバ監視させて異常時に"Warning!"ってしゃべらせるとか!夢が広がりますね。

明日のAdvent Calendarは @camelmasaさんです。