TAG

php

  • 2020年10月7日

[PHP] PHPのstaticフィールドは取り扱いに注意がいる

概要

PHPではstaticフィールドの取り扱いに注意がいります。

具体的には、親クラス側でstaticフィールドを用意して、子クラスで再定義せずに利用した場合、兄弟クラス全てが影響を受けます

サンプルコード

<?php

class Base {
  protected static $message;
  
  function say() {
    if(is_null(static::$message)) {
      static::$message = sprintf('Hello

  • 2020年10月7日

[PHP] gielfeldt/iteratorsでglobの再帰を処理

概要

phpのglob関数にはrecursiveがない為、機能が足りないことがあると思います。再帰を使った実装例もネット上には多々ありますが、車輪の再発明は避けたいので、composerを使います。

公式ドキュメント

https://github.com/gielfeldt/iterators

インストール

$ composer require gielfeldt/iterators

使い方

<?php

include __DIR__ . './vendor/autoload.php';

  • 2020年5月16日

[PHP] phpunitでのテスト中かどうかを判定する

PHPUnitでのテスト中に限り、キャッシュを有効にしたり、Mockを使ったりしたいケースは多いと思います。
その場合、phpunit.xmlに下記のような記述を加えます。

<phpunit>
  <php>
    <env name="PHPUNIT" value="true"/>
  <php>
</phpunit>

あとはif文で判定します。

<?php

use