日本語に限らずあらゆる文字が通る状態だったので、一部は消すように変更しました。また、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
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つを挙げましたが、今まで「こんな弊害があった」または「便利だった」という事例をお持ちの方も投稿していただけると助かります。また「対応すべき」「すべきでない」といったご意見もよろしくおねがいします。
タグ:
Your post has been saved and will be published after approval by the forum moderator.
acliss
Re: 5.7 日本語URLの対応について
テストしたところ
キャッシュファイルでエラーが出ましたので報告します。
/src/Cache/Page/FilePageCache.php:68
file_put_contents(): failed to open stream: File name too long