Submit Search
Drupal 8 - モダンなアーキテクチャのPHPベースOSS CMS
Oct 3, 2015
5 likes
18,055 views
Tomoki Hasegawa
PHPカンファレンス2015の発表資料です。
Software
Read more
1 of 84
Download now
Downloaded 10 times
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
More Related Content
What's hot
(20)
PDF
脆弱性もバグ、だからテストしよう PHPカンファンレス2015
ichikaway
PDF
PHPカンファレンス2016 初心者セッション
Hideo Kashioka
PPTX
今日から始めるLaravel
Masaru Matsuo
PDF
フレームワークを使うべき 3 つの理由
Kenichi Mukai
PDF
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
Junichi Ishida
PDF
Laravel 5.1 LTSでサービスを作る
infinite_loop
PDF
FuelPHP活用事例
Yusuke Naka
PDF
恋に落ちるデプロイツール
totty jp
PDF
anyenv + phpenv + php-build が便利すぎる件
y-uti
PPTX
活動報告9 laravel5入門-
vx-pc-club
PDF
Windows で PHP をビルドしてみた
y-uti
PDF
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
shinjiigarashi
PDF
Laravel5.1 Release
Yuuki Takezawa
PDF
PHPカンファレンス2014の懇親会飛び込みLT資料
Junichi Ishida
KEY
最強のPHP統合開発環境 PHPStorm
晃 遠山
PDF
はじめてLaravelさわった 第86回php勉強会
Osamu Kawasaki
PPTX
PHPで並列処理する ライブラリを作った
Hironobu Saitoh
PDF
PhpStormを使おう --高槻からは快速急行が早くなります #jbugj
Hisateru Tanaka
PDF
PHP カンファレンス福岡 参加報告
y-uti
PDF
JIT for PHP を試した
y-uti
脆弱性もバグ、だからテストしよう PHPカンファンレス2015
ichikaway
PHPカンファレンス2016 初心者セッション
Hideo Kashioka
今日から始めるLaravel
Masaru Matsuo
フレームワークを使うべき 3 つの理由
Kenichi Mukai
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
Junichi Ishida
Laravel 5.1 LTSでサービスを作る
infinite_loop
FuelPHP活用事例
Yusuke Naka
恋に落ちるデプロイツール
totty jp
anyenv + phpenv + php-build が便利すぎる件
y-uti
活動報告9 laravel5入門-
vx-pc-club
Windows で PHP をビルドしてみた
y-uti
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
shinjiigarashi
Laravel5.1 Release
Yuuki Takezawa
PHPカンファレンス2014の懇親会飛び込みLT資料
Junichi Ishida
最強のPHP統合開発環境 PHPStorm
晃 遠山
はじめてLaravelさわった 第86回php勉強会
Osamu Kawasaki
PHPで並列処理する ライブラリを作った
Hironobu Saitoh
PhpStormを使おう --高槻からは快速急行が早くなります #jbugj
Hisateru Tanaka
PHP カンファレンス福岡 参加報告
y-uti
JIT for PHP を試した
y-uti
Viewers also liked
(20)
PDF
WebRTC開発者向けプラットフォーム SkyWayの裏側
Yusuke Naka
PDF
営業・運用を支える "気付ける" 管理画面
Masao Maeda
PDF
Visual Studio Code #phpcon2015
Aya Tokura
PPTX
Phpcon2015
Hiroshi Tokumaru
PDF
MySQL 5.7にやられないためにおぼえておいてほしいこと
yoku0825
PDF
サンタクロースを支えるIT技術 @M_Ishikawa #yapcasia
Masayuki Ishikawa
PDF
PHPer女子が語る2015!こんなコードを書くヒトはモテない〜コラボ編〜@PHPカンファレンス2015 #phpcon2015
Hikari Fukasawa
PDF
10年続いているwebサービスの画像サーバをノーメンテでftpサーバからs3互換のストレージサーバに移行している話
Masataka Kono
PDF
5分でわかるWebRTC
Ryosuke Otsuya
PPTX
安全なPHPアプリケーションの作り方2016
Hiroshi Tokumaru
PDF
PHPの今とこれから2016
Rui Hirokawa
PDF
WPの実装言語PHPの重箱の隅っこを速度的な意味でつっついて比較してみた(2016/12/3)
Hiroyuki Ishikawa
PDF
PHP最速フレームワークPhalconの紹介
Yuji Iwai
PDF
Phalcon 謹製テンプレートエンジン Volt - Meet phalcon Volt
Kazumi OHIRA
PDF
5分でわかるphalcon php
Yusaku Kinoshita
PDF
HTTP2 & HPACK #pyfes 2013-11-30
Jxck Jxck
PDF
アジャイルにモデリングは必要か
Hiromasa Oka
PDF
継続的Webセキュリティテスト PHPカンファレンス関西2015 LT
ichikaway
PPTX
PHPerにもCoderDojoのメンターとしてお手伝いしてほしい
Ippei Sumida
PPTX
PHPとフロントのイイ関係・動くスタイルガイドをつくろう
Yusuke Kawabata
WebRTC開発者向けプラットフォーム SkyWayの裏側
Yusuke Naka
営業・運用を支える "気付ける" 管理画面
Masao Maeda
Visual Studio Code #phpcon2015
Aya Tokura
Phpcon2015
Hiroshi Tokumaru
MySQL 5.7にやられないためにおぼえておいてほしいこと
yoku0825
サンタクロースを支えるIT技術 @M_Ishikawa #yapcasia
Masayuki Ishikawa
PHPer女子が語る2015!こんなコードを書くヒトはモテない〜コラボ編〜@PHPカンファレンス2015 #phpcon2015
Hikari Fukasawa
10年続いているwebサービスの画像サーバをノーメンテでftpサーバからs3互換のストレージサーバに移行している話
Masataka Kono
5分でわかるWebRTC
Ryosuke Otsuya
安全なPHPアプリケーションの作り方2016
Hiroshi Tokumaru
PHPの今とこれから2016
Rui Hirokawa
WPの実装言語PHPの重箱の隅っこを速度的な意味でつっついて比較してみた(2016/12/3)
Hiroyuki Ishikawa
PHP最速フレームワークPhalconの紹介
Yuji Iwai
Phalcon 謹製テンプレートエンジン Volt - Meet phalcon Volt
Kazumi OHIRA
5分でわかるphalcon php
Yusaku Kinoshita
HTTP2 & HPACK #pyfes 2013-11-30
Jxck Jxck
アジャイルにモデリングは必要か
Hiromasa Oka
継続的Webセキュリティテスト PHPカンファレンス関西2015 LT
ichikaway
PHPerにもCoderDojoのメンターとしてお手伝いしてほしい
Ippei Sumida
PHPとフロントのイイ関係・動くスタイルガイドをつくろう
Yusuke Kawabata
Ad
Similar to Drupal 8 - モダンなアーキテクチャのPHPベースOSS CMS
(20)
PDF
omoon.org の裏側 〜FuelPHP の task 活用例〜
Sotaro Omura
KEY
Composer
Shogo Kawahara
PDF
Software Development with Symfony
Atsuhiro Kubo
PPT
Inside mobage platform
Toru Yamaguchi
KEY
Twitterのフォロワの増減がわたし…、 気になります! (OSC 2012 広島, Hiroshima.rb)
Yukinori KITADAI
PDF
KLab Social Game Platform ~Symfony1.4活用事例~
KLab株式会社
PDF
CircleCIを使ったSpringBoot/GAEアプリ開発の効率化ノウハウ
Takeshi Mikami
PDF
Symfony2でより良いソフトウェアを作るために
Atsuhiro Kubo
PDF
日本Symfonyユーザ会によるSymfony2 ワークショップ
Shin Ohno
PPTX
JavaFX + NetBeans環境におけるJenkinsの活用(Jenkins第六回勉強会)
Ryusaburo Tanaka
PPTX
fluxflex meetup in Tokyo
Kyosuke Inoue
PDF
10分でわかるFuelPHP @ 2013/04 FuelPHP入門ハンズオン vol.1
kenjis
PDF
Hypermedia: The Missing Element to Building Adaptable Web APIs in Rails (増補日本語版)
Toru Kawamura
PPT
Drupal8
Yasushi Osonoi
PPTX
Fluxflex meetup 2011 in Tokyo
Kyosuke Inoue
PPTX
技術選択とアーキテクトの役割
Toru Yamaguchi
PDF
Laravel4 Happy Hacking
Takashi Ohida
PDF
PhpStormで始める快適なWebアプリケーション開発 #phpcon2013
晃 遠山
PPT
20090415 すばらしきSymfonyの世界へようこそ
Hiromu Shioya
PDF
Web開発用ツール導入のすすめ
Kiyoshi SATOH
omoon.org の裏側 〜FuelPHP の task 活用例〜
Sotaro Omura
Composer
Shogo Kawahara
Software Development with Symfony
Atsuhiro Kubo
Inside mobage platform
Toru Yamaguchi
Twitterのフォロワの増減がわたし…、 気になります! (OSC 2012 広島, Hiroshima.rb)
Yukinori KITADAI
KLab Social Game Platform ~Symfony1.4活用事例~
KLab株式会社
CircleCIを使ったSpringBoot/GAEアプリ開発の効率化ノウハウ
Takeshi Mikami
Symfony2でより良いソフトウェアを作るために
Atsuhiro Kubo
日本Symfonyユーザ会によるSymfony2 ワークショップ
Shin Ohno
JavaFX + NetBeans環境におけるJenkinsの活用(Jenkins第六回勉強会)
Ryusaburo Tanaka
fluxflex meetup in Tokyo
Kyosuke Inoue
10分でわかるFuelPHP @ 2013/04 FuelPHP入門ハンズオン vol.1
kenjis
Hypermedia: The Missing Element to Building Adaptable Web APIs in Rails (増補日本語版)
Toru Kawamura
Drupal8
Yasushi Osonoi
Fluxflex meetup 2011 in Tokyo
Kyosuke Inoue
技術選択とアーキテクトの役割
Toru Yamaguchi
Laravel4 Happy Hacking
Takashi Ohida
PhpStormで始める快適なWebアプリケーション開発 #phpcon2013
晃 遠山
20090415 すばらしきSymfonyの世界へようこそ
Hiromu Shioya
Web開発用ツール導入のすすめ
Kiyoshi SATOH
Ad
More from Tomoki Hasegawa
(20)
PDF
Reading php terminal-gameboy-emulator
Tomoki Hasegawa
PDF
とある受託ベンダの開発環境
Tomoki Hasegawa
PDF
iOS Developers Conference Japan 2016
Tomoki Hasegawa
PDF
エンジニアのお祭り
Tomoki Hasegawa
PDF
勉強会のこちら側とあちら側
Tomoki Hasegawa
PDF
tvOSでWebSocketを使う
Tomoki Hasegawa
PDF
「これを買っている人はこれも買っています」実装してみた PHP side
Tomoki Hasegawa
PDF
tvOSネイティブアプリを作る
Tomoki Hasegawa
PDF
「これを買っている人はこれも買っています」実装してみた
Tomoki Hasegawa
PDF
TestFlightみたいなのを自作する
Tomoki Hasegawa
PDF
PHPでスマホアプリにプッシュ通知する
Tomoki Hasegawa
PDF
Stargazer Meetup #1
Tomoki Hasegawa
PDF
PUSH通知証明書作成ツールを作った
Tomoki Hasegawa
PDF
PHPカンファレンス福岡に 行ってきた
Tomoki Hasegawa
PDF
CakePHP3ウォークスルー
Tomoki Hasegawa
PDF
はじめてのiOSアプリ開発 Swift対応版
Tomoki Hasegawa
PDF
AppStore申請を一式まるっと自動化する
Tomoki Hasegawa
PDF
PHPerのためのSwift入門
Tomoki Hasegawa
PDF
オプショナル型。〜なんとなく付ける ! ? 撲滅〜 改訂版
Tomoki Hasegawa
PDF
Swiftのプロパティオブザーバを使い倒す
Tomoki Hasegawa
Reading php terminal-gameboy-emulator
Tomoki Hasegawa
とある受託ベンダの開発環境
Tomoki Hasegawa
iOS Developers Conference Japan 2016
Tomoki Hasegawa
エンジニアのお祭り
Tomoki Hasegawa
勉強会のこちら側とあちら側
Tomoki Hasegawa
tvOSでWebSocketを使う
Tomoki Hasegawa
「これを買っている人はこれも買っています」実装してみた PHP side
Tomoki Hasegawa
tvOSネイティブアプリを作る
Tomoki Hasegawa
「これを買っている人はこれも買っています」実装してみた
Tomoki Hasegawa
TestFlightみたいなのを自作する
Tomoki Hasegawa
PHPでスマホアプリにプッシュ通知する
Tomoki Hasegawa
Stargazer Meetup #1
Tomoki Hasegawa
PUSH通知証明書作成ツールを作った
Tomoki Hasegawa
PHPカンファレンス福岡に 行ってきた
Tomoki Hasegawa
CakePHP3ウォークスルー
Tomoki Hasegawa
はじめてのiOSアプリ開発 Swift対応版
Tomoki Hasegawa
AppStore申請を一式まるっと自動化する
Tomoki Hasegawa
PHPerのためのSwift入門
Tomoki Hasegawa
オプショナル型。〜なんとなく付ける ! ? 撲滅〜 改訂版
Tomoki Hasegawa
Swiftのプロパティオブザーバを使い倒す
Tomoki Hasegawa
Drupal 8 - モダンなアーキテクチャのPHPベースOSS CMS
1.
モダンなアーキテクチャのPHPベース OSS CMS デジタルサーカス(株)長谷川智希
2.
#phpcon2015_6
3.
#phpcon2015_6
4.
長谷川智希 とも き @tomzoh とむぞう 趣味 Webサイト開発,
iOSアプリ開発 レンタルカートレース, ビール, 電子工作 (mbed), … TOMZOH デジタルサーカス㈱ 副団長CTO Facebook CakePHP iOS
5.
デジタルサーカス(株) ・ Webサイト開発 ・ スマホアプリ開発 ・
自社サービス ( ) (iOS, Android) (http://appbuilder.jp) Twitter: @tomzoh
6.
Twitter: @tomzoh
7.
Twitter: @tomzoh
8.
モダンなアーキテクチャのPHPベース OSS CMS
9.
オープンソースとは、ソフトウェアの設計図にあたるソースコード を、インターネットなどを通じて無償で公開し、誰でもそのソフト ウェアの改良、再配布が⾏えるようにすること。また、そのような ソフトウェア。 OSS 出展: http://e-words.jp
10.
CMSとは、Webコンテンツを構成するテキストや画像、レイアウ ト情報などを⼀元的に保存・管理し、サイトを構築したり編集 したりするソフトウェアのこと。広義には、(Webサイトに限らず) デジタルコンテンツの管理を⾏うシステムの総称。 CMS 出展: http://e-words.jp
12.
って?
13.
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.
17.
?
19.
today
21.
増えてた…
22.
の概要
23.
Drupal8の機能 ユーザ管理 コンテンツ管理 検索 テーマ 多⾔語
モバイルファースト ɔ拡張性 コメント フォーム RSS などなど
24.
Drupal8の特徴 https://www.drupal.com/product/web-content-management
25.
Drupal8の特徴 https://www.drupal.com/product/web-content-management
26.
Drupal8の特徴 https://www.drupal.com/product/web-content-management
28.
コンテンツタイプ コンテンツ コメントタイプ コメント ボキャブラリー ターム ビュー
29.
コンテンツタイプ コンテンツのフォーマットを定義できる
30.
コンテンツタイプ コンテンツのフォーマットを定義できる
31.
フィールド
32.
フィールド
33.
コンテンツタイプ
34.
コンテンツ
35.
コンテンツ
36.
コンテンツタイプ コンテンツ コメントタイプ コメント ボキャブラリー ターム ビュー
37.
ボキャブラリー ターム • 一般的なCMSでのカテゴリやタグ • コンテンツタイプのフィールドとして使える。 •
択一 / 複数選択 • 選択UI(テキスト入力 / ドロップダウン) • 択一にすればカテゴリ的に、複数選択にすれば タグ的に使える。
38.
コンテンツタイプ コンテンツ コメントタイプ コメント ボキャブラリー ターム ビュー
40.
コンテンツタイプ コンテンツ コメントタイプ コメント ボキャブラリー ターム ビュー
41.
ビュー コンテンツの出⼒⽅法を定義できる
42.
ビュー コンテンツの出⼒⽅法を定義できる
43.
ビュー コンテンツの出⼒⽅法を定義できる
44.
ビュー コンテンツの出⼒⽅法を定義できる
45.
ビュー コンテンツの出⼒⽅法を定義できる
46.
ビュー コンテンツの出⼒⽅法を定義できる
47.
ビュー
48.
Drupal8の拡張性 • モジュール …
Drupalの機能をカスタマイズする • drupal.orgで集中管理されている。 • 17,712 Modules match your search 😍 • テーマ … Drupalの外観をカスタマイズする • drupal.orgで管理されている。 • drupal.org外にも沢山ある。 • ディストリビューション … モジュールとテーマのパッケージ • EC用, SNS用など、モジュールとテーマをパッケージしたもの
49.
EC コーポレートサイト コミュニティサイト ⼈材マッチングサイト グループウェア ネットニュース 政府・公共機関
50.
の アーキテクチャ
51.
PHPフレームワーク • モノリシックフレームワーク • 昔のPHPフレームワークは巨大な1つのプロダクトだった。 Symfony1,
CakePHP2, Mojavi, Ethna … • フレームワークの一部の機能だけを使う、ということが難しかった。 • マイクロフレームワーク • 最近のPHPフレームワークはプロジェクト内外のライブラリを組み合わせ たプロダクトになっている。 Symfony, CakePHP3, Laravel, CodeIgniter … • すべての機能を自前で用意せず外部のライブラリを積極的に使用。 • フレームワークの一部の機能だけを使うことも可能。
52.
PHPフレームワーク • モノリシックフレームワーク • 昔のPHPフレームワークは巨大な1つのプロダクトだった。 Symfony1,
CakePHP2, Mojavi, Ethna … • フレームワークの一部の機能だけを使う、ということが難しかった。 • マイクロフレームワーク • 最近のPHPフレームワークはプロジェクト内外のライブラリを組み合わせ たプロダクトになっている。 Symfony, CakePHP3, Laravel, CodeIgniter … • すべての機能を自前で用意せず外部のライブラリを積極的に使用。 • フレームワークの一部の機能だけを使うことも可能。
53.
PHPフレームワーク • モノリシックフレームワーク • 昔のPHPフレームワークは巨大な1つのプロダクトだった。 Symfony1,
CakePHP2, Mojavi, Ethna … • フレームワークの一部の機能だけを使う、ということが難しかった。 • マイクロフレームワーク • 最近のPHPフレームワークはプロジェクト内外のライブラリを組み合わせ たプロダクトになっている。 Symfony, CakePHP3, Laravel, CodeIgniter … • すべての機能を自前で用意せず外部のライブラリを積極的に使用。 • フレームワークの一部の機能だけを使うことも可能。 なぜ外部のライブラリを 使える様になったのか
54.
PSR-4
55.
PSR-4
56.
PSR-4
57.
PSR-4
58.
PHPフレームワーク • モノリシックフレームワーク • 昔のPHPフレームワークは巨大な1つのプロダクトだった。 Symfony1,
CakePHP2, Mojavi, Ethna … • フレームワークの一部の機能だけを使う、ということが難しかった。 • マイクロフレームワーク • 最近のPHPフレームワークはプロジェクト内外のライブラリを組み合わせ たプロダクトになっている。 Symfony, CakePHP3, Laravel, CodeIgniter … • すべての機能を自前で用意せず外部のライブラリを積極的に使用。 • フレームワークの一部の機能だけを使うことも可能。
59.
PHPフレームワーク • モノリシックフレームワーク • 昔のPHPフレームワークは巨大な1つのプロダクトだった。 Symfony1,
CakePHP2, Mojavi, Ethna … • フレームワークの一部の機能だけを使う、ということが難しかった。 • マイクロフレームワーク • 最近のPHPフレームワークはプロジェクト内外のライブラリを組み合わせ たプロダクトになっている。 Symfony, CakePHP3, Laravel, CodeIgniter … • すべての機能を自前で用意せず外部のライブラリを積極的に使用。 • フレームワークの一部の機能だけを使うことも可能。
60.
PHPフレームワーク • モノリシックフレームワーク • 昔のPHPフレームワークは巨大な1つのプロダクトだった。 Symfony1,
CakePHP2, Mojavi, Ethna … • フレームワークの一部の機能だけを使う、ということが難しかった。 • マイクロフレームワーク • 最近のPHPフレームワークはプロジェクト内外のライブラリを組み合わせ たプロダクトになっている。 Symfony, CakePHP3, Laravel, CodeIgniter … • すべての機能を自前で用意せず外部のライブラリを積極的に使用。 • フレームワークの一部の機能だけを使うことも可能。
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.
が使う外部ライブラリ { "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" },
67.
が使う外部ライブラリ { "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" },
68.
モダンなアーキテクチャのPHPベース OSS CMS
69.
• Drupal7 • PHP5.2.4 •
Drupal8 • PHP5.5.9 Drupalが要求するPHP
70.
• Drupal7 • PHP5.2.4 •
Drupal8 • PHP5.5.9 Drupalが要求するPHP PHP 5.3.0 PHP 5.4.0 名前空間クロージャ トレイトarray() → []
72.
モダンなアーキテクチャのPHPベース OSS CMS
73.
ありがとうございました @tomzoh デジタルサーカス(株) Drupalエンジニア 絶賛 募集中!
74.
ありがとうございました @tomzoh デジタルサーカス(株) Drupalエンジニア 絶賛 募集中! 懇親会出ます。声かけてください!
75.
の モジュール開発 おまけ1
77.
のモジュール構成
78.
のモジュール構成 モジュール単位で名前空間を定義。
79.
のモジュール構成 モジュール内でMVC モジュール単位で名前空間を定義。
80.
のモジュール構成 ymlの設定で出来ることも多い。 モジュール内でMVC モジュール単位で名前空間を定義。
81.
のアプリケーション開発 • モジュール開発 • 層の厚いフレームワークを使っているイメージ。 •
iOS/Android開発の感覚とも近い。 • 初期の学習コストは高いが習得すると速い。
82.
の コーディング規約 おまけ2
Download