タグ

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

  • 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
    rubellum
    rubellum 2017/12/20
  • PHPにおける例外クラスの設計考察

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

    PHPにおける例外クラスの設計考察
    rubellum
    rubellum 2017/12/19
  • ドメイン駆動設計という救世主 - PHPでデータベースを扱う(2)

    Userテーブルに対してデータをinsertするメソッドを考えます。愚直なこんなインターフェースはどうでしょうか? class UserMapper { //... function insert( $nickname, $password, $firstname, $lastname, $birthday ) { //... } } …この引数を覚えていられる人はそう多くないと思います。もしプログラムを間違えて、nicknameとfirstnameを逆に指定してしまったら、名がnicknameとして登録されてしまいます。名が誤って表示されてしまうという致命的な事故につながります。危なっかしいプログラムですね。 では、順番を考慮しなくていいように連想配列にすればどうでしょうか? class UserMapper { //... function insert(array $data)

    ドメイン駆動設計という救世主 - PHPでデータベースを扱う(2)
  • DOM APIとinnerHTMLは等価ではない

    最近、徳丸をじわじわ読んでいるのですが、DOM based XSSの話が書いてあったので、少し言及しておこうと思います。 徳丸から引用 DOM based XSSと呼ばれるXSSがあります。これは、JavaScriptによりクライアント側で表示処理する箇所があり、そこに脆弱性がある場合のXSSです。 サンプル書いてみました。 <script> document.write(unescape(location.href)); </script> こいつを適当なファイル名で保存して、domxss.html#<script>alert("hello")<script>などのURLでアクセスするとalertが表示されるはずです。任意のスクリプトが実行可能な状態ってことですね。任意のスクリプトが実行可能ってことは、セッションクッキー盗み放題で、他人に成り済まして買い物できちゃったりするレベルです

    DOM APIとinnerHTMLは等価ではない
  • 1