SlideShare a Scribd company logo
1 of 58
Webアプリケーションフレームワークとしての
Drupalの可能性
Nov 16th 2018 / Developers Festa Sapporo 2018
ANNAI Inc. CTO Yoshikazu Aoyama
about me
青山 義万(あおやま よしかず)
ANNAI Inc CTO
Drupal Japan User Group
Drupalさっぽろ
Twitter: @blauerberg
3
● Founded in 2007
● Started with Drupal 5
● HQ in Kyoto, Japan
● Team of 6 people working
remotely
is a Drupal development agency
Drupalとは
• PHPで実装されたオープンソースのCMS
• Initial release: May 18 2000 (18 years ago)
• drupal.org 上で開発やコミュニティ活動が行われ
ている
https://en.wikipedia.org/wiki/Drupal
https://www.drupal.org/
drupal.org
• 47,736 people with Git accounts
• 1,780 Git commits this week
• 1,360,212 users on drupal.org
• 1,153,239 sites running Drupal
• 7,473,937 comments and issue followups
https://www.drupal.org/getting-involved
drupal.org
drupal.org
• 非常に大きなコミュニティで開発も活発
• コアだけなくモジュール(プラグイン)も含めた開
発情報が全てdrupal.orgで管理されている
• コアだけではなくモジュールも含め、専属のセ
キュリティチームによりセキュリティ更新を提
供している
drupal.org
Drupalコアだけでなく、全モジュールのバ
グや開発情報が一元管理されている
Drupalの特徴
• 多数のモジュールによる拡張性の高さ?
• 多言語対応?
• セキュリティ?
• エンタープライズ向け?
Drupalの特徴
https://www.drupal.com/product/web-content-management
https://www.drupal.com/product/web-content-management
Drupalの特徴
Flexible Content Architecture
Create the right content architecture using the
Admin Interface or do it programatically.
要するに…
システムで管理するモデルを「コードで定義」す
るだけでなく「管理UIから定義」(自動生成)するこ
ともできる。
Drupalを使ってシンプルなWeb
アプリを実際に作ってみる
• モデルの定義とCRUD機能の実装
• 検索機能付きのモデルの一覧の実装
• REST API
Drupalの始め方
最低限必要なもの
php
composer
SQLite
Drupalで新しいプロジェクトを
作成して立ち上げる
$ composer create-project drupal-composer/drupal-project:8.x-dev
my_drupal_project --stability dev --no-interaction
$ cd my_drupal_project
$ vendor/bin/drupal site:install standard --db-type="sqlite" --no-interaction
$ vendor/bin/drupal server
$ open http://127.0.0.1:8088/
https://github.com/drupal-composer/drupal-project
Hello Drupal!
モデルの定義と
CRUD機能の実装
Entity
Drupalで管理するデータの基本クラス
https://www.drupal.org/docs/8/api/entity-api
Drupal内のほぼ全てのデータは
Entity
https://www.drupal.org/files/classDrupal_Entities.png
Entity
ベースとなる2種類のEntity
• ContentEntity (ContentEntityBase)
モデルのデータを管理するためのEntity
• ConfigurationEntity (ConfigEntityBase)
システムの設定情報を管理するためのEntity
独自のモデルを作成するため
のステップ
1. カスタムモジュールを作成する
2. ContentEntityBaseのサブクラスを作る
3. baseFieldDefinitionsメソッドでモデルのフィー
ルドを定義する
カスタムモジュールを作成する
自動生成 (scaffolding) できます。
$ vendor/bin/drupal generate:module --module="my_custom_module"
https://www.drupal.org/docs/8/creating-custom-modules/let-drupal-8-know-about-your-module-with-an-infoyml-file
ContentEntityBaseの
サブクラスを作る
自動生成 (scaffolding) できます。
$ vendor/bin/drupal generate:entity:content --module="my_custom_module” --
entity-class="BookEntity"
ContentEntityBaseの
サブクラスを作る
Scaffoldingで自動生成されたbook entity
Entityの派生クラスのnamespaceを
Drupal{module_name}Entity にすることで、
独自のEntityがフレームワークに自動検出され、
様々な機能をコードの実装や設定をせずに利用できる
ようになる。
ContentEntityBaseの
サブクラスを作る
baseFieldDefinitionsメソッドで
モデルのフィールドを定義する
public static function baseFieldDefinitions(EntityTypeInterface $entity_type) {
$fields = parent::baseFieldDefinitions($entity_type);
// (snip)
$fields['isbn'] = BaseFieldDefinition::create('string’)
->setLabel(t('ISBN’))
->setDisplayConfigurable('form', TRUE)
->setDisplayConfigurable('view', TRUE);
https://www.drupal.org/docs/8/api/entity-api/defining-and-using-content-entity-field-definitions
baseFieldDefinitionsメソッドで
モデルのフィールドを定義する
baseFieldDefinitionsメソッドで追加したフィールド
baseFieldDefinitionsメソッドで
モデルのフィールドを定義する
baseFieldDefinitionsメソッドの実装とデータベースの
スキーマを同期する。
$ vendor/bin/drush -y entity:updates --cache-clear
コードを書かずに管理UIから
モデルのフィールドを定義する
コードを書かずに管理UIから
モデルのフィールドを定義する
コードを書かずに管理UIから
モデルのフィールドを定義する
管理UIから追加したフィールド
CRUD機能のコード
https://www.drupal.org/files/classDrupal_Entities.png
save(), load(), delete()
preSave(), postLoad()などの
インターフェース定義
save(), load(), delete()などの実装
必要に応じてpreSave(), postLoad()
などを実装
コード実装 vs 管理UIでの定義
• どちらもできることは変わらない
• 併用できる
• ホットモックやPoCを作る際は管理UIで定義すると
素早く作り込むことができる
• 管理UIで定義した内容はConfigurationEntityとして
ymlフォーマットでコード化することも可能
検索機能付きのモデルの
一覧の実装
よくある実装例
コントローラーのindexメソッドでデータのコレク
ションを取得し、データをテンプレートに渡して
一覧でリスト表示する。
Drupalの場合
「Views」で管理UIから全てを自動生成することが
できる。
Viewsとは
• 管理UIからデータの抽出条件や出力フォーマッ
トを指定し、Drupal内のデータを取得・出力す
るモジュール
Viewsの典型的なユースケース
(ユーザーの一覧)
ユーザー(UserEntity)の一覧と検索フォーム
Viewsを使いモデルの一覧を
自動生成する
Viewsを使いモデルの一覧を
自動生成する
出力フォーマット 出力するデータ
フィルター条件
Viewsを使いモデルの一覧を
自動生成する
独自のモデルで
Viewsの機能を使うには
EntityViewsData のサブクラスを実装する。
モデルのクラスがContentEntityBaseのサブクラ
スの場合は、サブクラス側で特に追加で実装し
なければならないロジックはない。
EntityViewsData
namespace Drupalmy_custom_moduleEntity;
use DrupalviewsEntityViewsData;
class BookEntityViewsData extends EntityViewsData {
public function getViewsData() {
$data = parent::getViewsData();
// Additional information for Views integration,
// such as table joins, can be put here.
return $data;
}
}
Viewsでできること
• 典型的なユースケースとしては「検索機能付き
の一覧」の作成
• コードを書かずに全てを管理UIから自動生成で
きる
• モデルの定義の変更も自動的に認識する
• 複数のモデルを結合して取り出すことも可能
REST API
REST APIを提供する2つの方法
• 1. RESTful Web Service モジュール
• 2. JSON API モジュール
RESTful Web Service
• Drupal 8.0からコアに含まれているモジュール
• APIの定義自体の変更はできない
RESTful Web Service
JSON API
• Drupal 8.7からコアに入る予定
• APIの定義自体を管理UIから変更できる(with
JSON API Extras)
• 今後はこちらが主流になると思われる
JSON APIでできること
• APIの有効化・無効化
• エンドポイントURLの変更
• モデルの各プロパティのフィルタ
• プロパティのキー変換 (Alias)
• プロパティの値の変換 (Enhancer)
• OpenAPI Spec準拠のドキュメント生成
JSON API (管理UI)
JSON API (管理UI)
独自のモデルで
JSON APIを使う
モデルをContentEntityBaseのサブクラスとして
定義すれば、JSON API向けにインターフェース
等を追加で実装する必要はない。
独自のエンティティで
JSON APIを使う
OpenAPI準拠の
APIドキュメントの自動生成が可能
Thank you!

More Related Content

What's hot

Web api開発をするなら ドキュメントは自動生成にしておこう__ph_per_kaigi2021_
Web api開発をするなら ドキュメントは自動生成にしておこう__ph_per_kaigi2021_Web api開発をするなら ドキュメントは自動生成にしておこう__ph_per_kaigi2021_
Web api開発をするなら ドキュメントは自動生成にしておこう__ph_per_kaigi2021_Akito Tsukahara
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Kohei Tokunaga
 
分散システムについて語らせてくれ
分散システムについて語らせてくれ分散システムについて語らせてくれ
分散システムについて語らせてくれKumazaki Hiroki
 
AWSでDockerを扱うためのベストプラクティス
AWSでDockerを扱うためのベストプラクティスAWSでDockerを扱うためのベストプラクティス
AWSでDockerを扱うためのベストプラクティスAmazon Web Services Japan
 
SPAのルーティングの話
SPAのルーティングの話SPAのルーティングの話
SPAのルーティングの話ushiboy
 
ストリーム処理プラットフォームにおけるKafka導入事例 #kafkajp
ストリーム処理プラットフォームにおけるKafka導入事例 #kafkajpストリーム処理プラットフォームにおけるKafka導入事例 #kafkajp
ストリーム処理プラットフォームにおけるKafka導入事例 #kafkajpYahoo!デベロッパーネットワーク
 
Hack言語に賭けたチームの話
Hack言語に賭けたチームの話Hack言語に賭けたチームの話
Hack言語に賭けたチームの話Yuji Otani
 
3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)
3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)
3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)Kuniyasu Suzaki
 
Process Monitor の使い方
Process Monitor の使い方Process Monitor の使い方
Process Monitor の使い方彰 村地
 
自律型データベース Oracle Autonomous Database 最新情報
自律型データベース Oracle Autonomous Database 最新情報自律型データベース Oracle Autonomous Database 最新情報
自律型データベース Oracle Autonomous Database 最新情報オラクルエンジニア通信
 
Laravelを用いたゲームサーバーのチューニング
Laravelを用いたゲームサーバーのチューニングLaravelを用いたゲームサーバーのチューニング
Laravelを用いたゲームサーバーのチューニングNOW PRODUCTION
 
初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!Tetsutaro Watanabe
 
Fault, Error, Failure の違い
Fault, Error, Failure の違いFault, Error, Failure の違い
Fault, Error, Failure の違いMizuhiro Kaimai
 
Spring Boot ユーザの方のための Quarkus 入門
Spring Boot ユーザの方のための Quarkus 入門Spring Boot ユーザの方のための Quarkus 入門
Spring Boot ユーザの方のための Quarkus 入門tsukasamannen
 
【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発
【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発
【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発日本マイクロソフト株式会社
 
Oracle jdk 20190827 - 今、あらためてOracle提供のJDKを語る
Oracle jdk 20190827 - 今、あらためてOracle提供のJDKを語るOracle jdk 20190827 - 今、あらためてOracle提供のJDKを語る
Oracle jdk 20190827 - 今、あらためてOracle提供のJDKを語るオラクルエンジニア通信
 
クラウド環境下におけるAPIリトライ設計
クラウド環境下におけるAPIリトライ設計クラウド環境下におけるAPIリトライ設計
クラウド環境下におけるAPIリトライ設計Kouji YAMADA
 
ファイルシステム比較
ファイルシステム比較ファイルシステム比較
ファイルシステム比較NaoyaFukuda
 

What's hot (20)

Web api開発をするなら ドキュメントは自動生成にしておこう__ph_per_kaigi2021_
Web api開発をするなら ドキュメントは自動生成にしておこう__ph_per_kaigi2021_Web api開発をするなら ドキュメントは自動生成にしておこう__ph_per_kaigi2021_
Web api開発をするなら ドキュメントは自動生成にしておこう__ph_per_kaigi2021_
 
Guide To AGPL
Guide To AGPLGuide To AGPL
Guide To AGPL
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
分散システムについて語らせてくれ
分散システムについて語らせてくれ分散システムについて語らせてくれ
分散システムについて語らせてくれ
 
AWSでDockerを扱うためのベストプラクティス
AWSでDockerを扱うためのベストプラクティスAWSでDockerを扱うためのベストプラクティス
AWSでDockerを扱うためのベストプラクティス
 
SPAのルーティングの話
SPAのルーティングの話SPAのルーティングの話
SPAのルーティングの話
 
ストリーム処理プラットフォームにおけるKafka導入事例 #kafkajp
ストリーム処理プラットフォームにおけるKafka導入事例 #kafkajpストリーム処理プラットフォームにおけるKafka導入事例 #kafkajp
ストリーム処理プラットフォームにおけるKafka導入事例 #kafkajp
 
Hack言語に賭けたチームの話
Hack言語に賭けたチームの話Hack言語に賭けたチームの話
Hack言語に賭けたチームの話
 
3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)
3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)
3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)
 
