英語のmarshalは
- 《軍事》〔部隊を〕整列[集結]させる
- 〔考えや事実などを〕整理する、まとめる
という意味で使われる。CakePHP3のbeforeMarshal()は2.の解釈で、
「リクエストデータをEntity化させる前にデータをごにょごにょする」
という目的で、TableもしくはBehaviorクラスで使うことが可能だ。今回はそんなbeforeMarshal()を、jsonデータを取り扱いたい時に活用した事例を書く。検証したCakePHPのバージョンは3.6.13。
英語のmarshalは
という意味で使われる。CakePHP3のbeforeMarshal()は2.の解釈で、
「リクエストデータをEntity化させる前にデータをごにょごにょする」
という目的で、TableもしくはBehaviorクラスで使うことが可能だ。今回はそんなbeforeMarshal()を、jsonデータを取り扱いたい時に活用した事例を書く。検証したCakePHPのバージョンは3.6.13。
CakePHP3の機能の1つ、モデルのないフォームを実際の開発で何回か使うことがあったので、どんな機能なのかを掻い摘んで紹介しつつ、実際の利用シーンについて紹介する。検証したCakePHPのバージョンは3.6.13。
Dockerのローカル開発環境でCakePHP3を使った開発をしていると、たまに
General error: 5 database is locked
と表示されてエラー画面が返されることがある。今回はその対処法と原因について紹介する。検証したCakePHPのバージョンは3.6.13。
つい先週だが、SEOの情報発信で有名な海外SEO情報ブログにて「ネイティブLazyloadがウェブ標準になる」という情報がシェアされた:
ネイティブLazyloadを可能にするloading=lazy属性がウェブ標準に、Chrome以外のブラウザサポートに期待
ネイティブLazyloadの情報自体は昨年からアナウンスされていたが、今回はChromeブラウザに限らずウェブ標準になっていくという点が新しいようだ。
Lazyloadはその名の通り、画像をページのロード後に時間差で読み込む処理だ。今までLazyloadの導入はjsを使った実装が必要だったのだが、それがどんなブラウザでも
<img>タグにloading=”lazy”と書くだけで遅延読み込みが実装できる
ようになる可能性が出てきたわけで、何とも興味津々な話である。現時点ではChrome(Version 76以降)以外のブラウザではサポートされていないようだが、今後の動向に注目だ。
で、ここからが本題。
今回のアナウンスより少し前に、WordPressにもlazy属性を付与できるプラグインがGoogleから提供されるようになったので、プラグイン導入の前後で元々PageSpeed Insightsから指摘されていた
「オフスクリーン画像の遅延読み込み」
の指摘がどう変わるか確かめてみた。
つい先日のことだったのだが、とあるサイトのページ内リンクにGoogle Analytics(以下、GAと略す)のイベントトラッキング機能でクリック計測ができるようタグを仕込んだら、マーケティング担当者から
「試しにリンクをクリックしてみたのだけど、GAの画面(行動→イベント→概要にて、イベントカテゴリ名で検索)で調べてもクリック情報が反映されていない」
との話があった。まさか…と思って仕込んだgaタグを見てみたが、特に文法エラーもなく、クリック時にjsのエラーも出ていなかった。