環境 Windows10 Apache 2.4.47PHP7.4 Postgresql13.4 Laragon5.0.0 Laravel v8.59
古いシステムを移行しています。その中でPEARのライブラリを利用しているところがあり、ソースになるべく手をいれたくないのでPEARのライブラリをインストールすることにしました。古いシステムでは適当な場所に設置して、
require_once(“Log.php”);
といったかんじで読み込んで利用していましたが、Composerを導入したのでせっかくなのでComposerを使ってインストールしてみました。
いろいろなサイトを参考にさせていただくとだいたい、composer.jsonに以下を追記して、composer install でOK!となっていたので実施したところ、
{
"config": {
"secure-http": false
},
"repositories": [
{
"type": "pear",
"url": "http://pear.php.net"
}
],
"require": {
"pear-pear.php.net/Mail": "*"
}
}
PS C:\laragon\www\lr8> composer install
[RuntimeException]
require.pear-pear.php.net/Mail is invalid, it should not contain uppercase characters. Please use pear-pear.php.net/mail instead.
メッセージに従って大文字は使わないようにして再実行
PS C:\laragon\www\lr8> composer install
[RuntimeException]
The PEAR repository has been removed from Composer 2.0
ん?Composer2.0からはpearリポジトリは削除された?使えないという事か?
一度composer.jsonは変更前の状態にして、試しに以下のコマンドを実施
PS C:\laragon\www\lr8> composer require pear/mail
vendor\pear\mail というフォルダーが作成されてインストールされたみたいです。ついでにmail_mime-decodeも使うので
PS C:\laragon\www\lr8> composer require pear/mail_mime-decode
これもはいったもよう。
ちなみに指定したパッケージ名はPackagistで検索しました。
使い方
後は読み込みたいプログラムでautoload.phpを読み込んで、使うかんじですね。
require 'vendor/autoload.php';
$structure = \Mail_mimeDecode::decode($params);
// 先頭についているバックスラッシュを書かないと使っているクラスの名前空間に属すると解釈されてしまうので必要です。
コメント