Process Monitor の使い方
Process Monitor の使い方Process Monitor の使い方
Process Monitor の使い方
 
自律型データベース Oracle Autonomous Database 最新情報
自律型データベース Oracle Autonomous Database 最新情報自律型データベース Oracle Autonomous Database 最新情報
自律型データベース Oracle Autonomous Database 最新情報
 
Laravelを用いたゲームサーバーのチューニング
Laravelを用いたゲームサーバーのチューニングLaravelを用いたゲームサーバーのチューニング
Laravelを用いたゲームサーバーのチューニング
 
初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!
 
Fault, Error, Failure の違い
Fault, Error, Failure の違いFault, Error, Failure の違い
Fault, Error, Failure の違い
 
Spring Boot ユーザの方のための Quarkus 入門
Spring Boot ユーザの方のための Quarkus 入門Spring Boot ユーザの方のための Quarkus 入門
Spring Boot ユーザの方のための Quarkus 入門
 
【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発
【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発
【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発
 
Di入門
Di入門Di入門
Di入門
 
Oracle jdk 20190827 - 今、あらためてOracle提供のJDKを語る
Oracle jdk 20190827 - 今、あらためてOracle提供のJDKを語るOracle jdk 20190827 - 今、あらためてOracle提供のJDKを語る
Oracle jdk 20190827 - 今、あらためてOracle提供のJDKを語る
 
