Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Drupal モジュール開発入門講座 第1回 モジュールの基礎知識
Search
アクイアジャパン Acquia Japan
July 27, 2022
Programming
0
170
Drupal モジュール開発入門講座 第1回 モジュールの基礎知識
https://www.acquia.com/jp/events/webinars/drupal-module-development-vol1
アクイアジャパン Acquia Japan
July 27, 2022
Tweet
Share
More Decks by アクイアジャパン Acquia Japan
See All by アクイアジャパン Acquia Japan
Auth0 by OktaとDrupalで実践!認証付きアプリケーションの新しいアプローチ
acquiajp
0
140
Drupal 10.3の新機能紹介ウェビナー
acquiajp
0
200
DrupalCon Portland 2024 総まとめウェビナー
acquiajp
0
79
開発者必見!Acquia Cloud IDEで最高のDrupal開発を始めよう
acquiajp
0
130
触って学ぶ!デジタルアセット管理 Acquia DAM ハンズオンウェビナー
acquiajp
0
30
DrupalCon Lille 2023 総まとめウェビナー
acquiajp
0
53
コンテンツ設計手法で変更に強いアプリケーションを実現する〜ローコードによるWebアプリのバックエンド実装 #CNDF2023
acquiajp
0
350
DrupalCon Pittsburgh 2023 総まとめウェビナー
acquiajp
0
83
Acquia製品概要&Site Studioデモのご紹介
acquiajp
0
94
Other Decks in Programming
See All in Programming
型安全RESTで爆速プロトタイピング – Hono RPC実践
tacke_jp
0
110
SODA - FACT BOOK
sodainc
1
800
Perlで痩せる
yuukis
1
680
ドメインモデリングにおける抽象の役割、tagless-finalによるDSL構築、そして型安全な最適化
knih
10
1.7k
プロダクト開発でも使おう 関数のオーバーロード
yoiwamoto
0
140
Beyond Portability: Live Migration for Evolving WebAssembly Workloads
chikuwait
0
340
Julia という言語について (FP in Julia « SIDE: F ») for 関数型まつり2025
antimon2
3
910
Blueskyのプラグインを作ってみた
hakkadaikon
1
480
FormFlow - Build Stunning Multistep Forms
yceruto
1
150
Rails産でないDBを Railsに引っ越すHACK - Omotesando.rb #110
lnit
1
160
MLOps Japan 勉強会 #52 - 特徴量を言語を越えて一貫して管理する, 『特徴量ドリブン』な MLOps の実現への試み
taniiicom
2
650
GoのWebAssembly活用パターン紹介
syumai
3
9.7k
Featured
See All Featured
Music & Morning Musume
bryan
46
6.6k
Why You Should Never Use an ORM
jnunemaker
PRO
56
9.4k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.8k
Mobile First: as difficult as doing things right
swwweet
223
9.6k
What's in a price? How to price your products and services
michaelherold
245
12k
A better future with KSS
kneath
239
17k
Git: the NoSQL Database
bkeepers
PRO
430
65k
It's Worth the Effort
3n
184
28k
For a Future-Friendly Web
brad_frost
179
9.8k
Designing for Performance
lara
609
69k
Building Adaptive Systems
keathley
43
2.6k
Faster Mobile Websites
deanohume
307
31k
Transcript
Drupal Ϟδϡʔϧ ։ൃೖߨ࠲ ୈ1ճ Ϟδϡʔϧͷجૅࣝ
Drupal Ϟδϡʔϧ։ൃೖߨ࠲γϦʔζ – DrupalͰʮϞδϡʔϧʯͱݺΕΔɺখ͞ͳιϑτΣΞΛ࣮͢Δ͜ͱͰػೳ֦ுΛ ߦ͍·͢ɻຊΣϏφʔγϦʔζͰɺDrupalͷϞδϡʔϧ։ൃʹؔ͢ΔجૅࣝΛղઆ͠ ·͢ɻ – DrupalͷόοΫΤϯυपΓʹ͍ͭͯମܥతʹֶͼ͍ͨํɺࣗͰΧελϜϞδϡʔϧΛ࡞ ΕΔΑ͏ʹͳΓ͍ͨํɺΞΫΠΞೝఆσϕϩούʔࢼݧΛࢦ͢ํʹ͓͢͢ΊͰ͢ɻ –
DrupalΛҰ௨Γૢ࡞ͨ͜͠ͱ͕͋ΔํΛରͱ͍ͯ͠·͢ɻ·ͩDrupalΛ৮ͬͨ͜ͱ͕ແ ͍ํɺॳ৺ऀ͚DrupalνϡʔτϦΞϧಈըʢຊޠʣΛઌʹݟ͓ͯ͘ͱΑΓཧղ͕ਂ ·Γ·͢ɻ
ΞδΣϯμ 1. Ϟδϡʔϧͱ 2. Ϟδϡʔϧ։ൃͷલఏࣝ 3. Ϟδϡʔϧͷछྨ 4. Ϟδϡʔϧͷཧ 5.
ϞδϡʔϧͷσΟϨΫτϦߏͱϑΝΠϧ 6. Drupalڥͷ༻ҙ 7. ࿅श
Ϟδϡʔϧͱ
– DrupalΛ֦ு͢ΔͨΊͷίʔυͰ͢ɻطଘͷػೳΛมߋͨ͠Γɺ৽͍͠ػೳ ΛՃͨ͠ΓͰ͖·͢ɻ – ओʹPHPϑΝΠϧɺYAMLϑΝΠϧɺ߹ʹΑͬͯCSSɺJSɺTwigϑΝΠϧ ͳͲͰߏ͞Ε·͢ɻ – Drupal.orgͰίϯτϦϏϡʔλʔʹΑͬͯ4ສݸҎ্ͷϞδϡʔϧ͕ެ։͞ Ε͓ͯΓɺࣗ༝ʹμϯϩʔυͯ͠ར༻Ͱ͖·͢ɻ –
ϞδϡʔϧʹΑͬͯཧUIͰઃఆݖݶΛ੍ޚ͢Δ͜ͱ͕ՄೳͰ͢ɻ Ϟδϡʔϧͷ֓ཁ
Ϟδϡʔϧ։ൃʹؔ࿈͢Δࣝ – DrupalͷαΠτߏஙʹؔ͢Δجૅతͳࣝ – PHPͷࣝ – ΦϒδΣΫτࢦϓϩάϥϛϯάͷࣝ – SymfonyϑϨʔϜϫʔΫͷࣝ
Ϟδϡʔϧ։ൃͷલఏࣝ
DrupalͱSymfony – 2007ʹొͨ͠ɺPHPͰهड़͞ΕͨWebΞϓϦέʔγϣϯ ϑϨʔϜϫʔΫͰ͢ɻ – Drupal 9ͰSymfony 4ܥ͕༻͞Ε͍ͯ·͢ɻ – SymfonyϑϨʔϜϫʔΫͰ͋Γɺ࠶ར༻ՄೳͳPHPίϯ
ϙʔωϯτϥΠϒϥϦͷηοτͰ͢ɻ
Symfonyͷίϯϙʔωϯτ – ػೳΛWebΞϓϦέʔγϣϯϑϨʔϜϫʔΫ͔ΒΓ࣮ͯ͠͞ΕͨPHPϥ ΠϒϥϦͰ͢ɻίϯϙʔωϯτComposerʹΑͬͯΠϯετʔϧՄೳͰ͢ɻ – ελϯυΞϩϯϥΠϒϥϦͳͷͰɺҙͷPHPΞϓϦέʔγϣϯͰ༻Ͱ͖ ·͢ɻ – Drupalόʔδϣϯ8Ҏ߱ɺ͍͔ͭ͘ͷίϯϙʔωϯτΛར༻͍ͯ͠·͢ɻ –
SymfonyҰൠతͳWebΞϓϦέʔγϣϯ։ൃʹඞཁͳπʔϧػೳΛ༗ͯ͠ ͍ΔͨΊɺंྠͷ࠶։ൃΛࢭͨ͠ΓɺDrupalͰ͔͠Ͱ͖ͳ͍ՁΛ։ൃ͢ Δ࣌ؒʹॆͯΔ͜ͱ͕ՄೳʹͳΓ·ͨ͠ɻ
DrupalͰར༻͍ͯ͠ΔSymfonyίϯϙʔωϯτ – Yaml – HttpFoundation – HttpKernel – Translation –
EventDispatcher – Console – DependencyInjection – Polyfill Iconv – Polyfill PHP 8.0 – Process – Routing – Mime – Validator – Serializer
Ξϊςʔγϣϯ – ΞϊςʔγϣϯͱɺϝλσʔλΛද͢ಛ ผͳߏจͰ͢ɻ – PHPͷDocίϝϯτ( /** */ )ʹ@͔Β࢝·Δ ΩʔϫʔυͰࢦఆ͠·͢ɻ
– ΞϊςʔγϣϯDoctrine annotation parser ʹΑͬͯಡΈࠐ·ΕɺDrupal͕ίʔυͷ ༰Λཧղ͢ΔͨΊͷใʹม͞Ε·͢ɻ
ϓϥάΠϯ – ϓϥάΠϯখ͞ͳػೳΛఏڙ͠ɺଞͷϓϥάΠϯͱ؆୯ʹަͰ͖ΔΑ ͏ʹ͠·͢ɻ – ϒϩοΫɺϑΟʔϧυΟδΣοτɺը૾ΤϑΣΫτͳͲͷ͞·͟·ͳγ εςϜΛ֦ு͠ɺཧऀ͕બՄೳͳ৽͍͠ΦϓγϣϯΛՃ͢Δϓϥά ΠϯΛ࡞͠·͢ɻ – ࣅͨΑ͏ͳػೳΛ࣋ͭϓϥάΠϯɺಉ͡ϓϥάΠϯλΠϓʹଐ͠·͢ɻ
– ϓϥάΠϯϞδϡʔϧʹΑͬͯఆٛ͞Ε·͢ɻ
αʔϏεͱαʔϏείϯςφ – αʔϏείϯςφͱɺґଘੑೖ(DI)ͱݺΕΔσβΠϯύλʔ ϯΛ࣮ͨ͠ϑϨʔϜϫʔΫͰ͢ɻDIίϯςφͱݺΕ·͢ɻ – αʔϏεͱɺαʔϏείϯςφʹΑͬͯཧ͞ΕΔΦϒδΣΫ τΛࢦ͠·͢ɻ – DrupalίΞʹ400Ҏ্ͷαʔϏε͕ଘࡏ͠·͢ɻ –
ओͳαʔϏεɿDatabase, Plugin Manager, Logger, Translation, Current User
DrupalͷίʔσΟϯάن ίʔσΟϯάنͱ – ίʔυͷॻ͖ํܗࣜͳͲɺ͞·͟·ͳܾ·ΓࣄΛఏࣔ͢ΔϓϩάϥϚ͚ͷҰ࿈ͷϧʔϧͰ͢ɻมؔ ͳͲͷ໋໊نଇɺېࢭࣄ߲ɺΠϯσϯτɺεϖʔεɺׅހԋࢉࢠͳͲͷه߸ͷஔͷํͳͲΛఆٛ͠·͢ɻ – ίʔυͷදه๏ΛίʔσΟϯάنͱͯ͠౷Ұ͓ͯ͘͠ͱɺՄಡੑอकੑ͕ߴ·Γɺ։ൃޮ্͕͠·͢ɻ – ओͳݺͼํɿCode StandardsɺCoding
StandardsɺίʔυنɺίʔσΟϯάϧʔϧɾɾ DrupalͷίʔσΟϯάن – PEARίʔσΟϯάن͕ϕʔεͱͳ͍ͬͯ·͢ɻ – DrupalͷίʔσΟϯάنίΞόʔδϣϯؔͳ͘ɺৗʹ࠷৽ͷίʔυنʹै͏ඞཁ͕͋Γ·͢ɻ – PHPStormVS CodeͰࣗಈతʹݕग़/ܗ͢Δศརͳπʔϧ͕ఏڙ͞Ε͍ͯ·͢ɻ
DrupalίʔσΟϯάنͷҰྫ – Πϯσϯτͱۭന – λϒͳ͠Ͱɺ2ͭͷεϖʔεͷΠϯσϯτΛ༻ – ߦͷ࠷ޙʹۭനΛೖΕͳ͍ – ߦͷ͞ –
80จࣈ͕҆ – ԋࢉࢠ – ԋࢉࢠʢ=, -, +, *, =>, . ͳͲʣৗʹ1ͭͷεϖʔεΛ͚ͭΔ – …etc https://www.drupal.org/docs/develop/standards/coding-standards
Ϟδϡʔϧͷछྨ
– ίΞϞδϡʔϧ – DrupalͷίΞʹؚ·ΕΔϞδϡʔϧͰ͢ɻ – ίϯτϦϏϡʔτϞδϡʔϧ – Drupal.orgͰެ։͞Ε͍ͯΔϞδϡʔϧͰ͢ɻ –
https://www.drupal.org/project/project_module – ΧελϜϞδϡʔϧ – ϓϩδΣΫτͷͨΊʹಠࣗͰ։ൃ͢ΔϞδϡʔϧͰ͢ɻ Ϟδϡʔϧͷछྨ
Ϟδϡʔϧͷछྨ - ίΞϞδϡʔϧ – Node – ίϯςϯπͷ࡞ɺฤूɺআɺઃఆɺදࣔΛཧ͠·͢ɻ – Block –
ϖʔδΛߏ͢ΔϒϩοΫͷஔΛ੍ޚ͢ΔϞδϡʔϧͰ͢ɻ – Views – σʔλϕʔε͔ΒΧελϚΠζ͞ΕͨΫΤϦͱϦετΛੜ͠·͢ɻ – Media – ը૾ɺಈըͳͲͷϝσΟΞΞΠςϜͷ࡞ɺઃఆɺදࣔΛཧ͠·͢ɻ – Language – DrupalͷݴޠػೳΛѻ͏ͨΊͷجຊϞδϡʔϧͰ͢ɻϢʔβʔ͕ݴޠΛઃఆͯ͠ίϯςϯπʹద༻͢Δ͜ͱ͕Ͱ͖ ·͢ɻ – Workflows – Drupalͷίϯςϯπͷʮະެ։ʯʮެ։ࡁΈʯͷঢ়ଶΛ֦ு͠ɺίϯςϯπʹϞσϨʔγϣϯঢ়ଶΛఏڙ͠·͢ɻ – etc…
Ϟδϡʔϧͷछྨ - ίϯτϦϏϡʔτϞδϡʔϧ – ΦʔϓϯιʔεͰެ։͞ΕͨϞδϡʔϧͰ͢ɻ – Drupal.orgͰެ։͞Ε͍ͯΔϞδϡʔϧͷμϯϩʔυʹComposer Λ༻͍·͢ɻ – ίϯτϦϏϡʔτϞδϡʔϧʹΑͬͯAPI͕ఏڙ͞ΕɺΧελϜϞ
δϡʔϧଆͰAPIΛར༻͠ͳ͕ΒΧελϚΠζͰ͖·͢ɻ
Ϟδϡʔϧͷछྨ - ΧελϜϞδϡʔϧ – ϓϩδΣΫτݻ༗Ͱ༻ҙ͢ΔϞδϡʔϧΛΧελϜϞδϡʔϧͱݺ ͼ·͢ɻ – ίΞϞδϡʔϧɺίϯτϦϏϡʔτϞδϡʔϧͰΓͳ͍ػೳ͕ ͋ͬͨࡍʹɺΧελϜϞδϡʔϧΛ࣮͢Δ͜ͱͰରԠͰ͖·͢ɻ
Ϟδϡʔϧͷཧ
Ϟδϡʔϧͷμϯϩʔυ – ϞδϡʔϧͷμϯϩʔυComposerίϚϯυ Ͱߦ͑·͢ɻ – $ composer require 'drupal/token:^1.10'
– ཧը໘Ͱߦ͏ɿ – ཧϝχϡʔ > ػೳ֦ு ʹҠಈͯ͠ɺϞ δϡʔϧϦετͷத͔ΒରͷϞδϡʔ ϧͷνΣοΫϘοΫεΛ༗ޮʹ͢Δ
– DrushͰߦ͏ɿ – $ drush pm:enable token ϞδϡʔϧͷΠϯετʔϧ
ϞδϡʔϧʹΑͬͯɺ࣍ͷ߲͕༻ҙ͞Ε͍ͯΔ߹͕͋Γ·͢ɻ – HelpɿϞδϡʔϧͷϔϧϓϖʔδʹΞΫηεͰ͖·͢ɻ – PermissionsɿϞδϡʔϧͰݖݶ͕༻ҙ͞Ε͍ͯΔ߹ɺݖݶઃఆͷϖʔδʹΞΫηεͰ͖·͢ɻ – ConfigureɿϞδϡʔϧͰڥઃఆϖʔδʹϦϯΫΛ༻ҙ͍ͯ͠Δ߹ɺઃఆϖʔδʹΞΫηεͰ ͖·͢ɻ Πϯετʔϧͨ͠Ϟδϡʔϧͷ͍ํઃఆͷΞΫηε
Ϟδϡʔϧͷ σΟϨΫτϦߏͱϑΝΠϧ
Ϟδϡʔϧͷॴ your Drupal project root ᵓ── docroot │ ᵓ── core
│ │ └── modules │ │ ᵓ── action │ │ ᵓ── aggregator │ │ ᵓ── … │ │ │ └── modules │ │ ᵓ── contrib │ │ └── custom … ɹɹɹɹɹ–––––––– ίΞϞδϡʔϧ͕ஔ͞ΕΔ ɹɹɹɹɹ–––––––– ίϯτϦϏϡʔτϞδϡʔϧ͕ஔ͞ΕΔ ɹɹɹɹɹ–––––––– ΧελϜϞδϡʔϧ͕ஔ͞ΕΔ ίΞϞδϡʔϧɺίϯτϦϏϡʔτϞδϡʔϧɺΧελϜϞδϡʔϧͰ ϞδϡʔϧϑΝΠϧ܈Λஔ͢Δॴ͕ܾ·͍ͬͯ·͢ɻ
ϞδϡʔϧͷσΟϨΫτϦߏʢҰྫʣ marucha ᵓ── config/ ᵓ── css/ ᵓ── js/ ᵓ── templates/
ᵓ── src │ └── Controller │ └── HelloController.php ᵓ── tests/ ᵓ── marucha.info.yml ᵓ── marucha.module ᵓ── marucha.routing.yml ᵓ── marucha.services.yml … ϑΝΠϧͷΦʔτϩʔυͷͨΊ ʹɺσΟϨΫτϦߏʹϧʔϧ͕ ଘࡏ͢Δ
PSR-4ʹΑΔ໊લۭؒͱΦʔτϩʔυ – PSR-4ͱɺϑΝΠϧύε͔ΒΫϥεΛΦʔτϩʔσΟϯά͢ΔͨΊͷ༷Ͱ͢ɻ – DrupalͰόʔδϣϯ8Ҏ߱ɺPSR-4͕࣮͞Ε͍ͯ·͢ɻ – PSR-4͕࣮͞Ε͍ͯΔ͜ͱʹΑΓɺ໊લۭؒΛࢦఆ͢Δ͜ͱͰϑΝΠϧʢΫϥ εʣ໊Λࣗಈతʹղܾͯ͘͠Ε·͢ɻ
σΟϨΫτϦߏͱ໊લۭؒͷϚοϐϯά
σΟϨΫτϦߏͱ໊લۭؒͷϚοϐϯά ᶃ ֤ϞδϡʔϧʹϞδϡʔϧ໊(Ϛγ ϯ໊)ʹରԠ͢Δ໊લۭ͕ؒ͋ΓɺϞ δϡʔϧσΟϨΫτϦͷ./src/ϑΥϧμ ʹϚοϓ͞Ε·͢ɻ
σΟϨΫτϦߏͱ໊લۭؒͷϚοϐϯά ᶄϞδϡʔϧ໊લۭؒͷޙ͢ ͯ./src/ϑΥϧμͷσΟϨΫτϦ ͱϑΝΠϧߏʹϚοϓ͞Ε ·͢ɻ ᶃ ֤ϞδϡʔϧʹϞδϡʔϧ໊(Ϛγ ϯ໊)ʹରԠ͢Δ໊લۭ͕ؒ͋ΓɺϞ δϡʔϧσΟϨΫτϦͷ./src/ϑΥϧμ ʹϚοϓ͞Ε·͢ɻ
ϞδϡʔϧͷϚγϯ໊ – ϞδϡʔϧʹඞͣʮϚγϯ໊ʯ͕ଘࡏ͠·͢ɻ – DrupalίΞʹΑͬͯϓϩάϥϜͰϞδϡʔϧΛࢀর͢ΔͨΊʹ ෦తʹ༻͞Ε·͢ɻ – ӈͷྫͰʮmaruchaʯ͕Ϛγϯ໊Ͱ͢ɻ – marucha.info.ymlͳͲɺϑΝΠϧ໊ʹϚγϯؚ໊͕·ΕΔΑ͏ͳ
໋໊نଇΛ࣋ͭϑΝΠϧ͕ଘࡏ͠·͢ɻ – Ϛγϯ໊ͷ໋໊نଇ – จࣈͰ࢝·Δඞཁ͕͋Γ·͢ɻ – খจࣈͱΞϯμʔείΞͷΈΛؚΊΔඞཁ͕͋Γ·͢ɻ – εϖʔεΛؚΊΔ͜ͱͰ͖·ͤΜɻ – 50จࣈΛ͑ͯͳΓ·ͤΜɻ – γεςϜͰҰҙͰ͋Δඞཁ͕͋Γ·͢ɻαΠτͰ༻͢ΔଞͷϞδϡʔϧɺ ςʔϚɺςʔϚΤϯδϯɺΠϯετʔϧϓϩϑΝΠϧͱಉ໊͡લΛ͚ͳ͍Ͱ͘ ͍ͩ͞ɻ – ༧ࡁΈͷ༻ޠ༻Ͱ͖·ͤΜɿsrcɺlibɺvendorɺassetsɺcssɺfilesɺ imagesɺjsɺmiscɺtemplatesɺincludesɺfixturesɺdrupal marucha ᵓ── config │ └── install │ └── marucha.settings.yml ᵓ── css/ ᵓ── js/ ᵓ── templates/ ᵓ── src │ └── Controller │ └── HelloController.php ᵓ── tests/ ᵓ── marucha.info.yml ᵓ── marucha.module ᵓ── marucha.routing.yml ᵓ── marucha.services.yml …
Drupalڥͷ༻ҙ
Drupalڥͷ༻ҙ – Drupal 9ͷֶशڥΛ༻ҙ – ༗໊ͳDrupalͷϩʔΧϧ։ൃڥߏஙπʔϧ – Lando – Docksal
– DDEV – Drupal VM – ࠓճྫͱͯ͠ɺLandoͰDrupal 9ڥΛߏங͢ΔखॱΛհ
LandoΛ༻͍ͨDrupalͷϩʔΧϧ։ൃڥͷ࡞ ͦͷ1. DrupalϓϩδΣΫτ࡞ʙίϯςφͷىಈ # ࡞ۀσΟϨΫτϦͷ࡞ͱҠಈ $ mkdir my-drupal9-app && cd
my-drupal9-app # LandoͷॳظԽ $ lando init --source cwd --recipe drupal9 --webroot web --name my-drupal9-app # ίϯςφͷىಈ $ lando start …(লུ)... APPSERVER URLS https://localhost:55017 http://localhost:55018 http://my-drupal9-app.lndo.site:8080/ https://my-drupal9-app.lndo.site/ # DrupalϓϩδΣΫτͷ࡞ $ lando composer create-project drupal/recommended-project tmp && cp -r tmp/. . && rm -rf tmp
ͦͷ2. DrupalͷΠϯετʔϧ – ϒϥβͰϩʔΧϧαʔόʔʹΞΫηε͠·͢ɻ – http://my-drupal9-app.lndo.site:8080/ – ΠϯλϥΫςΟϒΠϯετʔϥʔ͕ىಈ͠·͢ɻ – ϓϩϑΝΠϧʮඪ४ʯΛબ
– σʔλϕʔεͷଓઌใ lando info ίϚϯυͰ֬ೝ LandoΛ༻͍ͨDrupalͷϩʔΧϧ։ൃڥͷ࡞ ͓·͚ɿLandoͷૢ࡞ – lando stop – ίϯςφͷఀࢭ – lando ssh – ίϯςφͷγΣϧʹΞΫηε͢Δ
࿅श
࿅श1 ΧελϜϞδϡʔϧͷMarucha(Ϛγϯ໊: marucha)Ϟδϡʔϧͷ ໊લۭؒͱͯ͠ਖ਼͍͠ͷΛબ͍ͯͩ͘͠͞ɻ 1. Drupal\modules\marucha ໊͕લۭؒͱͳΔɻ 2. Drupal\marucha
໊͕લۭؒͱͳΔɻ 3. Drupal\marucha\src ໊͕લۭؒͱͳΔɻ 4. ໊લۭؒෆཁͰ͋Δɻ
࿅श1 ΧελϜϞδϡʔϧͷMarucha(Ϛγϯ໊: marucha)Ϟδϡʔϧͷ ໊લۭؒͱͯ͠ਖ਼͍͠ͷΛબ͍ͯͩ͘͠͞ɻ 1. Drupal\modules\marucha ໊͕લۭؒͱͳΔɻ 2. Drupal\marucha
໊͕લۭؒͱͳΔɻ 3. Drupal\marucha\src ໊͕લۭؒͱͳΔɻ 4. ໊લۭؒෆཁͰ͋Δɻ 2
࿅श2 ϞδϡʔϧͰ࡞ͨ͠ΫϥεͷಡΈࠐΈʹ͍ͭͯਖ਼͍͠ͷΛબ͍ͯͩ͘͠͞ɻ 1. ίΞͰPSR-4ʹ४ڌͨ͠ΦʔτϩʔσΟϯά͕࣮͞Ε͓Γɺϧʔϧʹै͏͜ͱ ͰԸܙΛड͚Δ͜ͱ͕Ͱ͖Δɻ 2. ϑΝΠϧ͝ͱʹrequire_onceจΛ༻ͯ͠ಡΈࠐΉɻ 3. DevelϞδϡʔϧΛΠϯετʔϧ͢Δͱrequire_onceจΛ༻͠ͳͯࣗ͘ಈత ʹಡΈࠐ·ΕΔΑ͏ʹͳΔɻ
ϞδϡʔϧͰ࡞ͨ͠ΫϥεͷಡΈࠐΈʹ͍ͭͯਖ਼͍͠ͷΛબ͍ͯͩ͘͠͞ɻ 1. ίΞͰPSR-4ʹ४ڌͨ͠ΦʔτϩʔσΟϯά͕࣮͞Ε͓Γɺϧʔϧʹै͏͜ͱ ͰԸܙΛड͚Δ͜ͱ͕Ͱ͖Δɻ 2. ϑΝΠϧ͝ͱʹrequire_onceจΛ༻ͯ͠ಡΈࠐΉɻ 3. DevelϞδϡʔϧΛΠϯετʔϧ͢Δͱrequire_onceจΛ༻͠ͳͯࣗ͘ಈత ʹಡΈࠐ·ΕΔΑ͏ʹͳΔɻ ࿅श2
1
DrupalͷίʔσΟϯάنʹ͍ͭͯਖ਼͍͠ͷΛબ͍ͯͩ͘͠͞ɻ 1. ΧελϜϞδϡʔϧΧελϜςʔϚʹؔͯ͠ର֎Ͱ͋Δɻ 2. DrupalͷίʔσΟϯάنͰ༻ҙ͞Ε͍ͯΔϧʔϧ10ݸલޙͳͷͰɺेʹ֮͑Δ͜ͱ ͕Մೳɻ 3. ίΞͷόʔδϣϯʹؔͳ͘ɺ࠷৽ͷίʔυنʹै͏ඞཁ͕͋Δɻ ࿅श3
DrupalͷίʔσΟϯάنʹ͍ͭͯਖ਼͍͠ͷΛબ͍ͯͩ͘͠͞ɻ 1. ΧελϜϞδϡʔϧΧελϜςʔϚʹؔͯ͠ର֎Ͱ͋Δɻ 2. DrupalͷίʔσΟϯάنͰ༻ҙ͞Ε͍ͯΔϧʔϧ10ݸલޙͳͷͰɺेʹ֮͑Δ͜ͱ ͕Մೳɻ 3. ίΞͷόʔδϣϯʹؔͳ͘ɺ࠷৽ͷίʔυنʹै͏ඞཁ͕͋Δɻ ࿅श3 3
ຊͷΞδΣϯμऴྃ
ΞδΣϯμ 1. Ϟδϡʔϧͱ 2. Ϟδϡʔϧ։ൃͷલఏࣝ 3. Ϟδϡʔϧͷछྨ 4. Ϟδϡʔϧͷཧ 5.
ϞδϡʔϧͷσΟϨΫτϦߏͱϑΝΠϧ 6. Drupalڥͷ༻ҙ 7. ࿅श
None