Upgrade to Pro — share decks privately, control downloads, hide ads and more …

5年ぶりにPHPを書いた話

 5年ぶりにPHPを書いた話

サボっていたStaticMockのメンテナンスを再開しました。

Toshiyuki Takahashi

March 24, 2021
Tweet

More Decks by Toshiyuki Takahashi

Other Decks in Programming

Transcript

  1. 5年ぶりにPHPを書いた話
    @tototoshi / はじめてのIT勉強会 in 仙台 #10

    View full-size slide

  2. ⾃⼰紹介
    https://github.com/tototoshi
    https://twitter.com/tototoshi
    ⾼橋です
    ⽯巻出⾝
    2017年に東京から仙台に引っ越しました

    View full-size slide

  3. 私の仕事
    Web中⼼のバックエンドエンジニア
    今はほとんどScala
    フリーランス&リモートで6年⽬

    View full-size slide

  4. OSS活動
    tototoshi/scala-csv ⭐ 604
    ScalaのCSVライブラリ
    flyway/flyway-play ⭐ 166
    Flyway(Javaのデータベースマイグレーションツール)のPlay
    Frameworkプラグイン
    tototoshi/slick-joda-mapper ⭐ 250
    SlickというORMでjoda-time(Javaの⽇時ライブラリ)を使うためのライ
    ブラリ

    View full-size slide

  5. 今⽇の話
    PHPの話
    GitHub、OSS楽しいよという話

    View full-size slide

  6. 昔々...
    tototoshi/staticmock ⭐ 37
    PHP のスタティックメソッドをモック化する - pixiv inside [archive]
    単体テストのためにstaticメソッドの実装をすり替えたい
    普通はできない
    できるようにした

    View full-size slide

  7. つまりこういうやつを
    接続 情報 取得

    View full-size slide

  8. こんな感じにテスト

    View full-size slide

  9. 思ったより使われてそう
    嬉しい
    https://packagist.org/packages/tototoshi/staticmock/stats

    View full-size slide

  10. StaticMockの弱点
    作者がメンテナンスを放置している
    私です!
    PHPもう忘れた ( ᐛ
    )
    runkitというPHP拡張に依存している
    https://github.com/zenovich/runkit
    PHP7をきっかけに2015年以降メンテナンスされていない
    PHP7では別の⼈がforkしたバージョンが使えたのでそれを使っていた
    ⼤丈夫なのか?

    View full-size slide

  11. 朗報: ちゃんとメンテされてた
    https://github.com/runkit7/runkit7
    runkit7という名前になって継続的にメンテされていた
    OSSっていいね

    View full-size slide

  12. 朗報: Pull Request
    StaticMockもrunkit7対応できた 👍

    View full-size slide

  13. 朗報: uopzっていうやつでも動くらしい
    エゴサしてたらforkした⼈がuopz対応させてるのを発⾒した

    View full-size slide

  14. 朗報: 詳しい解説付き
    https://qiita.com/kunit/items/43ca86a461d2e5e051cf

    View full-size slide

  15. 朗報: 取り込んだら普通に動いた
    https://github.com/tototoshi/staticmock/pull/24

    View full-size slide

  16. 結果
    runkit7でもuopzでも動くようになった
    どちらかが開発⽌まったとしてもStaticMockを使い続けられる
    PHP8も⼤丈夫そう
    PHPの書き⽅を少し思い出した
    👍 rtm-ctlz
    👍 kunit

    View full-size slide

  17. GitHub楽しい
    ⼀番好きなSNSです
    ⾃分の作ったものが使われるのは嬉しい
    改造してもらえるのはもっと嬉しい
    みんなでわいわいしましょう

    View full-size slide

  18. おわり
    これはおしり
    https://github.myshopify.com/collections/shirts/products/octocat-
    one-piece

    View full-size slide