クラウド環境下におけるAPIリトライ設計
クラウド環境下におけるAPIリトライ設計クラウド環境下におけるAPIリトライ設計
クラウド環境下におけるAPIリトライ設計
 
ファイルシステム比較
ファイルシステム比較ファイルシステム比較
ファイルシステム比較
 

Similar to Webアプリケーションフレームワークとしての Drupalの可能性

新時代のエンタープライズデータマネジメント Drupal expo2017
新時代のエンタープライズデータマネジメント� Drupal expo2017新時代のエンタープライズデータマネジメント� Drupal expo2017
新時代のエンタープライズデータマネジメント Drupal expo2017惠 紀野
 
Together drupal case study 20160622
Together drupal case study 20160622Together drupal case study 20160622
Together drupal case study 20160622Hidekazu Ikeda
 
楽天の中のわたしと勉強会
楽天の中のわたしと勉強会楽天の中のわたしと勉強会
楽天の中のわたしと勉強会Rakuten Group, Inc.
 
CKAN日本語コミュニティミートアップ
CKAN日本語コミュニティミートアップCKAN日本語コミュニティミートアップ
CKAN日本語コミュニティミートアップFumihiro Kato
 
CKAN日本語コミュニティの現状と課題
CKAN日本語コミュニティの現状と課題CKAN日本語コミュニティの現状と課題
CKAN日本語コミュニティの現状と課題Fumihiro Kato
 
