【CakePHP3】jsonデータをDBへ格納する際にbeforeMarshal()を活用してみた

Bake-with-CakePHP Logo

英語のmarshalは

  1. 《軍事》〔部隊を〕整列[集結]させる
  2. 〔考えや事実などを〕整理する、まとめる

という意味で使われる。CakePHP3のbeforeMarshal()は2.の解釈で、

「リクエストデータをEntity化させる前にデータをごにょごにょする」

という目的で、TableもしくはBehaviorクラスで使うことが可能だ。今回はそんなbeforeMarshal()を、jsonデータを取り扱いたい時に活用した事例を書く。検証したCakePHPのバージョンは3.6.13。

もっと見る

imgタグにloading=lazy属性を仕込んでみたら、PageSpeed Insightsで「オフスクリーン画像の遅延読み込み」の指摘が無くなった

img loading=lazy6

つい先週だが、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】イベントトラッキングのクリックが効いているかをすぐに確認する方法

Google Analytics1

つい先日のことだったのだが、とあるサイトのページ内リンクにGoogle Analytics(以下、GAと略す)のイベントトラッキング機能でクリック計測ができるようタグを仕込んだら、マーケティング担当者から

「試しにリンクをクリックしてみたのだけど、GAの画面(行動→イベント→概要にて、イベントカテゴリ名で検索)で調べてもクリック情報が反映されていない」

との話があった。まさか…と思って仕込んだgaタグを見てみたが、特に文法エラーもなく、クリック時にjsのエラーも出ていなかった。

もっと見る