タグ

ブックマーク / blog.tojiru.net (4)

  • PHPにおける例外クラスの設計考察

    この記事はPHP Advent Calendar 2017の2日目です。 ここ最近、業のほうが死ぬほど忙しく、すっかりブログを書いていなかった@Hirakuです。 だいぶ前のことですが、今年のPHPカンファレンス福岡で例外の話をしてきました。 この時の発表では例外に関する概要が主だったので、例外クラスそのものの設計について補足を書いてみることにします。 例外のある世界観 PHP7ではいくつかのエラーが例外と同じ挙動を示すようになり、エラーではなく例外機構を使う言語に様変わりしました。 例外というのは、かなり侵略性の高い概念であり、例外のある世界では以下の前提に立つことが暗黙のうちに強要されます。 どこでも例外が発生する可能性がある 例外によって中断されても、ソフトウェアが不適切な状態にならないように保証するのは各プログラマの責任(例外安全) たとえば、以下の関数で例外が発生する可能性があ

    PHPにおける例外クラスの設計考察
  • 規模別PHPUnitでのテストの書き方いろいろ - Architect Note

    最近になってPHPUnitをちゃんと使ってユニットテストを書くようになってきたのですが、まだまだTipsが足りないと感じます。個人的に実践している書き方をいくつか並べてみます。 追記:最初、シェバングと書いていましたが、オプションを渡せる数が決まっていたりOSによっては動かなかったりとあまり便利でないことがわかりました。。phpunit.xmlを書いた方がいいかも。 ちょっとしたテスト → シェルスクリプト化する PHPUnitは高機能なのですが、いかんせん最初の障壁が高いと思います。とにかく気軽に書きたいなら、シェルスクリプトを作って単独ファイルで実行できるようにするといいです。 #!/bin/sh phpunit --colors *Test.php # ↑オプションを書き並べておく <?php class SampleTest extends PHPUnit_Framework_Te

    規模別PHPUnitでのテストの書き方いろいろ - Architect Note
  • Composerの作者に会った (PHP勉強会 番外編レポート) #phpstudy #composerphp

    Composerやmonologの作者である@seldaekが来日するということで、2016年7月22日にPHP勉強会の番外編が開催されました。 PHP勉強会@東京〜番外編〜 みなさまお疲れ様でした! #composer #php #phpstudy #eventdots pic.twitter.com/wvKHgpDNGp — しめじ (@TAKA_0411) 2016年7月22日 動画 @seldaek の発表 発表資料はこちら: Composer in 2016 #phpstudy #eventdots pic.twitter.com/h4UeksQGvJ — Hiraku (@Hiraku) 2016年7月22日 Composerを使い込んでないとわからない内容もあったと思うので、勝手に補足解説しようと思います。 composerのエコシステムについて Composerの中央リポジ

    Composerの作者に会った (PHP勉強会 番外編レポート) #phpstudy #composerphp
  • PHP7でクラスはバラバラになった

    PHP7では無名クラスが導入されます。 PHP7調査(26)無名クラスの導入 - Qiita これ、単に構文だけの話にせず、「クラスの第3の能力が単独で切り出された」と捉えると面白いのかなと思いました。 クラスが持つ3つの役割 クラスが持つ3つの役割 - 西尾泰和のはてなダイアリー 「コーディングを支える技術」の西尾泰和氏によると、クラスには ユーザー定義型 実装の再利用の単位 インスタンス生成器 の3つの役割があるといいます。 クラスが扱いづらい概念だとすれば、それはこの3つの能力をまとめて持っているからです。 PHPのユーザー定義型、インターフェース PHPの場合、タイプヒントがありますし、定義したクラスは後から拡張することができません(オープンクラスではない)。 if ($obj instanceof FooClass) { //... } この「$objがFooClassのインスタ

    PHP7でクラスはバラバラになった
  • 1