今時のオンプレなgithubクローン環境構築
今時のオンプレなgithubクローン環境構築今時のオンプレなgithubクローン環境構築
今時のオンプレなgithubクローン環境構築You&I
 
Drupal business consortiam in Japan:DBCJ 20140909
Drupal business consortiam in Japan:DBCJ  20140909Drupal business consortiam in Japan:DBCJ  20140909
Drupal business consortiam in Japan:DBCJ 20140909Hidekazu Ikeda
 
Drupalを活用した Linked Open Dataの 実践的試行環境の構築
Drupalを活用した Linked Open Dataの実践的試行環境の構築Drupalを活用した Linked Open Dataの実践的試行環境の構築
Drupalを活用した Linked Open Dataの 実践的試行環境の構築Takanori Hayashi
 
Drupal9 update (0214/2020)
Drupal9 update (0214/2020)Drupal9 update (0214/2020)
Drupal9 update (0214/2020)Yasushi Osonoi
 
C++CLIで、ネイティブCの保守開発に.NETを使って楽をしよう
C++CLIで、ネイティブCの保守開発に.NETを使って楽をしようC++CLIで、ネイティブCの保守開発に.NETを使って楽をしよう
C++CLIで、ネイティブCの保守開発に.NETを使って楽をしようStudy Group by SciencePark Corp.
 
