タグ

ブックマーク / k-holy.hatenablog.com (5)

  • PHPUnit 4.1系で \Symfony\Component\HttpFoundation\File\UploadedFile のモックオブジェクトを作成しようとすると "Erroneous data format for unserializing" のエラーが発生した件 - k-holyのPHPとか諸々メモ

    PHPUnit 4.1系で \Symfony\Component\HttpFoundation\File\UploadedFile のモックオブジェクトを作成しようとすると "Erroneous data format for unserializing" のエラーが発生します。 PHP 5.6.1 + PHPUnit 4.1.6 で確認しました。 エラーメッセージで検索してみると、phpunit/phpunit-mock-objects にこんなissueが。 Mock creation for Symfony\Component\HttpFoundation\File\UploadedFile throws Exception #200 whatthejeff さん曰く Unfortunately, since Symfony\Component\HttpFoundation\File

    PHPUnit 4.1系で \Symfony\Component\HttpFoundation\File\UploadedFile のモックオブジェクトを作成しようとすると "Erroneous data format for unserializing" のエラーが発生した件 - k-holyのPHPとか諸々メモ
  • Windows環境のPHPで日本語ファイルパスを扱う場合の注意点 - k-holyのPHPとか諸々メモ

    まず手元の Windows7 + PHP 5.6.0 で検証した上での結論を書くと 「Windows で日語ファイルパスを扱う場合 SplFileInfo は使うな」 です。 ロケール設定を適切に行うことで basename() や pathinfo() に関しては、Shift_JISのコード表に起因するいわゆる「5C問題」も回避できました。 しかし、SplFileInfo::getBasename() や SplFileInfo::isFile() に関しては、適切にロケールを設定したとしても、残念ながら「5C問題」を回避できなかったのです。 ロケール設定の影響を受ける関数について 文字列関数は基的にマルチバイト非対応のものが多いのですが、中には対応はしているがロケール設定に依存する、というものもあります。というか結構多いです。 ファイルパスを扱う際によく使われる basename(

    Windows環境のPHPで日本語ファイルパスを扱う場合の注意点 - k-holyのPHPとか諸々メモ
    ngyuki
    ngyuki 2014/09/03
    バグっぽい
  • GitHubに置いてるライブラリをTravis CIに対応した - k-holyのPHPとか諸々メモ

    自分のライブラリをTravis CIでテストしてみたメモです。 ほぼ自分専用だし、別に困ってないし…と思って今まで手を付けてなかったんですが、個人ライブラリではユニットテストもそこそこ書くようになってて、 業務でも PHP 5.3系 / 5.4系 プロジェクトが併存している状況になりつつあるので、この機に対応してみました。 単機能的なライブラリばかりなので、対応といってもやることは大してなかったです。 Travis CI への登録 Travis CIへのサインインは GitHubアカウントがあれば即入れます。 入るとGitHubのリポジトリ一覧が表示されるので、Travis CIへのサービスフックを有効にしたいリポジトリのトグルスイッチを「ON」に設定します。 GitHubへのAPIトークンの設定なども、Travis CI側から自動でやってくれます。すごい楽。 以下、 Volcanus_T

    GitHubに置いてるライブラリをTravis CIに対応した - k-holyのPHPとか諸々メモ
    ngyuki
    ngyuki 2013/12/13
    Travis で php 5.3.3
  • php --rf 関数名 - k-holyのPHPとか諸々メモ

    昨日の昼ごろから突然、下のような状態になって php.net が見られなくなってしまったわけですが…。 どうしよう $haystack と $needle の順番が分からない! そんな時も安心、実はCLIのphpコマンドで関数のリフレクションが見られるのでした…! http://jp.php.net/manual/ja/features.commandline.options.php --rf 関数名 で関数 --rc クラス名 でクラス(定数、プロパティ、メソッド一覧) --ri モジュール名 でモジュールの設定(php.iniオプション) ※コア機能は"main"モジュールを指定 使いそうなのはこの辺りでしょうか。 や、もう見られるようになってますが。 User Contributed Notes とか別に要らないという場合には、素早く調べられて便利だと思います。 ヤッター こういうの

    php --rf 関数名 - k-holyのPHPとか諸々メモ
    ngyuki
    ngyuki 2013/10/28
  • issetとemptyとoffsetExist - k-holyのPHPとか諸々メモ

    タイトルは「いとしさとせつなさと…」みたいな感じで読んでください。 マジックメソッド、ArrayAccessインタフェース、Traversableインタフェースを実装した配列風のクラスを作成する際に引っかかりがちな(?)、__isset() と offsetExists() の仕様上の罠についてメモです。 内容的には ArrayAccess + マジックメソッドで公開する値と内部の値を変換するクラスにTraversableを実装する際の注意点 のほぼ続編になります。 罠というか言語仕様の不備と言ってもいいんじゃないかと考えてるのですが、PHPマニュアルの記述とともに isset(), empty(), offsetExists() それぞれについて見てみます。 isset() 個人的にはコード内で一番使用頻度が高いんじゃないかという言語構造で、PHPを使う上で最初に把握しておいて欲しいとこ

    issetとemptyとoffsetExist - k-holyのPHPとか諸々メモ
    ngyuki
    ngyuki 2013/10/08
    empty のときは offsetExists で存在を確認 → offsetGet で値の検査 をしているので ArrayAccess::offsetExists() の仕様はおかしくないような?
  • 1