CPANモジュールをPHPに移植してみた話

1,431 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,431
On SlideShare
0
From Embeds
0
Number of Embeds
598
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

CPANモジュールをPHPに移植してみた話

  1. 1. CPANモジュールを PHPに移植してみた話12年8月18日土曜日
  2. 2. 自己紹介12年8月18日土曜日
  3. 3. 自己紹介12年8月18日土曜日
  4. 4. 自己紹介 • HN: memememomo12年8月18日土曜日
  5. 5. 自己紹介 • HN: memememomo • はてなブログ(id: memememomo)12年8月18日土曜日
  6. 6. 自己紹介 • HN: memememomo • はてなブログ(id: memememomo) • Twitter(@memememomo)12年8月18日土曜日
  7. 7. 自己紹介 • HN: memememomo • はてなブログ(id: memememomo) • Twitter(@memememomo) • github(memememomo)12年8月18日土曜日
  8. 8. 自己紹介 • HN: memememomo • はてなブログ(id: memememomo) • Twitter(@memememomo) • github(memememomo)12年8月18日土曜日
  9. 9. 自己紹介 • HN: memememomo • はてなブログ(id: memememomo) • Twitter(@memememomo) • github(memememomo) • 京都でエンジニアをやってる12年8月18日土曜日
  10. 10. 自己紹介 • HN: memememomo • はてなブログ(id: memememomo) • Twitter(@memememomo) • github(memememomo) • 京都でエンジニアをやってる • 普段使ってる言語は Perl と PHP12年8月18日土曜日
  11. 11. 本題12年8月18日土曜日
  12. 12. PHPに移植した背景と動機12年8月18日土曜日
  13. 13. PHPに移植した背景と動機 • 仕事でPHPを書かなければならない12年8月18日土曜日
  14. 14. PHPに移植した背景と動機 • 仕事でPHPを書かなければならない • PHPでも使いたいCPANモジュールが出てくる12年8月18日土曜日
  15. 15. PHPに移植した背景と動機 • 仕事でPHPを書かなければならない • PHPでも使いたいCPANモジュールが出てくる • ググっても同じようなものがない12年8月18日土曜日
  16. 16. PHPに移植した背景と動機 • 仕事でPHPを書かなければならない • PHPでも使いたいCPANモジュールが出てくる • ググっても同じようなものがない12年8月18日土曜日
  17. 17. PHPに移植した背景と動機 • 仕事でPHPを書かなければならない • PHPでも使いたいCPANモジュールが出てくる • ググっても同じようなものがない • PHPの練習になりそう12年8月18日土曜日
  18. 18. PHPに移植した背景と動機 • 仕事でPHPを書かなければならない • PHPでも使いたいCPANモジュールが出てくる • ググっても同じようなものがない • PHPの練習になりそう • Perlの勉強にもなりそうなので、モチベーションが保 てる12年8月18日土曜日
  19. 19. 移植してみたもの12年8月18日土曜日
  20. 20. 移植してみたもの • SQL::Maker12年8月18日土曜日
  21. 21. 移植してみたもの • SQL::Maker • ハッシュなどで組み立てたデータから、SQL文とバ インドの値リストを作成するモジュール12年8月18日土曜日
  22. 22. 移植してみたもの • SQL::Maker • ハッシュなどで組み立てたデータから、SQL文とバ インドの値リストを作成するモジュール • O/Rマッパーのないプロジェクトに導入しやすい12年8月18日土曜日
  23. 23. 移植してみたもの • SQL::Maker • ハッシュなどで組み立てたデータから、SQL文とバ インドの値リストを作成するモジュール • O/Rマッパーのないプロジェクトに導入しやすい • バッチ処理を書くときに使いやすい12年8月18日土曜日
  24. 24. 移植してみたもの • SQL::Maker • ハッシュなどで組み立てたデータから、SQL文とバ インドの値リストを作成するモジュール • O/Rマッパーのないプロジェクトに導入しやすい • バッチ処理を書くときに使いやすい • Test::mysqld12年8月18日土曜日
  25. 25. 移植してみたもの • SQL::Maker • ハッシュなどで組み立てたデータから、SQL文とバ インドの値リストを作成するモジュール • O/Rマッパーのないプロジェクトに導入しやすい • バッチ処理を書くときに使いやすい • Test::mysqld • テスト用に一時的にmysqlのインスタンスを作成する モジュール12年8月18日土曜日
  26. 26. SQL_Maker // オブジェクト生成 $builder = new SQL_Maker(array(driver => mysql)); // 設定 $table_name = pokedex; $columns = array(*); $where = array( name => Pikachu, legendry => null, area => array(ish, joto), base_hp => array(<= => 40)), type => array(like => %electric%)), id => SQL_Maker::scalar( array(= (? - 0), 25) ) ); $opts = array(limit => 1); // SQL文とbindsを生成 list($sql, $binds) = $builder->select($table_name, $columns, $where, $opts);12年8月18日土曜日
  27. 27. SQL::Makerを移植してみて12年8月18日土曜日
  28. 28. SQL::Makerを移植してみて • Perlでは、シジル($@%)やカッコ(()[]{})でデータ 構造を表せるのは良い12年8月18日土曜日
  29. 29. SQL::Makerを移植してみて • Perlでは、シジル($@%)やカッコ(()[]{})でデータ 構造を表せるのは良い • PHPに移植したらarray関数だらけに12年8月18日土曜日
  30. 30. SQL::Makerを移植してみて • Perlでは、シジル($@%)やカッコ(()[]{})でデータ 構造を表せるのは良い • PHPに移植したらarray関数だらけに • PHPUnitの練習になった12年8月18日土曜日
  31. 31. TODO12年8月18日土曜日
  32. 32. TODO • プラグイン機能がまだ移植できていない12年8月18日土曜日
  33. 33. TODO • プラグイン機能がまだ移植できていない • 動的にメソッドを追加する方法がよく分からない...12年8月18日土曜日
  34. 34. Test_mysqld12年8月18日土曜日
  35. 35. Test_mysqld • @taiyohさんが移植してる途中だったものを進めた12年8月18日土曜日
  36. 36. Test_mysqld • @taiyohさんが移植してる途中だったものを進めた • PHPをコンパイルする時に--enable-pcntlオプションをつ ける必要がある12年8月18日土曜日
  37. 37. // my.cnfの内容 $my_cnf = array(skip-networking => ); // Test_mysqldの設定 $opts = array(); // オブジェクト生成(MySQLのプロセスが出来上がる) $mysqld = new Test_mysqld($my_cnf, $opts); // DSN取得 $dsn = $mysqld->dsn(); // DSNを使ってDBに接続 $dsn = new PDO($dsn); // do something12年8月18日土曜日
  38. 38. Test_mysqldを移植してみて12年8月18日土曜日
  39. 39. Test_mysqldを移植してみて • マルチプロセス処理のプログラムの勉強になった12年8月18日土曜日
  40. 40. Test_mysqldを移植してみて • マルチプロセス処理のプログラムの勉強になった • 普通にPHPをやっていると使わない機能12年8月18日土曜日
  41. 41. Test_mysqldを移植してみて • マルチプロセス処理のプログラムの勉強になった • 普通にPHPをやっていると使わない機能 • pcntl_fork() / pcntl_exec() / pcntl_waitpid()12年8月18日土曜日
  42. 42. まとめ12年8月18日土曜日
  43. 43. まとめ12年8月18日土曜日
  44. 44. まとめ • CPANモジュールをPHPに移植してみると12年8月18日土曜日
  45. 45. まとめ • CPANモジュールをPHPに移植してみると • PHPの練習になる12年8月18日土曜日
  46. 46. まとめ • CPANモジュールをPHPに移植してみると • PHPの練習になる • Perlの勉強にもなる12年8月18日土曜日
  47. 47. まとめ • CPANモジュールをPHPに移植してみると • PHPの練習になる • Perlの勉強にもなる • PHPでCPANモジュールが使えるようになる12年8月18日土曜日
  48. 48. ご清聴 ありがとうございました12年8月18日土曜日
  49. 49. 参照 • SQL_Maker • https://github.com/memememomo/php-SQL-Maker • Test_mysqld • https://github.com/taiyoh/Test_mysqld-php12年8月18日土曜日

×