インドのインターネット環境 との戦い方
インドのインターネット環境との戦い方インドのインターネット環境との戦い方
インドのインターネット環境 との戦い方健一 辰濱
 
dkanのご紹介-150704CMSどうでしょう夏の陣
dkanのご紹介-150704CMSどうでしょう夏の陣dkanのご紹介-150704CMSどうでしょう夏の陣
dkanのご紹介-150704CMSどうでしょう夏の陣Kyoko Ohtagaki
 
今さら聞けない人のためのGit超入門 OSC2018名古屋版
今さら聞けない人のためのGit超入門 OSC2018名古屋版今さら聞けない人のためのGit超入門 OSC2018名古屋版
今さら聞けない人のためのGit超入門 OSC2018名古屋版VirtualTech Japan Inc./Begi.net Inc.
 
Facebook事例&サービス紹介(2010.9.16セミナープレゼン資料)
Facebook事例&サービス紹介(2010.9.16セミナープレゼン資料)Facebook事例&サービス紹介(2010.9.16セミナープレゼン資料)
Facebook事例&サービス紹介(2010.9.16セミナープレゼン資料)Hiroshi Tsukamoto
 
初めてのLinux part1 in 2018 #伊勢it交流会
初めてのLinux part1 in 2018 #伊勢it交流会初めてのLinux part1 in 2018 #伊勢it交流会
初めてのLinux part1 in 2018 #伊勢it交流会Netwalker lab kapper
 

Similar to Webアプリケーションフレームワークとしての Drupalの可能性 (20)

新時代のエンタープライズデータマネジメント Drupal expo2017
新時代のエンタープライズデータマネジメント� Drupal expo2017新時代のエンタープライズデータマネジメント� Drupal expo2017
新時代のエンタープライズデータマネジメント Drupal expo2017
 
Osc2010 Slide
Osc2010 SlideOsc2010 Slide
Osc2010 Slide
 
Drupal ISV 20160630
Drupal ISV 20160630Drupal ISV 20160630
Drupal ISV 20160630
 
