PHPの歴史的な理由がある標準関数についてのまとめ
概要
前提
2023/11 (PHP8.3リリース前)時点でのphp.netの情報を元とします。
標準関数
↑こちらにurlencode,rawurlencode,gettype,Pharファイルフォーマットなどについての記述がすでにある
すでに解説済みか? | 関数名 | 公式ドキュメントリンク | 補足 |
---|---|---|---|
snmpwalkoid | https://www.php.net/manual/ja/function.snmpwalkoid.php | snmprealwalk()が移行先として推奨されている。歴史的な理由の主なものとしては下位互換のため | |
snmpwalk | https://www.php.net/manual/ja/function.snmpwalk.php | snmprealwalk()が移行先として推奨されている。歴史的な理由の主なものとしては下位互換のため | |
ユーザー定義関数 | https://www.php.net/manual/ja/functions.user-defined.php | ||
OCI8接続のハンドリングおよびプーリング | https://www.php.net/manual/ja/oci8.connection | ||
○ | get_debug_type | https://www.php.net/manual/ja/function.get-debug-type.php | PHP8.0から追加されたもの。gettypeについての歴史的な理由により、書いてあるだけなので、対象外となる。gettypeで解説されている。 |
○ | gettype | https://www.php.net/manual/ja/function.gettype.php | |
○ | urlencode | https://www.php.net/manual/ja/function.urlencode | |
○ | Pharファイルフォーマット | https://www.php.net/manual/ja/phar.fileformat.phar.php | Phar マニフェストは高度に最適化された書式で、 ファイル単位で圧縮やパーミッションの情報を指定することができ、 さらにファイルのユーザーやグループなど、独自に定義したメタデータも含めることができます。 1 バイトをこえる大きさの値はリトルエンディアン形式のバイト順で保存されます。 ただし API バージョンだけは例外です。これは 3 ニブルのデータですが、 歴史的な理由によりビッグエンディアン形式のバイト順で保存されます。 |
○ | implode | https://www.php.net/manual/ja/migration74.deprecated.php | 引数の順序がPHP7.4でdeprecatedとされて変更された |
○ | rawurlencode | https://www.php.net/manual/ja/function.rawurlencode.php |
どこから歴史を辿るのか?
PHPのRFCでの議論をみる
参考
snmpwalkoid
snmpwalkoid() 関数は、hostname で指定した SNMP エージェントから すべてのオブジェクト ID とその値を読みこむために使用します。
いつからある?
PHP4から。
具体的には、何で利用される標準関数なのか?
理解するために色々前提の理解が必要
SNMP
SNMP(Simple Network Management Protocol)は、UDP/IPベースのネットワーク監視、ネットワーク管理を行うためのプロトコルです。ルーター、スイッチなどのネットワーク機器、WindowsやUNIXサーバーなどの状態監視、リソース監視、パフォーマンス監視、トラフィック監視を行うために使用します。一般的に、サーバーに対しては、CPU使用率、メモリ使用率、ディスク使用率、プロセス監視、Windowsイベントログ監視、Syslog監視を行います。ネットワーク機器に対しては、各ポート上で送受信されたパケット数、エラーパケット数、ポートの状態(up/down)、およびCPU使用率、メモリ使用率などを監視します。ベンダによっては機器固有の管理項目を公開しているものがあり、きめ細かい監視が可能です。
OID(Object IDentifier)
各情報に対して割り当てられる一意な番号。各SNMPコマンドでの情報取得に必要なID
snmpwalk
そもそもsnmpwalkというコマンドが存在する。
指定したOID配下に含まれるすべてのOIDと、値を取得するコマンド。
snmpwalkoidはそのコマンドのOIDのみを取得できるようにしたコマンドと理解できる。
↓のように割り振られている。それをwalkするための標準関数。
つまりネットワーク監視のために利用されるため、Laravelとか一般的なフレームワークではそもそも利用すらされていない。
使い方想定
テストから読み取るのが早そう
SNMPの標準関数群について
↑こちらを読めば分かるとおり、ラッパーの関数群であることがわかる
SNMP 拡張モジュールは非常にシンプルで使い勝手の良いツール群です。 Simple Network Managment Protocol を使ってリモートデバイスを管理することができます。
これは Net-SNMP ライブラリのラッパーなので、 基本的な考え方はこのライブラリと同じです。また、Net-SNMP の設定ファイルや環境変数によって PHP の関数の挙動も変わります。
Net-SNMP についての詳細な情報は » http://www.net-snmp.org/ にあります。
歴史的な経緯
Version 4.0, Release Candidate 2
snmp_walkoid is now an alias for snmp_realwalk. (Sterling)
ここでsnmp_realwalkへ修正されている
php-srcの追い方
PHP History