「PHP」に関する日記(7)

<前 次>

TwitterLibとfunyak

TwitterLib

Packagistで公開しました。
composer require mifumi323/twitter-lib
でインストールできます。
他のPHPライブラリも、自動更新の設定などを行いました。

funyak

ちょっと細かい修正を行ったのと、開発フローの見直しを行いました。

SearchPhraseParser

かっこの片割れだけしかない文字列を渡すとエラーになるバグがあったので直しました。
それはそうと、Packagistに登録はしているけど、ちゃんとした登録にはなっていないようですね。
一応、自分で使う分には困らないし、私以外もどうやら使っていないようですが、せっかくだからちゃんとした登録をしておきたいですね。

ドラゴンクエスト10とミフミンのDQ10メモとPHP

ドラゴンクエスト10

ばにら
以前から作ろうとしていたけど期間限定イベントの都合で完成できなかった、アンパンマンのバニラ姫コスプレ装備が完成しました。
デザートスプーンがバトルロード限定で、不定期開催だったんですよね。

ミフミンのDQ10メモ

写真置き場にもっと楽にたくさん写真を置けるように、アップロード・重複判定周りを賢くしていました。
その副産物で、写真置き場の検索結果を拡張子「.json」を付けることでJSON表示できるようになりました。
私以外、使う人はいないと思われます。

PHP(Today I Learned)

ファイルのアップロード数の上限は設定項目max_file_uploadsで変更できるけど、プログラム内のini_setやディレクトリの.htaccessでは変更できない。
これを爆増させることができれば、写真置き場に全部の写真をまとめてぶち込めるようになるはずだったんですけどね。
レンタルサーバーの悲しい宿命です。
まあ、この件に限っていえば、もしかしたらもしかするかもだけど、原則はアップロード作業を楽にしてこまめにアップできるようにする方が運用としては良さそう。

Magic Quotes

ちまちま挙動を見て少しずつアップ中。
いちいち更新通知なんてしませんよ。機能は何も変わっていないんですから。

TIL

パーミッションはpermission。
permittionでは断じてない!
サイト内にあった誤字なので探して滅ぼしていかねば。

Today I Learned

TILが案の定三日坊主になってしまっていたので久々に。
https://qiita.com/rana_kualu/items/50f9f5735321fe995ff5
PHP7.4の新機能。うちはまだしばらくは7.3にとどまるけど。
??=あたりはPHP3あたりで入っていればもっと喜ばれただろうなという印象。今時なら初期値はフレームワークがどうにかしてくれるしイミュータブルを好む風潮もある。
プリローディングはauto_prepend_fileの親玉みたいなやつかな。auto_prepend_fileはPHPだけで完結できないのが嫌でやめたんだけど、VPSでPHP使うときは利用を検討したい。
引数アンパックは便利そう。

日記のにぎやかしにもなるし、一度見てなるほどと思った情報をすぐ忘れてしまわないようにもできるし、習慣化したいね。

マジッククォート

古のPHPの負の遺産、magic quotes。
昔作ったページにいくつか残っていたので滅ぼしました。
一応動作テストはしておきたいので、後日アップすることになるかと。

ユーザー管理

new staticに罪はなかった。
一応、内部動作刷新しました。
その影響で一つ重大な機能が消えているので、ユーザーページ自体のリニューアルも兼ねて、しっくりくる形で作り直します。

Change Risk Anti-Patterns (CRAP) Index

またPHPUnitの話題だけれども、CRAPインデックス。
コードの複雑性を評価したもので、でかいほどヤバい(悪い意味で)。
で、これの大きいメソッドをコードカバレッジのダッシュボードから見ることができるんだけれども、実際見てみたら、触れたくないカオスなコードが…。
気合いのあるときになんとかしよう。

PHP

無名関数のアロー表記が将来のバージョンで出るとか何とか…。
うちは今PHP7.3への移行途中なんでまだ関係はないのですが、微妙に長ったらしくて面倒だった部分が改善しそうです。
$f = function($x) { return $x * $x; } // 古い表記
$f = fn($x) => $x * $x; // 新しい表記
$y = $f(10); // 関数が実行されて100という結果が得られる

PHPUnit


今更ながら、カバレッジ出すようにしてみました。
決して良くはない数字だし、PHPUnitの対象にしていないコードは根本的にカバレッジの対象にもならないけど、まあ、最初はこんなもんかな。
ほとんどロジックがなくてテストするまでもないテンプレート的なPHPファイルも多いので、うまい事分けてカバレッジ上げていきたいものです。

Apache

事前にPHP7.3の挙動をテストしておこうとテスト用サーバーのサーバー系ソフトウェアを一新したら、どうにもApache側の問題でテストサーバーがうまく動かない模様…。

PHP7.3

サーバー側で使えるようになっていたので切り替えられるように調整中…。

Anpanator

不正な質問文で停止する問題を再発しないよう根本的に解決。
trim処理が間違えていたせいで、普通に書いた質問文の末尾の文字が破壊されたのが原因だったので、trim処理を置き換えました。

直すときは以下の記事を参考にしました。
https://qiita.com/fallout/items/a13cebb07015d421fde3
いい感じのtrim処理です。

アンパンマンDBとC#とPHPとAdobe XD

アンパンマンDB

履歴カテゴリ機能がほぼできた。
これで移行予定のないもの以外は一応置き換えられるようにはなった。
まだ細々とした修正は必要になりそう。

C#

throw null;は実際にはNullReferenceExceptionを投げるらしい。
自分で使うことが多いのはArgumentNullExceptionだけど、拡張メソッドとかでは使えそう。

PHP

??=演算子が新設らしいことを知った。
あれば便利だけどなくても全然困らない系。

Adobe XD

無料で使える?何ができる?

アンパンマンDBとPHPとPython

アンパンマンDB

履歴ページのリニューアル中。
旧RSSを置き換えて、管理しやすくするのが目的。

PHP コマンドライン関係

$argv:コマンドライン引数。実際の引数は[1]から。実際に使う場合はスーパーグローバルの$_SERVER['argc']が便利。
PHP_SAPI:コマンドライン実行なら"cli"。
ブラウザでの閲覧とコマンドライン実行で切り分けたいときに使えそうなのだぞ。

Python

便利(で、邪悪)なテクニックを知った。
実運用はしていないので私にとっては雑学にすぎないが、文字列に対する乗算は便利だと思った。

Apache

自宅サーバー立て直し。
公開用サーバーと合わせてPHP7.1環境に…と思ったのですが、サーバー設定がうまくいっていないのか、400 Bad Requestが出て、ページが表示できません…。

<前 次>