Together drupal case study 20160622
Together drupal case study 20160622Together drupal case study 20160622
Together drupal case study 20160622
 
Devsumi2013 fumi
Devsumi2013 fumiDevsumi2013 fumi
Devsumi2013 fumi
 
楽天の中のわたしと勉強会
楽天の中のわたしと勉強会楽天の中のわたしと勉強会
楽天の中のわたしと勉強会
 
CKAN日本語コミュニティミートアップ
CKAN日本語コミュニティミートアップCKAN日本語コミュニティミートアップ
CKAN日本語コミュニティミートアップ
 
GitHub Handson
GitHub HandsonGitHub Handson
GitHub Handson
 
CKAN日本語コミュニティの現状と課題
CKAN日本語コミュニティの現状と課題CKAN日本語コミュニティの現状と課題
CKAN日本語コミュニティの現状と課題
 
今時のオンプレなgithubクローン環境構築
今時のオンプレなgithubクローン環境構築今時のオンプレなgithubクローン環境構築
今時のオンプレなgithubクローン環境構築
 
Drupal business consortiam in Japan:DBCJ 20140909
Drupal business consortiam in Japan:DBCJ  20140909Drupal business consortiam in Japan:DBCJ  20140909
Drupal business consortiam in Japan:DBCJ 20140909
 
Drupalを活用した Linked Open Dataの 実践的試行環境の構築
Drupalを活用した Linked Open Dataの実践的試行環境の構築Drupalを活用した Linked Open Dataの実践的試行環境の構築
Drupalを活用した Linked Open Dataの 実践的試行環境の構築
 
Drupal9 update (0214/2020)
Drupal9 update (0214/2020)Drupal9 update (0214/2020)
Drupal9 update (0214/2020)
 
C++CLIで、ネイティブCの保守開発に.NETを使って楽をしよう
C++CLIで、ネイティブCの保守開発に.NETを使って楽をしようC++CLIで、ネイティブCの保守開発に.NETを使って楽をしよう
C++CLIで、ネイティブCの保守開発に.NETを使って楽をしよう
 
インドのインターネット環境 との戦い方
インドのインターネット環境との戦い方インドのインターネット環境との戦い方
インドのインターネット環境 との戦い方
 
dkanのご紹介-150704CMSどうでしょう夏の陣
dkanのご紹介-150704CMSどうでしょう夏の陣dkanのご紹介-150704CMSどうでしょう夏の陣
dkanのご紹介-150704CMSどうでしょう夏の陣
 
Atlassian Summit US 2017 #augj
Atlassian Summit US 2017 #augjAtlassian Summit US 2017 #augj
Atlassian Summit US 2017 #augj
 
今さら聞けない人のためのGit超入門 OSC2018名古屋版
今さら聞けない人のためのGit超入門 OSC2018名古屋版今さら聞けない人のためのGit超入門 OSC2018名古屋版
今さら聞けない人のためのGit超入門 OSC2018名古屋版
 
Facebook事例&サービス紹介(2010.9.16セミナープレゼン資料)
Facebook事例&サービス紹介(2010.9.16セミナープレゼン資料)Facebook事例&サービス紹介(2010.9.16セミナープレゼン資料)
Facebook事例&サービス紹介(2010.9.16セミナープレゼン資料)
 
初めてのLinux part1 in 2018 #伊勢it交流会
初めてのLinux part1 in 2018 #伊勢it交流会初めてのLinux part1 in 2018 #伊勢it交流会
初めてのLinux part1 in 2018 #伊勢it交流会
 

More from Yoshikazu Aoyama

大規模サイトにおけるユーザーレベルのキャッシュ活用によるパフォーマンスチューニング
大規模サイトにおけるユーザーレベルのキャッシュ活用によるパフォーマンスチューニング大規模サイトにおけるユーザーレベルのキャッシュ活用によるパフォーマンスチューニング
大規模サイトにおけるユーザーレベルのキャッシュ活用によるパフォーマンスチューニングYoshikazu Aoyama
 
