Skip to content

BEAR.Saturdayのpear.php.net非依存化

Akihito Koriyama edited this page Jan 29, 2019 · 7 revisions

BEAR.Saturdayのpear.php.net非依存化

PEARサイト利用不可

2019/1/19に@PEAR公式ツイッターからpear.php.netサイトをダウンしているというアナウンスがありました。

pear.php.netのPEARのリポジトリを利用したBEAR.Saturdayのアプリケーションはインストールもアップデートもできない状況になりました。

PEAR非依存への対応

調査

PEARサイトの依存を無くす為に調査すると、PEARのパッケージの主要なものはcomposerに移されていますが、composer.jsonを持たないパッケージもいくつかあるという状態ということが分かりました。

しかしなんらかの形で全てのパッケージはgithubでホストされています。またPEARライブラリはPEARがインストールされたディレクトリにパスがあることを前提としています。これを解決しないとcomposerのautoload.phpが機能しないことも分かりました。

対応

2019/1/22にBEAR.SaturdayとエラーハンドラーのPandaの改修を完了させpear.php.netへの依存を取り除きBEAR.Saturdayのインストールとアップデートが可能になりました。

アプリケーション側では以下の2点に対応する必要があります。

  • composer updateで最新のBEAR.Saturdayをインストール
  • アプリケーションのcomposer.jsonrepositoriesautoloadと`include-path'の箇所を変更
    "repositories": [
        {
            "type":"package",
            "package": {
                "name": "pear/xml_rpc",
                "version":"master",
                "source": {
                    "url": "https://github.com/pear/XML_RPC.git",
                    "type": "git",
                    "reference":"trunk"
                }
            }
        },
        {
            "type":"package",
            "package": {
                "name": "pear/mdb2",
                "version":"master",
                "source": {
                    "url": "https://github.com/pear/MDB2.git",
                    "type": "git",
                    "reference":"master"
                }
            }
        },
        {
            "type":"package",
            "package": {
                "name": "pear/var_dump",
                "version":"master",
                "source": {
                    "url": "https://github.com/pear/Var_Dump.git",
                    "type": "git",
                    "reference":"trunk"
                }
            }
        },
        {
            "type":"package",
            "package": {
                "name": "pear/config",
                "version":"master",
                "source": {
                    "url": "https://github.com/pear/Config.git",
                    "type": "git",
                    "reference":"trunk"
                }
            }
        },
        {
            "type":"package",
            "package": {
                "name": "pear/file",
                "version":"master",
                "source": {
                    "url": "https://github.com/pear/File.git",
                    "type": "git",
                    "reference":"trunk"
                }
            }
        },
        {
            "type":"package",
            "package": {
                "name": "pear/console_color",
                "version":"master",
                "source": {
                    "url": "https://github.com/pear/Console_Color.git",
                    "type": "git",
                    "reference":"master"
                }
            }
        },
        {
            "type":"package",
            "package": {
                "name": "pear/file_searchreplace",
                "version":"master",
                "source": {
                    "url": "https://github.com/pear/File_SearchReplace.git",
                    "type": "git",
                    "reference":"master"
                }
            }
        },
        {
            "type":"package",
            "package": {
                "name": "pear/html_css",
                "version":"master",
                "source": {
                    "url": "https://github.com/pear/HTML_CSS.git",
                    "type": "git",
                    "reference":"master"
                }
            }
        },
        {
            "type":"package",
            "package": {
                "name": "pear/net_useragent_mobile",
                "version":"master",
                "source": {
                    "url": "https://github.com/pear/Net_UserAgent_Mobile.git",
                    "type": "git",
                    "reference":"trunk"
                }
            }
        },
        {
            "type":"git",
            "url": "https://github.com/pear/I18N_UnicodeString"
        },
        {
            "type":"git",
            "url": "https://github.com/pear/XML_RSS"
        },
        {
            "type":"git",
            "url": "https://github.com/pear/HTML_CSS"
        },
        {
            "type":"git",
            "url": "https://github.com/pear/Net_Server"
        },
        {
            "type":"git",
            "url": "https://github.com/pear/Services_JSON"
        },
        {
            "type":"git",
            "url": "https://github.com/pear/Console_Color"
        },
        {
            "type":"git",
            "url": "https://github.com/pear/HTTP_Session2"
        }
    ],
    "autoload": {
        "classmap": [
            "App",
            "vendor/pear"
        ],
    },
    "include-path": [
        "./",
        "./vendor/pear/net_useragent_mobile/"
    ],

composer.jsonについて、スケルトンのcomposer.jsonも参考にしてください。

https://github.com/bearsaturday/BEARSaturday.Skeleton/blob/master/composer.json

問題があればissueで教えてください。

追記: