a-blog cms Ver. 3.0.0 をリリースしました!
2021年12月24日にメジャーバージョンアップである Ver. 3.0.0 がリリースされました!
ここでは、Ver. 3.0.0 で新しく追加された主な機能や変更点などを紹介させていただきます。
主な新機能・変更点
- PHP7.2.5 - PHP8.0対応
- ionCube PHP Encoder による暗号化を廃止
- Webhook機能を追加
- API 機能を追加
- エントリーのエクスポート・インポート機能を追加
- テンプレートのキャッシュ機能を追加
- Redis、Opcache、APCuやファイルキャッシュなどをキャッシュオプションを用意しパフォーマンスを向上
- 新テーマUTSUWA の追加
※最後に変更点一覧を掲載しています。
PHP7.2.5 - PHP8.0対応
お待たせいたしました。Ver. 3.0.0 で「PHP8.0」 の対応をいたしました。PHP8.0 を使う事でよりパフォーマンスよくご利用いただけます。
また、Ver. 2.11.x までは PHP5.3.3 から対応しておりましたが、対応PHPを 「PHP7.2.5」 以上へ変更いたしました。これはセキュリティや今後のCMS開発を考え、対応するPHPの範囲をPHP7.2.5以上とさせていただきました。
PHP 7.2.5 未満の環境で動作させたい場合は、引き続き Ver. 2.11 系をメンテナンスしておりますので、Ver.2.11の利用をご検討ください。
ionCube PHP Encoder による暗号化を廃止
今後より早く新しいPHPのバージョンに対応したパッケージを提供するため、ionCube PHP Encoder による暗号化を廃止いたしました。
ionCube から最新のPHPバージョンに対応したものがリリースされず、新しいPHPバージョンへの対応が遅れてしまうことが以前より問題として上がっておりました。この問題に対処するためにVer.3.0.0 にて暗号化を廃止いたしました。
暗号化がされていない分、従来よりもセキュリティレベルがやや下がる部分はありますが、コアプログラムについては引き続き通常では読めない難読化を行っています。引き続き安心してご利用いただけるように、素のPHPのコードよりも攻撃しづらい仕組みを提供いたします。
そのほかの暗号化を廃止することのメリットは、以下になります。
- インストール時に、ionCube Loaderのインストール作業が不要になる
- インストール時に、インストールできるサーバー環境が増える
- サーバー側で強制的にPHPバージョンが変更されても、サイトが停止しない
- PHPのバージョンを変更する際に、パッケージを変える必要がなくなる
- ionCube Loaderの開発状況に左右されないため、新しいPHPバージョンに対応したパッケージがより早く提供される
ライセンスファイルの仕様変更
ionCube PHP Encoderの廃止によりライセンスファイルの仕様が変更されたため、以前のライセンスファイルとの互換性がなくなりました。 大変お手数ですがVer.3.0.0以上へのアップデートの際には、ライセンスファイルをマイページから再度ダウンロードしてライセンスを適用してください。
ダウンロード方法
- マイページの所有ライセンス一覧に移動する
- ダウンロードボタンから「Ver. 3.0 以上」を選択し、ダウンロードする
Webhook 機能を追加
新しい機能「Webhook」が追加されました。
Webhookを使うと、a-blog cmsでのイベント(エントリー更新やフォームでの送信)をフックして、外部サービスと連携できるようになります。
例えば以下のような事ができるようになります。
- 記事が更新されたら Slackなどのチャットツールに通知
- IFTTTなどのWebサービスを経由してTwitterやFacebookなどのSNSに自動で投稿
カスタマイズが柔軟にできるようになっているので、さまざまなサービスと連携することが可能です。
詳細はドキュメントをご覧ください。
API 機能を追加
新しい機能「API」が追加されました。
モジュールIDが出力する変数をAPI(JSON)で取得できる機能です。
従来ではJSONデータを取得する時に、JSON形式のテンプレートをわざわざ作って対応していましたが、その必要がなくなります。
JavaScriptなどで、JSONデータを用意して対応していた方には朗報ではないでしょうか。
例えば以下のようなURLで「summary_index」のモジュールIDが呼び出せるようになります。
https://example.com/api/summary_index/
またURLコンテキストに対応しているので、柔軟にコンテンツを出力できます。
https://example.com/field/price/60000/page/2/api/summary_index/
詳細はドキュメントをご覧ください。
エントリーのエクスポート・インポート機能を追加
従来では、ブログ毎のエクスポートや、サイト全体のエクスポートはできましたが、エントリー単位でのエクスポート・インポートはできませんでした。
これが、Ver. 3.0.0 の「エントリーのエクスポート・インポート機能」を使う事で可能となりました。
例えば以下のような場合に便利な機能です
- サイトリニューアル案件でリリース直前に現行サイトと開発サイトのエントリー差分をうめる
- ステージ環境でチェックしたエントリーを本番環境へ移す
エクスポート・インポート方法
いずれも、管理ページのエントリー一覧から操作できます。
エクスポート
- 管理ページのエントリー一覧へ移動する
- エクスポートしたいエントリーにチェックをつける
- セレクトメニューでエクスポートを選択し、実行する
インポート
- 管理ページのエントリー一覧へ移動する
- ページ上部にある「インポート」ボタンをクリックしてインポート画面に移動する
- エクスポートデータを選択してインポートする
Redis、Opcache、APCuやファイルキャッシュなどのキャッシュオプションを用意しパフォーマンスを向上
Ver. 2.11 まではデータベースによるページキャッシュのみを提供しておりましたが、Ver. 3.0.0 で複数のキャッシュを新しく用意しました。キャッシュの方法が複数用意されたため、環境に合わせて設定できます。
キャッシュの種類
- ページキャッシュ
- テンプレートキャッシュ
- コンフィグキャッシュ
- カスタムフィールドキャッシュ
- 一時的なキャッシュ
キャッシュの方法
- APCuによるキャッシュ
- PHPファイルによるキャッシュ
- ファイルによるキャッシュ
- メモリーによる一時キャッシュ
- Redisによるキャッシュ
これにより、キャッシュ方法によっては大幅なパフォーマンスアップが望めます。特に「OPcache」や「APCu」が利用できるサーバーだと効果が感じられると思います。
詳細はドキュメントをご覧ください。
ページキャッシュの仕様変更
ページキャッシュがより細かく設定できるようになりました。これにより環境やサイト特性に合わせたキャッシュ戦略を立てられるようになりました。
- POST時(エントリー保存時など)に、キャッシュをクリアしないオプションを用意
- エントリーのキャッシュ有効期限の設定を追加
- キャッシュクリア範囲(ターゲットブログ)の設定を分かりやすくなるよう変更
更新頻度が低い場合のページキャッシュ設定例
1週間に一回程度の更新頻度が少ないサイトであれば、キャッシュ有効時間を伸ばしPOST時にキャッシュをクリアをします。 更新頻度が少ないので、POST時のキャッシュクリアも頻繁に発生せず、キャッシュの有効時間も長いので、キャッシュヒット率もあがります。
ページキャッシュ: 有効
POST時のキャッシュクリア: 有効
キャッシュ有効時間: 2592000秒(30日間)
エントリーキャッシュ有効時間: 2592000秒(30日間)
キャッシュクリアの対象ブログ: サイト構成に沿って適切に設定
クライアントキャッシュ設定: 120秒
更新頻度が高く、アクセス数の多い場合のページキャッシュの設定例
更新頻度が高く、アクセス数の多いサイトの場合、POST時のキャッシュクリアはしないようにします。 更新頻度が高いので、その都度キャッシュをクリアしてしまうと、キャッシュのヒット率が下がってしまうからです。
またキャッシュクリアをPOST時にしてしまうと、キャッシュが一気に消え、瞬間的にキャッシュヒット率が極端に下がり、サーバーの負荷も上がってしまいます。 そこでキャッシュの有効時間を短くし有効時間切れで、ばらばらにキャッシュがクリアされていくようにしています。
ページキャッシュ: 有効
POST時のキャッシュクリア: 無効
キャッシュ有効時間: 300秒(5分間)
エントリーキャッシュ有効時間: 2592000秒(30日間)
キャッシュクリアの対象ブログ: サイト構成に沿って適切に設定
クライアントキャッシュ設定: 120秒
テンプレートのキャッシュ機能を追加
新しい機能として「テンプレートのキャッシュ機能」ができました。
Ver. 2.11 までは、ページキャッシュが利用できないログイン時やキャッシュがない状況では、
テンプレートの組み立て(パスの書き換えやインクルードの処理など)を毎回処理していました。
これがテンプレートキャッシュを利用することで、テンプレート組み立てを毎回しなくて済み、パフォーマンスが向上します。
ただし テンプレートキャッシュを利用するには制限事項 があります。
テンプレートキャッシュが使える条件(制限事項)
テンプレートの作り方に制限があります。インクルード文の中に使用できるグローバル変数が限定されます。
<!-- 以下のようなインクルード文で使用するグローバル変数が限定されます。 -->
@include("/admin/entry/bcd/%{BCD}.html")
使用できるグローバル変数
%{ECD}
%{BCD}
%{PBCD}
%{RBCD}
%{CCD}
%{PCCD}
%{RCCD}
%{ALIAS_CODE}
%{IS_ADMIN}
%{MODULE_NAME}
%{MODULE_ID}
%{ADMIN_PATH}
%{ADMIN_PATH_MID}
テンプレートのカスタマイズに制限はありますが、テンプレートキャッシュを有効にできると、ログインしている時や管理画面、キャッシュがない時などで、 パフォーマンス向上が望めますのでぜひお試しください。
詳細はドキュメントをご覧ください。
新テーマUTSUWA の追加
「UTSUWA」は今までの公式テーマと異なり、デザインの品質を保ち、運用しやすい構造を提供するテーマです。
Webサイト制作のビジュアル設計に関わるコストを抑えるため、豊富なユニットのスタイルでコンテンツをどんどん作成していくことが可能なスタートアップに最適なテーマです。
今までの公式テーマは a-blog cms を学習していただくことに比重を置いていましたが、実際のユーザーの方々にヒアリングし、すぐに実務で使えるテーマとして開発されました。
テーマ全体では1カラムのレイアウトを採用しています。
採用情報や、企業情報の一覧ページは、一覧ページでもエントリーで更新できるようになっています。
使用方法
UTSUWAテーマはVer.3.0から公式テーマになりました。インストール時にUTSUWAを選択すると、使用することができます。
XDファイルの配布
UTSUWAテーマのXDファイルは以下のページで配布されています。
UTSUWAテーマを使用してデザインカンプを作成する際にご使用ください。
リリースノート
新機能
- CMS-5440 エントリーのエクスポート・インポート機能を追加
- CMS-5602 Webhooks 機能を追加
- CMS-5603 API機能(モジュールIDのGET API)を追加
- CMS-5779 テンプレートのキャッシュ機能を追加
- CMS-5767 Radis、OPcache、APCuやファイルキャッシュなどのキャッシュオプションを用意しパフォーマンスを向上
- CMS-5786 レスポンス直前のHook(beforeResponse)を用意(キャッシュ時も対応)
- CMS-5672 新しい校正オプション(substring)を追加
変更点
- CMS-5770 対応PHPバージョンを 7.2.5 - 8.0.x に変更
- CMS-5768 「ionCube PHP Encoder」による暗号化を廃止
- CMS-5774 ログインセッションを独自ではなくPHP標準機能を利用するように改修
- CMS-5778 ページキャッシュをデータベースキャッシュをやめ、ファイルキャッシュ、または Redisキャッシュを選択できるように改良
- CMS-5620 ゴミ箱で削除日時と削除ユーザーが分かるように修正
- CMS-5730 管理画面の空データ状態の表示を調整
- CMS-5780 開発環境の不可視ファイルの見直し
- CMS-5766 承認依頼の「却下」の文言を「差し戻し」へ変更
- CMS-5731 承認機能の 承認依頼と承認するときのボタンのラベルを変更
- CMS-5616 js-lazy-load にアニメーションを付与
- CMS-5784 Yahoo地図機能を削除
- CMS-5785 Instagram連携機能を削除
- CMS-5781 キャッシュ生成リスト機能を削除
テーマ変更点
- CMS-5777 UTSUWAテーマを追加
- CMS-5720 各テーマのDart Sass対応
- CMS-5792 bootstrapテーマを削除
- CMS-5775 サイトテーマ: 印刷時のスタイル修正とremからpxへの変更
- CMS-5642 developテーマによく使う組み込みJSと同じものをバンドル
バグフィックス
- CMS-5776 画像ユニットで「そのまま」の中央寄せにした時に画像が幅いっぱいになる問題を修正
ダウンロードについて
ご利用いただくには、ダウンロードページからVer.3.0をダウンロードしてください。
- 対応してるPHPバージョン:PHP7.2.5〜PHP8.0
- Ver.3.0用のlicense.phpをマイページから新しくダウンロードして再度適用必要があります
- 現在は新規インストールパッケージのみ(アップデートパッケージの配布は1月中旬を予定)
本件に関するお問い合わせ先
有限会社アップルップル
メールアドレス:info@appleple.com
お問い合わせフォーム:https://www.a-blogcms.jp/contact/
日々使いやすいシステムとなるよう改善を勤めておりますので、皆様からの貴重なフィードバック、お待ちしております。
今後とも a-blog cms のことをどうぞよろしくお願いいたします。