Closed38

学習記録#16 250615

ろみぃ(konatsu)ろみぃ(konatsu)

Iriが何かChatGPTに聞いてみた

IRI(アイアールアイ)は、**Internationalized Resource Identifier(国際化リソース識別子)**の略で、簡単に言えば 「国際文字(日本語など)も使えるURL」 です。

URLにはASCII文字しか使えないようになってるけど、Iriは漢字とかハングルとかも使えるってことらしい

ろみぃ(konatsu)ろみぃ(konatsu)

ずっと__toString()みたいな__何ちゃら()系の関数でアンダーバー2個使ってる理由が気になってたので調べてみる

ろみぃ(konatsu)ろみぃ(konatsu)

となると、Cookieクラスで

public function __toString() {
    return $this->value;
}

ってしてるのは、__toStringをオーバーライドしてるってことかな

ろみぃ(konatsu)ろみぃ(konatsu)

Auth.phpとHookManager.phpの命名規則はどう言うことなんだろうか
(どっちもインターフェース)

ろみぃ(konatsu)ろみぃ(konatsu)

まあ、Authの方はimplementsしてるのがBasic.phpで、HookManager.phpの方はHooks.phpだから、前者は特にインターフェースであることを名前で示す必要がなくて、後者はManagerってつけることでインターフェースであることをわかりやすくしてるって感じ?

ろみぃ(konatsu)ろみぃ(konatsu)

dispatchの意味をあんまり知らずに使ってたけど、送るとか割り振るって意味があるのか

ろみぃ(konatsu)ろみぃ(konatsu)

Hooksのこと、ぼんやりしか知らないかもなと気づく

ろみぃ(konatsu)ろみぃ(konatsu)

何らかの処理をトリガーにして、そこに別の処理を差し込むものというイメージ
仕組みとかはわかってない

でも、Hooks.phpの中身を見る感じ、何かコールバック関数を用意して、それを実行させてるイメージなのかな

ろみぃ(konatsu)ろみぃ(konatsu)

https://wa3.i-3-i.info/word12296.html

ある処理と処理の間に割り込んで別の処理を実行する仕組み。
この割り込みで実行する処理が、その前の処理と次の処理にちゃんと繋がるようになってたら、何事もなかったかのように動くよねって感じ?

ろみぃ(konatsu)ろみぃ(konatsu)

IdnaEncoder.phpはいよいよ全然知らん名前かも
Idnaがわからない。聞いたことはある、かも、、

ろみぃ(konatsu)ろみぃ(konatsu)

Internationalizing Domain Names in Applicationsの略
IDN(国際ドメイン名)を扱うための技術機構のこと

なるほど、、?

ろみぃ(konatsu)ろみぃ(konatsu)

https://jprs.jp/glossary/index.php?ID=0030

IDNA(アイディーエヌエー)
Internationalizing Domain Names in Applicationsの略称。
国際化ドメイン名のアーキテクチャーと処理手順を規定しています。 具体的には、国際化ドメイン名対応のアプリケーションプログラム内部において、文字列の正規化(NAMEPREP)とASCII互換エンコーディング(Punycode)変換の処理を行うとしています。

ろみぃ(konatsu)ろみぃ(konatsu)

あ、ほんとだ
public static function encode($hostname)って関数がある。ホスト名をエンコードしてる

ろみぃ(konatsu)ろみぃ(konatsu)

ASCII文字かどうか判定するメソッドとか、ASCII文字に変換するメソッドが実装されてる

ろみぃ(konatsu)ろみぃ(konatsu)

nameprepとは

https://jprs.jp/glossary/index.php?ID=0050

NAMEPREP(ネームプレップ)
A Stringprep Profile for Internationalized Domain Namesの略称。
国際化ドメイン名にSTRINGPREPを適用するための規定です。アプリケーション内部でドメイン名として処理するに際しては、適切な正規化処理が必要であるため、この規定が定められています。

ろみぃ(konatsu)ろみぃ(konatsu)

Iriクラス、いろんなところで使われてるけど、中身見ても結局何してるんかあんまりわからんかも

ろみぃ(konatsu)ろみぃ(konatsu)

それ以外のメソッドは、大体メソッド名の通りなはず
ちょっと理解が進んだ気がする

ろみぃ(konatsu)ろみぃ(konatsu)

SslクラスのsubjectAltNameってなんだ?

ろみぃ(konatsu)ろみぃ(konatsu)

Exceptionディレクトリに、用途別でいろんな例外クラスがある、、やっぱり、これくらい分けてエラーハンドリングした方がいいんだろうな

ろみぃ(konatsu)ろみぃ(konatsu)

Transportディレクトリは、通信の変換をやってそうだからCurlとかが入ってるんだろうと思って開けたら、ちゃんとCurl.phpとFsockopen.phpが入ってた。知識がつくと予測できるようになる

ろみぃ(konatsu)ろみぃ(konatsu)

Utilityディレクトリの中が全然知らない子だ、、

ろみぃ(konatsu)ろみぃ(konatsu)

CaseInsensitiveDictionaryはCookieのattributesプロパティの型だったり(CaseInsensitiveDictionaryの配列)、Headersが継承してたり、Fsockopenでも使われたりしてる

ろみぃ(konatsu)ろみぃ(konatsu)

InputValidatorは知ってる子だった!
最初の方でInvalidArgumentで使われてるの見てたわ

型チェックをする処理がまとまってるクラス

このスクラップは3ヶ月前にクローズされました