Submit Search
Upload
Drupal8 〜 モダンなアーキテクチャのPHPベース OSS CMS
•
0 likes
•
1,564 views
Tomoki Hasegawa
Follow
オープンソースカンファレンス 2016 Tokyo / Spring の発表資料です。
Read less
Read more
Software
Report
Share
Report
Share
1 of 99
Download now
Download to read offline
Recommended
Drupal 8 - モダンなアーキテクチャのPHPベースOSS CMS
Drupal 8 - モダンなアーキテクチャのPHPベースOSS CMS
Tomoki Hasegawa
PHPカンファレンス2016 初心者セッション
PHPカンファレンス2016 初心者セッション
Hideo Kashioka
Windows で PHP をビルドしてみた
Windows で PHP をビルドしてみた
y-uti
フレームワークを使うべき 3 つの理由
フレームワークを使うべき 3 つの理由
Kenichi Mukai
anyenv + phpenv + php-build が便利すぎる件
anyenv + phpenv + php-build が便利すぎる件
y-uti
FuelPHP活用事例
FuelPHP活用事例
Yusuke Naka
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
Junichi Ishida
JIT for PHP を試した
JIT for PHP を試した
y-uti
Recommended
Drupal 8 - モダンなアーキテクチャのPHPベースOSS CMS
Drupal 8 - モダンなアーキテクチャのPHPベースOSS CMS
Tomoki Hasegawa
PHPカンファレンス2016 初心者セッション
PHPカンファレンス2016 初心者セッション
Hideo Kashioka
Windows で PHP をビルドしてみた
Windows で PHP をビルドしてみた
y-uti
フレームワークを使うべき 3 つの理由
フレームワークを使うべき 3 つの理由
Kenichi Mukai
anyenv + phpenv + php-build が便利すぎる件
anyenv + phpenv + php-build が便利すぎる件
y-uti
FuelPHP活用事例
FuelPHP活用事例
Yusuke Naka
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
Junichi Ishida
JIT for PHP を試した
JIT for PHP を試した
y-uti
Pythonで始めるWebアプリケーション開発
Pythonで始めるWebアプリケーション開発
Takahiro Kubo
PHP カンファレンス福岡 参加報告
PHP カンファレンス福岡 参加報告
y-uti
PHPデプロイツールの世界
PHPデプロイツールの世界
Yuuki Takezawa
第21回関西PHP勉強会 ReactPHPは もっと流行って欲しい #phpkansai
第21回関西PHP勉強会 ReactPHPは もっと流行って欲しい #phpkansai
Hisateru Tanaka
今日から始めるLaravel
今日から始めるLaravel
Masaru Matsuo
PIAXで作る P2Pネットワーク
PIAXで作る P2Pネットワーク
祐司 伊藤
活動報告9 laravel5入門-
活動報告9 laravel5入門-
vx-pc-club
RFC: "var" Deprecation
RFC: "var" Deprecation
y-uti
PHP x AWS でスケーラブルなシステムをつくろう
PHP x AWS でスケーラブルなシステムをつくろう
Taiji INOUE
PHPカンファレンス2014の懇親会飛び込みLT資料
PHPカンファレンス2014の懇親会飛び込みLT資料
Junichi Ishida
8時間耐久 PHP構築の教室
8時間耐久 PHP構築の教室
Yusuke Ando
最強のPHP統合開発環境 PHPStorm
最強のPHP統合開発環境 PHPStorm
晃 遠山
PHPの今とこれから2015
PHPの今とこれから2015
Rui Hirokawa
LibreOffice を Windows 上でビルドする UPDATE2
LibreOffice を Windows 上でビルドする UPDATE2
Tomofumi Yagi
いまさらComposer
いまさらComposer
Mika Kane
NetBeans、FuelPHP と過ごしたこの 2 ヶ月
NetBeans、FuelPHP と過ごしたこの 2 ヶ月
suno88
Laravel 5.1 LTSでサービスを作る
Laravel 5.1 LTSでサービスを作る
infinite_loop
emscriptenでC/C++プログラムをwebブラウザから使うまでの難所攻略
emscriptenでC/C++プログラムをwebブラウザから使うまでの難所攻略
祐司 伊藤
App Engine と いまどきのPHP
App Engine と いまどきのPHP
sokamo1975
Phoenixでblog作った
Phoenixでblog作った
Norifumi Kawamoto
[さくらのクラウド] Drupalスタートアップスクリプトの紹介
[さくらのクラウド] Drupalスタートアップスクリプトの紹介
さくらインターネット株式会社
mocloud.io ハンズオン サインアップから初めてのスタック作成まで ver.2
mocloud.io ハンズオン サインアップから初めてのスタック作成まで ver.2
Yasuhiro Horiuchi
More Related Content
What's hot
Pythonで始めるWebアプリケーション開発
Pythonで始めるWebアプリケーション開発
Takahiro Kubo
PHP カンファレンス福岡 参加報告
PHP カンファレンス福岡 参加報告
y-uti
PHPデプロイツールの世界
PHPデプロイツールの世界
Yuuki Takezawa
第21回関西PHP勉強会 ReactPHPは もっと流行って欲しい #phpkansai
第21回関西PHP勉強会 ReactPHPは もっと流行って欲しい #phpkansai
Hisateru Tanaka
今日から始めるLaravel
今日から始めるLaravel
Masaru Matsuo
PIAXで作る P2Pネットワーク
PIAXで作る P2Pネットワーク
祐司 伊藤
活動報告9 laravel5入門-
活動報告9 laravel5入門-
vx-pc-club
RFC: "var" Deprecation
RFC: "var" Deprecation
y-uti
PHP x AWS でスケーラブルなシステムをつくろう
PHP x AWS でスケーラブルなシステムをつくろう
Taiji INOUE
PHPカンファレンス2014の懇親会飛び込みLT資料
PHPカンファレンス2014の懇親会飛び込みLT資料
Junichi Ishida
8時間耐久 PHP構築の教室
8時間耐久 PHP構築の教室
Yusuke Ando
最強のPHP統合開発環境 PHPStorm
最強のPHP統合開発環境 PHPStorm
晃 遠山
PHPの今とこれから2015
PHPの今とこれから2015
Rui Hirokawa
LibreOffice を Windows 上でビルドする UPDATE2
LibreOffice を Windows 上でビルドする UPDATE2
Tomofumi Yagi
いまさらComposer
いまさらComposer
Mika Kane
NetBeans、FuelPHP と過ごしたこの 2 ヶ月
NetBeans、FuelPHP と過ごしたこの 2 ヶ月
suno88
Laravel 5.1 LTSでサービスを作る
Laravel 5.1 LTSでサービスを作る
infinite_loop
emscriptenでC/C++プログラムをwebブラウザから使うまでの難所攻略
emscriptenでC/C++プログラムをwebブラウザから使うまでの難所攻略
祐司 伊藤
App Engine と いまどきのPHP
App Engine と いまどきのPHP
sokamo1975
Phoenixでblog作った
Phoenixでblog作った
Norifumi Kawamoto
What's hot
(20)
Pythonで始めるWebアプリケーション開発
Pythonで始めるWebアプリケーション開発
PHP カンファレンス福岡 参加報告
PHP カンファレンス福岡 参加報告
PHPデプロイツールの世界
PHPデプロイツールの世界
第21回関西PHP勉強会 ReactPHPは もっと流行って欲しい #phpkansai
第21回関西PHP勉強会 ReactPHPは もっと流行って欲しい #phpkansai
今日から始めるLaravel
今日から始めるLaravel
PIAXで作る P2Pネットワーク
PIAXで作る P2Pネットワーク
活動報告9 laravel5入門-
活動報告9 laravel5入門-
RFC: "var" Deprecation
RFC: "var" Deprecation
PHP x AWS でスケーラブルなシステムをつくろう
PHP x AWS でスケーラブルなシステムをつくろう
PHPカンファレンス2014の懇親会飛び込みLT資料
PHPカンファレンス2014の懇親会飛び込みLT資料
8時間耐久 PHP構築の教室
8時間耐久 PHP構築の教室
最強のPHP統合開発環境 PHPStorm
最強のPHP統合開発環境 PHPStorm
PHPの今とこれから2015
PHPの今とこれから2015
LibreOffice を Windows 上でビルドする UPDATE2
LibreOffice を Windows 上でビルドする UPDATE2
いまさらComposer
いまさらComposer
NetBeans、FuelPHP と過ごしたこの 2 ヶ月
NetBeans、FuelPHP と過ごしたこの 2 ヶ月
Laravel 5.1 LTSでサービスを作る
Laravel 5.1 LTSでサービスを作る
emscriptenでC/C++プログラムをwebブラウザから使うまでの難所攻略
emscriptenでC/C++プログラムをwebブラウザから使うまでの難所攻略
App Engine と いまどきのPHP
App Engine と いまどきのPHP
Phoenixでblog作った
Phoenixでblog作った
Viewers also liked
[さくらのクラウド] Drupalスタートアップスクリプトの紹介
[さくらのクラウド] Drupalスタートアップスクリプトの紹介
さくらインターネット株式会社
mocloud.io ハンズオン サインアップから初めてのスタック作成まで ver.2
mocloud.io ハンズオン サインアップから初めてのスタック作成まで ver.2
Yasuhiro Horiuchi
Cloud on the BEACH 2016 - 会社にAWSを導入した話
Cloud on the BEACH 2016 - 会社にAWSを導入した話
Naoto Teruya
20160429 JAWS-UG沖縄 Cloud on the BEACH 2016 AWS全サービス紹介
20160429 JAWS-UG沖縄 Cloud on the BEACH 2016 AWS全サービス紹介
Midori Ikegami
ネットゲーム開発者がサーバレスしてみたver1.10
ネットゲーム開発者がサーバレスしてみたver1.10
Yasuharu Suzuki
Cloud on the_beach_aws入門_公開
Cloud on the_beach_aws入門_公開
Hideki Ojima
SecurityCamp2015「バグハンティング入門」
SecurityCamp2015「バグハンティング入門」
Masato Kinugawa
kintone x AWSで超ファストシステムを作ろう 〜 AWSでkintone APIをよりよく使う〜
kintone x AWSで超ファストシステムを作ろう 〜 AWSでkintone APIをよりよく使う〜
Kazuki Murahama
AWS WAF でセキュリティ対策_JAWS-UG沖縄勉強会_Cloud on the BEACH 2016
AWS WAF でセキュリティ対策_JAWS-UG沖縄勉強会_Cloud on the BEACH 2016
Sanehiko Yogi
AWS Black Belt Online Seminar Amazon EC2
AWS Black Belt Online Seminar Amazon EC2
Amazon Web Services Japan
AWS初心者向けWebinar AWS上でのDDoS対策
AWS初心者向けWebinar AWS上でのDDoS対策
Amazon Web Services Japan
[Aurora事例祭り]毎日新聞ニュースサイトをクラウド化 ~Amazon Aurora 導入事例紹介~
[Aurora事例祭り]毎日新聞ニュースサイトをクラウド化 ~Amazon Aurora 導入事例紹介~
Amazon Web Services Japan
Viewers also liked
(12)
[さくらのクラウド] Drupalスタートアップスクリプトの紹介
[さくらのクラウド] Drupalスタートアップスクリプトの紹介
mocloud.io ハンズオン サインアップから初めてのスタック作成まで ver.2
mocloud.io ハンズオン サインアップから初めてのスタック作成まで ver.2
Cloud on the BEACH 2016 - 会社にAWSを導入した話
Cloud on the BEACH 2016 - 会社にAWSを導入した話
20160429 JAWS-UG沖縄 Cloud on the BEACH 2016 AWS全サービス紹介
20160429 JAWS-UG沖縄 Cloud on the BEACH 2016 AWS全サービス紹介
ネットゲーム開発者がサーバレスしてみたver1.10
ネットゲーム開発者がサーバレスしてみたver1.10
Cloud on the_beach_aws入門_公開
Cloud on the_beach_aws入門_公開
SecurityCamp2015「バグハンティング入門」
SecurityCamp2015「バグハンティング入門」
kintone x AWSで超ファストシステムを作ろう 〜 AWSでkintone APIをよりよく使う〜
kintone x AWSで超ファストシステムを作ろう 〜 AWSでkintone APIをよりよく使う〜
AWS WAF でセキュリティ対策_JAWS-UG沖縄勉強会_Cloud on the BEACH 2016
AWS WAF でセキュリティ対策_JAWS-UG沖縄勉強会_Cloud on the BEACH 2016
AWS Black Belt Online Seminar Amazon EC2
AWS Black Belt Online Seminar Amazon EC2
AWS初心者向けWebinar AWS上でのDDoS対策
AWS初心者向けWebinar AWS上でのDDoS対策
[Aurora事例祭り]毎日新聞ニュースサイトをクラウド化 ~Amazon Aurora 導入事例紹介~
[Aurora事例祭り]毎日新聞ニュースサイトをクラウド化 ~Amazon Aurora 導入事例紹介~
Similar to Drupal8 〜 モダンなアーキテクチャのPHPベース OSS CMS
Firefox Ecosystem in Kagoshima
Firefox Ecosystem in Kagoshima
dynamis
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
ThinReports
Firefox OS - Blaze Your Own Path
Firefox OS - Blaze Your Own Path
dynamis
Apps for Web Platform
Apps for Web Platform
dynamis
Titanium Mobile
Titanium Mobile
Naoya Ito
NAO/Pepper 開発環境 について
NAO/Pepper 開発環境 について
Takuji Kawata
Firefox OS アプリ開発
Firefox OS アプリ開発
Yoshitomo Akimoto
SocketStream入門
SocketStream入門
Kohei Kadowaki
ヒカルのGo 資料 Webアプリケーションの作り方
ヒカルのGo 資料 Webアプリケーションの作り方
Yosuke Furukawa
Mono at Microsoft Tech Days Japan 2009
Mono at Microsoft Tech Days Japan 2009
Atsushi Eno
Osoljp studygroup201303
Osoljp studygroup201303
Noriyasu Sakaue
2020/06/16 tsjp-azure-staticwebapps-vs_codespaces
2020/06/16 tsjp-azure-staticwebapps-vs_codespaces
Issei Hiraoka
OpenGLプログラミング
OpenGLプログラミング
幸雄 村上
VisualSFMとMeshLabとCloudCompareによるドローン撮影画像を用いたデジタル地図作成
VisualSFMとMeshLabとCloudCompareによるドローン撮影画像を用いたデジタル地図作成
Hiroshi Yamaguchi
Android Lecture #01 @PRO&BSC Inc.
Android Lecture #01 @PRO&BSC Inc.
Yuki Higuchi
ぶっとびケータイ+Firefox OS Apps
ぶっとびケータイ+Firefox OS Apps
EnsekiTT
Try Firefox OS
Try Firefox OS
dynamis
Firefox os hackathon
Firefox os hackathon
dynamis
YAPC::Kansai 2017 - macOSネイティブアプリ作成におけるPerlの活用
YAPC::Kansai 2017 - macOSネイティブアプリ作成におけるPerlの活用
純生 野田
PUSH通知証明書作成ツールを作った
PUSH通知証明書作成ツールを作った
Tomoki Hasegawa
Similar to Drupal8 〜 モダンなアーキテクチャのPHPベース OSS CMS
(20)
Firefox Ecosystem in Kagoshima
Firefox Ecosystem in Kagoshima
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Firefox OS - Blaze Your Own Path
Firefox OS - Blaze Your Own Path
Apps for Web Platform
Apps for Web Platform
Titanium Mobile
Titanium Mobile
NAO/Pepper 開発環境 について
NAO/Pepper 開発環境 について
Firefox OS アプリ開発
Firefox OS アプリ開発
SocketStream入門
SocketStream入門
ヒカルのGo 資料 Webアプリケーションの作り方
ヒカルのGo 資料 Webアプリケーションの作り方
Mono at Microsoft Tech Days Japan 2009
Mono at Microsoft Tech Days Japan 2009
Osoljp studygroup201303
Osoljp studygroup201303
2020/06/16 tsjp-azure-staticwebapps-vs_codespaces
2020/06/16 tsjp-azure-staticwebapps-vs_codespaces
OpenGLプログラミング
OpenGLプログラミング
VisualSFMとMeshLabとCloudCompareによるドローン撮影画像を用いたデジタル地図作成
VisualSFMとMeshLabとCloudCompareによるドローン撮影画像を用いたデジタル地図作成
Android Lecture #01 @PRO&BSC Inc.
Android Lecture #01 @PRO&BSC Inc.
ぶっとびケータイ+Firefox OS Apps
ぶっとびケータイ+Firefox OS Apps
Try Firefox OS
Try Firefox OS
Firefox os hackathon
Firefox os hackathon
YAPC::Kansai 2017 - macOSネイティブアプリ作成におけるPerlの活用
YAPC::Kansai 2017 - macOSネイティブアプリ作成におけるPerlの活用
PUSH通知証明書作成ツールを作った
PUSH通知証明書作成ツールを作った
More from Tomoki Hasegawa
Reading php terminal-gameboy-emulator
Reading php terminal-gameboy-emulator
Tomoki Hasegawa
とある受託ベンダの開発環境
とある受託ベンダの開発環境
Tomoki Hasegawa
iOS Developers Conference Japan 2016
iOS Developers Conference Japan 2016
Tomoki Hasegawa
エンジニアのお祭り
エンジニアのお祭り
Tomoki Hasegawa
勉強会のこちら側とあちら側
勉強会のこちら側とあちら側
Tomoki Hasegawa
tvOSでWebSocketを使う
tvOSでWebSocketを使う
Tomoki Hasegawa
「これを買っている人はこれも買っています」実装してみた PHP side
「これを買っている人はこれも買っています」実装してみた PHP side
Tomoki Hasegawa
tvOSネイティブアプリを作る
tvOSネイティブアプリを作る
Tomoki Hasegawa
「これを買っている人はこれも買っています」実装してみた
「これを買っている人はこれも買っています」実装してみた
Tomoki Hasegawa
TestFlightみたいなのを自作する
TestFlightみたいなのを自作する
Tomoki Hasegawa
PHPでスマホアプリにプッシュ通知する
PHPでスマホアプリにプッシュ通知する
Tomoki Hasegawa
Stargazer Meetup #1
Stargazer Meetup #1
Tomoki Hasegawa
PHPカンファレンス福岡に 行ってきた
PHPカンファレンス福岡に 行ってきた
Tomoki Hasegawa
CakePHP3ウォークスルー
CakePHP3ウォークスルー
Tomoki Hasegawa
はじめてのiOSアプリ開発 Swift対応版
はじめてのiOSアプリ開発 Swift対応版
Tomoki Hasegawa
AppStore申請を一式まるっと自動化する
AppStore申請を一式まるっと自動化する
Tomoki Hasegawa
PHPerのためのSwift入門
PHPerのためのSwift入門
Tomoki Hasegawa
オプショナル型。〜なんとなく付ける ! ? 撲滅〜 改訂版
オプショナル型。〜なんとなく付ける ! ? 撲滅〜 改訂版
Tomoki Hasegawa
Swiftのプロパティオブザーバを使い倒す
Swiftのプロパティオブザーバを使い倒す
Tomoki Hasegawa
3 auto layout tips
3 auto layout tips
Tomoki Hasegawa
More from Tomoki Hasegawa
(20)
Reading php terminal-gameboy-emulator
Reading php terminal-gameboy-emulator
とある受託ベンダの開発環境
とある受託ベンダの開発環境
iOS Developers Conference Japan 2016
iOS Developers Conference Japan 2016
エンジニアのお祭り
エンジニアのお祭り
勉強会のこちら側とあちら側
勉強会のこちら側とあちら側
tvOSでWebSocketを使う
tvOSでWebSocketを使う
「これを買っている人はこれも買っています」実装してみた PHP side
「これを買っている人はこれも買っています」実装してみた PHP side
tvOSネイティブアプリを作る
tvOSネイティブアプリを作る
「これを買っている人はこれも買っています」実装してみた
「これを買っている人はこれも買っています」実装してみた
TestFlightみたいなのを自作する
TestFlightみたいなのを自作する
PHPでスマホアプリにプッシュ通知する
PHPでスマホアプリにプッシュ通知する
Stargazer Meetup #1
Stargazer Meetup #1
PHPカンファレンス福岡に 行ってきた
PHPカンファレンス福岡に 行ってきた
CakePHP3ウォークスルー
CakePHP3ウォークスルー
はじめてのiOSアプリ開発 Swift対応版
はじめてのiOSアプリ開発 Swift対応版
AppStore申請を一式まるっと自動化する
AppStore申請を一式まるっと自動化する
PHPerのためのSwift入門
PHPerのためのSwift入門
オプショナル型。〜なんとなく付ける ! ? 撲滅〜 改訂版
オプショナル型。〜なんとなく付ける ! ? 撲滅〜 改訂版
Swiftのプロパティオブザーバを使い倒す
Swiftのプロパティオブザーバを使い倒す
3 auto layout tips
3 auto layout tips
Drupal8 〜 モダンなアーキテクチャのPHPベース OSS CMS
1.
モダンなアーキテクチャのPHPベース OSS CMS 長谷川智希
2.
長谷川智希 とも き @tomzoh とむぞう 趣味 Webサイト開発,
iOSアプリ開発 レンタルカートレース, ビール, 電子工作 (mbed), … TOMZOH デジタルサーカス㈱ 副団長CTO Facebook CakePHP iOS
3.
デジタルサーカス(株) ・ Webサイト開発 ・ スマホアプリ開発 ・
自社サービス ( ) (iOS, Android) (http://appbuilder.jp) Twitter: @tomzoh
4.
Twitter: @tomzoh
5.
Twitter: @tomzoh
6.
モダンなアーキテクチャのPHPベース OSS CMS
7.
オープンソースとは、ソフトウェアの設計図にあたる ソースコードを、インターネットなどを通じて無償で 公開し、誰でもそのソフトウェアの改良、再配布が行 えるようにすること。また、そのようなソフトウェア。 OSS 出展: http://e-words.jp
8.
CMSとは、Webコンテンツを構成するテキストや画 像、レイアウト情報などを一元的に保存・管理し、サ イトを構築したり編集したりするソフトウェアのこ と。広義には、(Webサイトに限らず)デジタルコン テンツの管理を行うシステムの総称。 CMS 出展: http://e-words.jp
9.
•Drupalって? •Drupalの概要 •Drupalのアーキテクチャ •Drupalのモジュール開発 •Drupal on PHP7
10.
って? •Drupalって? •Drupalの概要 •Drupalのアーキテクチャ •Drupalのモジュール開発 •Drupal on PHP7
11.
Come for the
software, stay for the community Drupal is an open source content management platform powering millions of websites and applications. It’s built, used, and supported by an active and diverse community of people around the world.
12.
13.
14.
https://www.drupal.org
15.
の概要 •Drupalって? •Drupalの概要 •Drupalのアーキテクチャ •Drupalのモジュール開発 •Drupal on PHP7
16.
Drupal8の機能 ユーザ管理 コンテンツ管理 検索 テーマ 多言語
モバイルファースト ɔ拡張性 コメント フォーム RSS などなど
17.
Drupal8の特徴 https://www.drupal.com/product/web-content-management
18.
Drupal8の特徴 https://www.drupal.com/product/web-content-management
19.
Drupal8の特徴 https://www.drupal.com/product/web-content-management
20.
21.
コンテンツタイプ コンテンツ コメントタイプ コメント ボキャブラリー ターム ビュー
22.
コンテンツタイプ コンテンツのフォーマットを定義できる
23.
コンテンツタイプ コンテンツのフォーマットを定義できる
24.
フィールド
25.
フィールド
26.
コンテンツタイプ
27.
コンテンツ
28.
コンテンツ
29.
コンテンツタイプ コンテンツ コメントタイプ コメント ボキャブラリー ターム ビュー
30.
• 一般的なCMSでのカテゴリやタグ • コンテンツタイプのフィールドとして使える。 •
択一 / 複数選択 • 選択UI(テキスト入力 / ドロップダウン) • 択一にすればカテゴリ的に、複数選択にすれば タグ的に使える。 ボキャブラリー ターム
31.
コンテンツタイプ コンテンツ コメントタイプ コメント ボキャブラリー ターム ビュー
32.
33.
コンテンツタイプ コンテンツ コメントタイプ コメント ボキャブラリー ターム ビュー
34.
ビュー コンテンツの出力方法を定義できる
35.
ビュー コンテンツの出力方法を定義できる
36.
ビュー コンテンツの出力方法を定義できる
37.
ビュー コンテンツの出力方法を定義できる
38.
ビュー コンテンツの出力方法を定義できる
39.
ビュー コンテンツの出力方法を定義できる
40.
ビュー
41.
Drupal8の拡張性 • モジュール …
Drupalの機能をカスタマイズする • drupal.orgで集中管理されている。 • “17,712 Modules match your search”😍 • テーマ … Drupalの外観をカスタマイズする • drupal.orgで管理されている。 • drupal.org外にも沢山ある。 • ディストリビューション … モジュールとテーマのパッケージ • EC用, SNS用など、モジュールとテーマをパッケージしたもの
42.
EC コーポレートサイト コミュニティサイト 人材マッチングサイト グループウェア ネットニュース 政府・公共機関
43.
の アーキテクチャ •Drupalって? •Drupalの概要 •Drupalのアーキテクチャ •Drupalのモジュール開発 •Drupal on PHP7
44.
45.
その前に…
46.
PHPフレームワーク
47.
PHPフレームワーク • モノリシックフレームワーク • 昔のPHPフレームワークは巨大な1つのプロダクトだった。 Symfony1,
CakePHP2, Mojavi, Ethna … • フレームワークの一部の機能だけを使う、ということが難しかった。
48.
PHPフレームワーク • モノリシックフレームワーク • 昔のPHPフレームワークは巨大な1つのプロダクトだった。 Symfony1,
CakePHP2, Mojavi, Ethna … • フレームワークの一部の機能だけを使う、ということが難しかった。
49.
PHPフレームワーク • モノリシックフレームワーク • 昔のPHPフレームワークは巨大な1つのプロダクトだった。 Symfony1,
CakePHP2, Mojavi, Ethna … • フレームワークの一部の機能だけを使う、ということが難しかった。 • マイクロフレームワーク • 最近のPHPフレームワークはプロジェクト内外のライブラリを組み合わせ たプロダクトになっている。 Symfony, CakePHP3, Laravel, CodeIgniter … • すべての機能を自前で用意せず外部のライブラリを積極的に使用。 • フレームワークの一部の機能だけを使うことも可能。
50.
PHPフレームワーク • モノリシックフレームワーク • 昔のPHPフレームワークは巨大な1つのプロダクトだった。 Symfony1,
CakePHP2, Mojavi, Ethna … • フレームワークの一部の機能だけを使う、ということが難しかった。 • マイクロフレームワーク • 最近のPHPフレームワークはプロジェクト内外のライブラリを組み合わせ たプロダクトになっている。 Symfony, CakePHP3, Laravel, CodeIgniter … • すべての機能を自前で用意せず外部のライブラリを積極的に使用。 • フレームワークの一部の機能だけを使うことも可能。
51.
PSR-4
52.
PSR-4
53.
PSR-4
54.
PSR-4
55.
PHPフレームワーク • モノリシックフレームワーク • 昔のPHPフレームワークは巨大な1つのプロダクトだった。 Symfony1,
CakePHP2, Mojavi, Ethna … • フレームワークの一部の機能だけを使う、ということが難しかった。 • マイクロフレームワーク • 最近のPHPフレームワークはプロジェクト内外のライブラリを組み合わせ たプロダクトになっている。 Symfony, CakePHP3, Laravel, CodeIgniter … • すべての機能を自前で用意せず外部のライブラリを積極的に使用。 • フレームワークの一部の機能だけを使うことも可能。
56.
PHPフレームワーク • モノリシックフレームワーク • 昔のPHPフレームワークは巨大な1つのプロダクトだった。 Symfony1,
CakePHP2, Mojavi, Ethna … • フレームワークの一部の機能だけを使う、ということが難しかった。 • マイクロフレームワーク • 最近のPHPフレームワークはプロジェクト内外のライブラリを組み合わせ たプロダクトになっている。 Symfony, CakePHP3, Laravel, CodeIgniter … • すべての機能を自前で用意せず外部のライブラリを積極的に使用。 • フレームワークの一部の機能だけを使うことも可能。
57.
PHPフレームワーク • モノリシックフレームワーク • 昔のPHPフレームワークは巨大な1つのプロダクトだった。 Symfony1,
CakePHP2, Mojavi, Ethna … • フレームワークの一部の機能だけを使う、ということが難しかった。 • マイクロフレームワーク • 最近のPHPフレームワークはプロジェクト内外のライブラリを組み合わせ たプロダクトになっている。 Symfony, CakePHP3, Laravel, CodeIgniter … • すべての機能を自前で用意せず外部のライブラリを積極的に使用。 • フレームワークの一部の機能だけを使うことも可能。
58.
59.
60.
が使う外部ライブラリ { "name": "drupal/core", "description": "Drupal
is an open source content management platform powering millions of websites and applications.", "type": "drupal-core", "license": "GPL-2.0+", "require": { "php": ">=5.5.9", "symfony/class-loader": "2.7.*", "symfony/console": "2.7.*", "symfony/css-selector": "2.7.*", "symfony/dependency-injection": "2.7.*", "symfony/event-dispatcher": "2.7.*", "symfony/http-foundation": "2.7.*", "symfony/http-kernel": "2.7.*", "symfony/routing": "2.7.*", "symfony/serializer": "2.7.*", "symfony/translation": "2.7.*", "symfony/validator": "2.7.*", "symfony/process": "2.7.*", "symfony/yaml": “2.7.*", "twig/twig": "1.20.*", "doctrine/common": "~2.4.2", "doctrine/annotations": "1.2.*", "guzzlehttp/guzzle": “dev-master#1879fbe8… "symfony-cmf/routing": "1.3.*", "easyrdf/easyrdf": "0.9.*", "phpunit/phpunit": "4.6.*", "zendframework/zend-feed": "2.4.*", "mikey179/vfsStream": "~1.2", "stack/builder": "1.0.*", "egulias/email-validator": "1.2.*", "behat/mink": "~1.6", "behat/mink-goutte-driver": “dev-master#c… "fabpot/goutte": "~3.1", "masterminds/html5": "~2.1", "symfony/psr-http-message-bridge": "v0.2", "zendframework/zend-diactoros": "1.1.0" },
61.
が使う外部ライブラリ { "name": "drupal/core", "description": "Drupal
is an open source content management platform powering millions of websites and applications.", "type": "drupal-core", "license": "GPL-2.0+", "require": { "php": ">=5.5.9", "symfony/class-loader": "2.7.*", "symfony/console": "2.7.*", "symfony/css-selector": "2.7.*", "symfony/dependency-injection": "2.7.*", "symfony/event-dispatcher": "2.7.*", "symfony/http-foundation": "2.7.*", "symfony/http-kernel": "2.7.*", "symfony/routing": "2.7.*", "symfony/serializer": "2.7.*", "symfony/translation": "2.7.*", "symfony/validator": "2.7.*", "symfony/process": "2.7.*", "symfony/yaml": “2.7.*", "twig/twig": "1.20.*", "doctrine/common": "~2.4.2", "doctrine/annotations": "1.2.*", "guzzlehttp/guzzle": “dev-master#1879fbe8… "symfony-cmf/routing": "1.3.*", "easyrdf/easyrdf": "0.9.*", "phpunit/phpunit": "4.6.*", "zendframework/zend-feed": "2.4.*", "mikey179/vfsStream": "~1.2", "stack/builder": "1.0.*", "egulias/email-validator": "1.2.*", "behat/mink": "~1.6", "behat/mink-goutte-driver": “dev-master#c… "fabpot/goutte": "~3.1", "masterminds/html5": "~2.1", "symfony/psr-http-message-bridge": "v0.2", "zendframework/zend-diactoros": "1.1.0" },
62.
が使う外部ライブラリ { "name": "drupal/core", "description": "Drupal
is an open source content management platform powering millions of websites and applications.", "type": "drupal-core", "license": "GPL-2.0+", "require": { "php": ">=5.5.9", "symfony/class-loader": "2.7.*", "symfony/console": "2.7.*", "symfony/css-selector": "2.7.*", "symfony/dependency-injection": "2.7.*", "symfony/event-dispatcher": "2.7.*", "symfony/http-foundation": "2.7.*", "symfony/http-kernel": "2.7.*", "symfony/routing": "2.7.*", "symfony/serializer": "2.7.*", "symfony/translation": "2.7.*", "symfony/validator": "2.7.*", "symfony/process": "2.7.*", "symfony/yaml": “2.7.*", "twig/twig": "1.20.*", "doctrine/common": "~2.4.2", "doctrine/annotations": "1.2.*", "guzzlehttp/guzzle": “dev-master#1879fbe8… "symfony-cmf/routing": "1.3.*", "easyrdf/easyrdf": "0.9.*", "phpunit/phpunit": "4.6.*", "zendframework/zend-feed": "2.4.*", "mikey179/vfsStream": "~1.2", "stack/builder": "1.0.*", "egulias/email-validator": "1.2.*", "behat/mink": "~1.6", "behat/mink-goutte-driver": “dev-master#c… "fabpot/goutte": "~3.1", "masterminds/html5": "~2.1", "symfony/psr-http-message-bridge": "v0.2", "zendframework/zend-diactoros": "1.1.0" },
63.
が使う外部ライブラリ { "name": "drupal/core", "description": "Drupal
is an open source content management platform powering millions of websites and applications.", "type": "drupal-core", "license": "GPL-2.0+", "require": { "php": ">=5.5.9", "symfony/class-loader": "2.7.*", "symfony/console": "2.7.*", "symfony/css-selector": "2.7.*", "symfony/dependency-injection": "2.7.*", "symfony/event-dispatcher": "2.7.*", "symfony/http-foundation": "2.7.*", "symfony/http-kernel": "2.7.*", "symfony/routing": "2.7.*", "symfony/serializer": "2.7.*", "symfony/translation": "2.7.*", "symfony/validator": "2.7.*", "symfony/process": "2.7.*", "symfony/yaml": “2.7.*", "twig/twig": "1.20.*", "doctrine/common": "~2.4.2", "doctrine/annotations": "1.2.*", "guzzlehttp/guzzle": “dev-master#1879fbe8… "symfony-cmf/routing": "1.3.*", "easyrdf/easyrdf": "0.9.*", "phpunit/phpunit": "4.6.*", "zendframework/zend-feed": "2.4.*", "mikey179/vfsStream": "~1.2", "stack/builder": "1.0.*", "egulias/email-validator": "1.2.*", "behat/mink": "~1.6", "behat/mink-goutte-driver": “dev-master#c… "fabpot/goutte": "~3.1", "masterminds/html5": "~2.1", "symfony/psr-http-message-bridge": "v0.2", "zendframework/zend-diactoros": "1.1.0" },
64.
が使う外部ライブラリ { "name": "drupal/core", "description": "Drupal
is an open source content management platform powering millions of websites and applications.", "type": "drupal-core", "license": "GPL-2.0+", "require": { "php": ">=5.5.9", "symfony/class-loader": "2.7.*", "symfony/console": "2.7.*", "symfony/css-selector": "2.7.*", "symfony/dependency-injection": "2.7.*", "symfony/event-dispatcher": "2.7.*", "symfony/http-foundation": "2.7.*", "symfony/http-kernel": "2.7.*", "symfony/routing": "2.7.*", "symfony/serializer": "2.7.*", "symfony/translation": "2.7.*", "symfony/validator": "2.7.*", "symfony/process": "2.7.*", "symfony/yaml": “2.7.*", "twig/twig": "1.20.*", "doctrine/common": "~2.4.2", "doctrine/annotations": "1.2.*", "guzzlehttp/guzzle": “dev-master#1879fbe8… "symfony-cmf/routing": "1.3.*", "easyrdf/easyrdf": "0.9.*", "phpunit/phpunit": "4.6.*", "zendframework/zend-feed": "2.4.*", "mikey179/vfsStream": "~1.2", "stack/builder": "1.0.*", "egulias/email-validator": "1.2.*", "behat/mink": "~1.6", "behat/mink-goutte-driver": “dev-master#c… "fabpot/goutte": "~3.1", "masterminds/html5": "~2.1", "symfony/psr-http-message-bridge": "v0.2", "zendframework/zend-diactoros": "1.1.0" },
65.
が使う外部ライブラリ { "name": "drupal/core", "description": "Drupal
is an open source content management platform powering millions of websites and applications.", "type": "drupal-core", "license": "GPL-2.0+", "require": { "php": ">=5.5.9", "symfony/class-loader": "2.7.*", "symfony/console": "2.7.*", "symfony/css-selector": "2.7.*", "symfony/dependency-injection": "2.7.*", "symfony/event-dispatcher": "2.7.*", "symfony/http-foundation": "2.7.*", "symfony/http-kernel": "2.7.*", "symfony/routing": "2.7.*", "symfony/serializer": "2.7.*", "symfony/translation": "2.7.*", "symfony/validator": "2.7.*", "symfony/process": "2.7.*", "symfony/yaml": “2.7.*", "twig/twig": "1.20.*", "doctrine/common": "~2.4.2", "doctrine/annotations": "1.2.*", "guzzlehttp/guzzle": “dev-master#1879fbe8… "symfony-cmf/routing": "1.3.*", "easyrdf/easyrdf": "0.9.*", "phpunit/phpunit": "4.6.*", "zendframework/zend-feed": "2.4.*", "mikey179/vfsStream": "~1.2", "stack/builder": "1.0.*", "egulias/email-validator": "1.2.*", "behat/mink": "~1.6", "behat/mink-goutte-driver": “dev-master#c… "fabpot/goutte": "~3.1", "masterminds/html5": "~2.1", "symfony/psr-http-message-bridge": "v0.2", "zendframework/zend-diactoros": "1.1.0" },
66.
モダンなアーキテクチャのPHPベース OSS CMS
67.
モダンなアーキテクチャのPHPベース OSS CMS
68.
• Drupal7 • PHP5.2.4
or later • Drupal8 • PHP5.5.9 or later Drupalが要求するPHP PHP 5.3.0 PHP 5.4.0 名前空間クロージャ トレイトarray() → []
69.
2005 2007 2009 2010 2011 2015 2014 2006 2013 2008 2004 6⽉ PHP 5.3.0 3⽉
PHP 5.4.0 2012 6⽉ PHP 5.5.0 8⽉ PHP 5.6.0 PHP5.2.4+ 名前空間クロージャ トレイトarray() → [] 7⽉ PHP 4.4.0 7⽉ PHP 5.0.0 11⽉ PHP 5.1.0 12⽉ PHP 5.2.0 7⽉ 12⽉でPHP4サポート終了発表 Composer 1.0.0-alpha1 PSR−4 PHP Standard Recommendation 5⽉ Drupal 7 2016 9⽉ code freeze for Drupal 7 2⽉ Drupal 6 PHP5+ 1⽉ Drupal 5 PHP4.x.x PSR-2
70.
2005 2007 2009 2010 2011 2015 2014 2006 2013 2008 2004 6⽉ PHP 5.3.0 3⽉
PHP 5.4.0 2012 6⽉ PHP 5.5.0 8⽉ PHP 5.6.0 PHP5.2.4+ 名前空間クロージャ トレイトarray() → [] 7⽉ PHP 4.4.0 7⽉ PHP 5.0.0 11⽉ PHP 5.1.0 12⽉ PHP 5.2.0 7⽉ 12⽉でPHP4サポート終了発表 Composer 1.0.0-alpha1 PSR−4 PHP Standard Recommendation 5⽉ Drupal 7 2016 9⽉ code freeze for Drupal 7 2⽉ Drupal 6 PHP5+ 11⽉ Drupal 8 🎉 1⽉ Drupal 5 PHP4.x.x PSR-2
71.
2005 2007 2009 2010 2011 2015 2014 2006 2013 2008 2004 6⽉ PHP 5.3.0 3⽉
PHP 5.4.0 2012 6⽉ PHP 5.5.0 8⽉ PHP 5.6.0 PHP5.2.4+ PHP5.5.9+ 名前空間クロージャ トレイトarray() → [] 7⽉ PHP 4.4.0 7⽉ PHP 5.0.0 11⽉ PHP 5.1.0 12⽉ PHP 5.2.0 7⽉ 12⽉でPHP4サポート終了発表 Composer 1.0.0-alpha1 PSR−4 PHP Standard Recommendation 5⽉ Drupal 7 2016 9⽉ code freeze for Drupal 7 2⽉ Drupal 6 PHP5+ 11⽉ Drupal 8 🎉 1⽉ Drupal 5 PHP4.x.x PSR-2
72.
2005 2007 2009 2010 2011 2015 2014 2006 2013 2008 2004 6⽉ PHP 5.3.0 3⽉
PHP 5.4.0 2012 6⽉ PHP 5.5.0 8⽉ PHP 5.6.0 PHP5.2.4+ PHP5.5.9+ 名前空間クロージャ トレイトarray() → [] 7⽉ PHP 4.4.0 7⽉ PHP 5.0.0 11⽉ PHP 5.1.0 12⽉ PHP 5.2.0 7⽉ 12⽉でPHP4サポート終了発表 Composer 1.0.0-alpha1 PSR−4 PHP Standard Recommendation 5⽉ Drupal 7 2016 9⽉ code freeze for Drupal 7 2⽉ Drupal 6 PHP5+ 11⽉ Drupal 8 🎉 12⽉ PHP 7 🎉 1⽉ Drupal 5 PHP4.x.x PSR-2
73.
モダンなアーキテクチャのPHPベース OSS CMS
74.
モダンなアーキテクチャのPHPベース OSS CMS
75.
76.
の モジュール開発 •Drupalって? •Drupalの概要 •Drupalのアーキテクチャ •Drupalのモジュール開発 •Drupal on PHP7
77.
78.
のモジュール構成
79.
のモジュール構成 モジュール単位で名前空間を定義。
80.
のモジュール構成 モジュール内でMVC モジュール単位で名前空間を定義。
81.
のモジュール構成 ymlの設定で出来ることも多い。 モジュール内でMVC モジュール単位で名前空間を定義。
82.
のアプリケーション開発 • 管理画面からの設定とモジュール開発 • 層の厚いフレームワークを使っているイメージ。 •
iOS/Android開発の感覚とも近い。 • 初期の学習コストは高いが習得すると速い。
83.
•Drupalって? •Drupalの概要 •Drupalのアーキテクチャ •Drupalのモジュール開発 •Drupal on PHP7 on
PHP7
84.
85.
86.
https://www.youtube.com/watch?v=1IiEPF1x95o
87.
88.
89.
90.
ありがとうございました @tomzoh
91.
DrupalCon おまけ1
92.
93.
DrupalCon Asia レポート有ります http://blog.livedoor.jp/dgcircus/
94.
95.
の コーディング規約 おまけ2
96.
97.
98.
99.
😢
Download now