Wiz PHP [ホームに戻る] [スレッド一覧] [新規投稿] [留意事項] [ワード検索] [管理用] [過去ログ] 記事閲覧

このスレッドは管理者からのメッセージです。
◆ 選択された記事を新しいものから降順に表示
スレッド1: Wiz スケジューラー(グループウェア)と PHP ヴァージョンアップに伴うアプリの自動修正について ATOM1.0 RSS2.0 RSS1.0 FEEDアイコン
No.1: Wiz スケジューラー(グループウェア)と PHP ヴァージョンアップに伴うアプリの自動修正について ②
日時: 2022/08/17 09:56
名前: ナオヤM ID:jb/jW0RU メールを送信する
参照: https://vmorita.com/bbs/wizphp/forum.shtml?room=wizphp

PHP のバージョンが 7 になって WIZ を起動してみましたが全く動作しません。  ログインもできないので PHP の ディスプレーエラーを ONにして致命的エラーの内容を見てみると、関数 ereg(), ereg_replace()、split() ををそれぞれ preg 関連の関数に置換しなければいけないらしい。しかもこれらの ereg 関連の関数はそれらの第1引数で与える"正規表現"を preg 関数では "/正規表現/" のようにデリミターで囲んで渡さなければいけない、正規表現に使われる制御文字は \ でエスケープが必用、など結構大変です。 ほかにも、・関数に渡す引数は重複してはいけないなどの制約があり、また Fatal Error ではなく、Depreciated ですが宣言されたクラス名と同じ名前のメソッドのコンストラクターは別途 __construct__ 宣言が必用など変更箇所が続出して、とてもスクリプトを追っかけて一々修正していくのでは困難と思われました。

そこで、それらの変更箇所を検索して、決まった手順で自動的に修正する PHP ソフトを作って見ることにしました。始めは一つひとつの項目を特定のファイルに適用し、それが上手くいくとディレクトリ全体、更には再帰的にプロジェクト全体に適用という風に徐々に増やして、複数項目を一挙に処理する様にしました。 こうして開発したアプリ修正ソフトを WIZ プロジェクトに適用した結果、夫々の項目毎に処理したファイルの合計が 103 ファイル、適用箇所は数百箇所以上に及び、WIZ_V1.42_with_task は PHP7.4 で一応動作するようになりました。 自動修正では処理し切れていない箇所もあると思いますが、思っていたより処理結果が良いようなのでここで発表することにしました。 残った問題点は追々検討することとして皆さんのご意見をお聞かせ下さい。

自動修正ソフトは linux 上の WIZ がインストールされたサーバーの web root 以下に maintenance ディレクトリを作成し、その配下の index.html を、PC からブラウザでアクセスして処理するようにしています。 maintenance.tar.gz にはディレクトリと配下の index.html, phpupdate.php というアプリ自動修正ソフトと css, 画像データなどが一括して入っています。 linux サーバーなどにインストールしてお使いください。
1. maintenance.tar.gz

maintenance.tar.gz
No.0: Wiz スケジューラー(グループウェア)と PHP ヴァージョンアップに伴うアプリの自動修正について
日時: 2022/08/14 15:19
名前: ナオヤM ID:M0pcex9Y メールを送信する
参照: https://vmorita.com/bbs/wizphp/forum.shtml?room=wizphp

ネット社会になって SNS 全盛の昨今、無料のグループウェア(スケジューラー)など見向きもされない時代なのかもしれません。しかし僕がリストラになった18年前はサイボーズなどのグループウェアは高価で、仲間と始めたベンチャー企業にはとても手が出ない代物でした。そこで探した結果「システムコンサルタント社」が提供する La!Cooda WIZ というスケジューラーは無料ながら本格的な内容でベンチャー企業には十分な機能を備えていました。サポートは有料だったと思いますが、僕がエンジニアだったこともあり、PHP を勉強しながら何とかサポートを受けずに立ち上げることが出来ました。 その後クロスサイトスクリプティング対策を行いTask機能を追加するなどバージョンもアップして V1.42 になった後、サービスが中止され会社も消滅してしまいました。 さすがに数百~数千行もある PHP プログラム数十本からなるソフトウェアを無料でサポートするのは難しかったのでしょう。当時は PHP5.2 の時代で文字コードも EUC_JP でした。

その後も 2009 年頃まではゴールデンウィークの祝日変更や 2100 年までの春分の日・秋分の日の自動計算などの改良をしながら文字コードを UTF-8 にするなど個人的に細々とメンテしてきたのですが、PHP5.4 になって、クロスサイトスクリプティング対策の htmlspecialchars() の第4引数に "utf-8" とコード指定しないと動作しなくなったので苦労したのを覚えています。

そのベンチャー企業も退職して年金生活者となり、PCもプログラミングどころかキーボードの打ち込みもミスだらけで PHP など無縁の生活をしていたのですが、コロナ不況下でソフト担当者をリストラしたベンチャーの社長から呼び出しを受け、無給で手伝うことになってしまいました。ところがその会社が WIZ を退職時そのままの状態で、令和の天皇誕生日も海の日・山の日の祝日も対策しないまま使い続けているのを目の当たりにして、何とかしなきゃと思い、PHP アップデート対応を始めることになりました。

(全部表示中) もどる  正順に表示   スレッド一覧   新規スレッド作成