APIを利用したMauticと他システムとの連携について
APIを利用したMauticと他システムとの連携についてAPIを利用したMauticと他システムとの連携について
APIを利用したMauticと他システムとの連携についてYoshikazu Aoyama
 
Mauticをリバースプロキシの下で使うときに気をつけること
Mauticをリバースプロキシの下で使うときに気をつけることMauticをリバースプロキシの下で使うときに気をつけること
Mauticをリバースプロキシの下で使うときに気をつけることYoshikazu Aoyama
 
日本語ではじめるDrupal Console in Sapporo
日本語ではじめるDrupal Console in Sapporo日本語ではじめるDrupal Console in Sapporo
日本語ではじめるDrupal Console in SapporoYoshikazu Aoyama
 
日本語ではじめるDrupal Console
日本語ではじめるDrupal Console日本語ではじめるDrupal Console
日本語ではじめるDrupal ConsoleYoshikazu Aoyama
 
DrupalCafe Vol.35 - Dockerで始めるDrupal
DrupalCafe Vol.35 - Dockerで始めるDrupalDrupalCafe Vol.35 - Dockerで始めるDrupal
DrupalCafe Vol.35 - Dockerで始めるDrupalYoshikazu Aoyama
 
Drupalサイトをセキュアに運用するには(入門編)
Drupalサイトをセキュアに運用するには(入門編)Drupalサイトをセキュアに運用するには(入門編)
Drupalサイトをセキュアに運用するには(入門編)Yoshikazu Aoyama
 

More from Yoshikazu Aoyama (8)

大規模サイトにおけるユーザーレベルのキャッシュ活用によるパフォーマンスチューニング
大規模サイトにおけるユーザーレベルのキャッシュ活用によるパフォーマンスチューニング大規模サイトにおけるユーザーレベルのキャッシュ活用によるパフォーマンスチューニング
大規模サイトにおけるユーザーレベルのキャッシュ活用によるパフォーマンスチューニング
 
APIを利用したMauticと他システムとの連携について
APIを利用したMauticと他システムとの連携についてAPIを利用したMauticと他システムとの連携について
APIを利用したMauticと他システムとの連携について
 
Mauticをリバースプロキシの下で使うときに気をつけること
Mauticをリバースプロキシの下で使うときに気をつけることMauticをリバースプロキシの下で使うときに気をつけること
Mauticをリバースプロキシの下で使うときに気をつけること
 
日本語ではじめるDrupal Console in Sapporo
日本語ではじめるDrupal Console in Sapporo日本語ではじめるDrupal Console in Sapporo
日本語ではじめるDrupal Console in Sapporo
 
日本語ではじめるDrupal Console
日本語ではじめるDrupal Console日本語ではじめるDrupal Console
日本語ではじめるDrupal Console
 
Drupal ONSEN 2015
Drupal ONSEN 2015Drupal ONSEN 2015
Drupal ONSEN 2015
 
DrupalCafe Vol.35 - Dockerで始めるDrupal
DrupalCafe Vol.35 - Dockerで始めるDrupalDrupalCafe Vol.35 - Dockerで始めるDrupal
DrupalCafe Vol.35 - Dockerで始めるDrupal
 
Drupalサイトをセキュアに運用するには(入門編)
Drupalサイトをセキュアに運用するには(入門編)Drupalサイトをセキュアに運用するには(入門編)
Drupalサイトをセキュアに運用するには(入門編)
 

Recently uploaded

Windowsアップデート後の黒い画面を修正する方法|データ復元|ブラックスクリーン
Windowsアップデート後の黒い画面を修正する方法|データ復元|ブラックスクリーンWindowsアップデート後の黒い画面を修正する方法|データ復元|ブラックスクリーン
Windowsアップデート後の黒い画面を修正する方法|データ復元|ブラックスクリーンivanwang53
 
