5.7 日本語URLの対応について

2014年9月5日 at 0:30

本家版の5.7系 では 日本語URLに対応していません。
5.6系以前は日本版開発チームで日本語URLの対応をしていましたが、5.7系では対応するかご意見いただきたいと思います。

日本語URLを導入した5.6系までの問題点
・日本語URLページにページリストブロックを設置し、「ここのページ以下の階層」を選択した場合に、動かない。

これは日本語URLがデコードされた状態でデータベースに保存されますが、ページリストではエンコードされたURLを見に行くためのエラーです。

・フルページキャッシュを使っている時に、キャッシュファイル名の文字数制限をオーバーしてエラーメッセージが画面に表示される可能性が高い。
英数字だけだと1文字1バイトですが、日本語は1文字3バイトになります。
ファイル名はOSに依存しますが、文字数制限があるため、長い日本語URLを使うとエラーになります。

主に2つを挙げましたが、今まで「こんな弊害があった」または「便利だった」という事例をお持ちの方も投稿していただけると助かります。また「対応すべき」「すべきでない」といったご意見もよろしくおねがいします。

タグ:

Re: 5.7 日本語URLの対応について

2014年9月9日 at 10:05
本家にマルチバイトURLが採用されました。(9/8現在)

テストしたところ
キャッシュファイルでエラーが出ましたので報告します。

/src/Cache/Page/FilePageCache.php:68
file_put_contents(): failed to open stream: File name too long
 

Re: 5.7 日本語URLの対応について

2014年9月12日 at 12:06
日本語に限らずあらゆる文字が通る状態だったので、一部は消すように変更しました。また、PAGE_PATH_SEGMENT_MAX_LENGTH の数値で切るようにしました。ただ、それでもURLエンコードされたURLをもとに作成されるキャッシュファイルはファイル名が長い。

Whoops \ Exception \ ErrorException (E_WARNING)
file_put_contents(/path/to/application/files/cache/pages/%/E/3/%E3%82(中略)%AB.cache): failed to open stream: Invalid argument
/path/to/concrete/src/Cache/Page/FilePageCache.php:68