PHP で入れ子の配列の中身を再帰的に変更する方法

PHP で入れ子の配列の中身を再帰的に変更する方法について説明してみます。

PHP でコードを書いているとときどきこれをやりたくなることがあるのですが、サッと実装できずに時間がかかることがあるのでまとめておきたいと思います。

課題

入れ子の配列 $form があり、その中にキーが #submit で、値が配列になっている要素が含まれている。 もし #submit の中に foo_form_submit という文字列の要素が含まれていれば、 bar_form_submit という要素を #submit に付け加えたい。

自動テストのスタブ・スパイ・モックの違い

ソフトウェアの自動テストで使う代品オブジェクト――いわゆる「 テストダブル 」の分類についてまとめてみたいと思います。 タイトルには「スタブ」「スパイ」「モック」だけをあげていますが、他に「フェイクオブジェクト」と「ダミーオブジェクト」にも言及しています。

ウェブシステムの自動テストの経済性小話

ウェブシステムの自動テストのコスト感覚について書いてみます。 内容は抽象的な概念論で、かつ、ソフトウェアの世界では遠い昔から言われてきたことの繰り返しにすぎません。

次の図は、ウェブシステム開発における自動テストの価値とコストの関係を表しています。 想定としては、テストコンポーネントが含まれたフルスタックのフレームワークを使った開発をイメージしています。

自動テストの価値とコスト

横軸は「追加開発の量」で縦軸は「金額」です。

CMS Drupal の現状と今後の予測( 2018 年 6 月時点)

2018 年 6 月時点での Drupal の現状の整理と今後( 3 〜 5 年)の展開予測 をしてみました。

このあたりの認識をそのときどきで記録しておくと後々おもしろそうなので分析のエクササイズがてら書き残してみます。 英語圏も含めこのタイプの俯瞰のまとめをしている人はあまりいないので、興味のある方にとってはおもしろい内容ではないかと思います。

最初に、ここで述べる私の認識は今後変わる可能性があることをお断りしておきます。 というのと、ネガティブな意見が含まれるので「 Drupal 万歳!」な方は読まないようにしてください(笑)

著者の立ち位置と認識

最初に私の立ち位置とベースの認識を明確にしておきます。

Git で管理下にあるファイルのみをステージングする方法

Git リポジトリで、新しいファイルは追加せずに、すでに Git で管理されているファイルの変更及び削除のみをステージングする方法です。 ファイルを選り分けてひとつずつ add するのが億劫なときに便利です。

確認時の Git のバージョンは 2.18.0 です。

新しいファイルは除外して、 Git 管理下のファイルの変更のみを追加する:

ページ