Windows 10、Windows 11の付箋を簡単に復元する6つの方法|データ復元
Windows 10、Windows 11の付箋を簡単に復元する6つの方法|データ復元Windows 10、Windows 11の付箋を簡単に復元する6つの方法|データ復元
Windows 10、Windows 11の付箋を簡単に復元する6つの方法|データ復元ivanwang53
 
動的 & 非同期コンポーネント / Dynamic & Async Components
動的 & 非同期コンポーネント / Dynamic & Async Components動的 & 非同期コンポーネント / Dynamic & Async Components
動的 & 非同期コンポーネント / Dynamic & Async Componentsokitamasashi
 
あらゆる通信環境で切れない「ネットモーション」のモバイルアクセス [NetMotion]
あらゆる通信環境で切れない「ネットモーション」のモバイルアクセス [NetMotion]あらゆる通信環境で切れない「ネットモーション」のモバイルアクセス [NetMotion]
あらゆる通信環境で切れない「ネットモーション」のモバイルアクセス [NetMotion]Taka Narita
 
Windows Defenderのフル・クイック・カスタム・オフラインスキャンを実行する方法.docx
Windows Defenderのフル・クイック・カスタム・オフラインスキャンを実行する方法.docxWindows Defenderのフル・クイック・カスタム・オフラインスキャンを実行する方法.docx
Windows Defenderのフル・クイック・カスタム・オフラインスキャンを実行する方法.docxivanwang53
 
ダウンロードがダウンロード(Downloads)フォルダに表示されない」問題の対処法
ダウンロードがダウンロード(Downloads)フォルダに表示されない」問題の対処法ダウンロードがダウンロード(Downloads)フォルダに表示されない」問題の対処法
ダウンロードがダウンロード(Downloads)フォルダに表示されない」問題の対処法ivanwang53
 

Recently uploaded (6)

Windowsアップデート後の黒い画面を修正する方法|データ復元|ブラックスクリーン
Windowsアップデート後の黒い画面を修正する方法|データ復元|ブラックスクリーンWindowsアップデート後の黒い画面を修正する方法|データ復元|ブラックスクリーン
Windowsアップデート後の黒い画面を修正する方法|データ復元|ブラックスクリーン
 
Windows 10、Windows 11の付箋を簡単に復元する6つの方法|データ復元
Windows 10、Windows 11の付箋を簡単に復元する6つの方法|データ復元Windows 10、Windows 11の付箋を簡単に復元する6つの方法|データ復元
Windows 10、Windows 11の付箋を簡単に復元する6つの方法|データ復元
 
動的 & 非同期コンポーネント / Dynamic & Async Components
動的 & 非同期コンポーネント / Dynamic & Async Components動的 & 非同期コンポーネント / Dynamic & Async Components
動的 & 非同期コンポーネント / Dynamic & Async Components
 
あらゆる通信環境で切れない「ネットモーション」のモバイルアクセス [NetMotion]
あらゆる通信環境で切れない「ネットモーション」のモバイルアクセス [NetMotion]あらゆる通信環境で切れない「ネットモーション」のモバイルアクセス [NetMotion]
あらゆる通信環境で切れない「ネットモーション」のモバイルアクセス [NetMotion]
 
Windows Defenderのフル・クイック・カスタム・オフラインスキャンを実行する方法.docx
Windows Defenderのフル・クイック・カスタム・オフラインスキャンを実行する方法.docxWindows Defenderのフル・クイック・カスタム・オフラインスキャンを実行する方法.docx
Windows Defenderのフル・クイック・カスタム・オフラインスキャンを実行する方法.docx
 
ダウンロードがダウンロード(Downloads)フォルダに表示されない」問題の対処法
ダウンロードがダウンロード(Downloads)フォルダに表示されない」問題の対処法ダウンロードがダウンロード(Downloads)フォルダに表示されない」問題の対処法
ダウンロードがダウンロード(Downloads)フォルダに表示されない」問題の対処法
 

Webアプリケーションフレームワークとしての Drupalの可能性