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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
アクイアジャパン Acquia Japan
July 27, 2022
Programming
190
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Drupal モジュール開発入門講座 第1回 モジュールの基礎知識
https://www.acquia.com/jp/events/webinars/drupal-module-development-vol1
アクイアジャパン Acquia Japan
July 27, 2022
More Decks by アクイアジャパン Acquia Japan
See All by アクイアジャパン Acquia Japan
Auth0 by OktaとDrupalで実践!認証付きアプリケーションの新しいアプローチ
acquiajp
0
230
Drupal 10.3の新機能紹介ウェビナー
acquiajp
0
270
DrupalCon Portland 2024 総まとめウェビナー
acquiajp
0
130
開発者必見!Acquia Cloud IDEで最高のDrupal開発を始めよう
acquiajp
0
230
触って学ぶ!デジタルアセット管理 Acquia DAM ハンズオンウェビナー
acquiajp
0
56
DrupalCon Lille 2023 総まとめウェビナー
acquiajp
0
100
コンテンツ設計手法で変更に強いアプリケーションを実現する〜ローコードによるWebアプリのバックエンド実装 #CNDF2023
acquiajp
0
410
DrupalCon Pittsburgh 2023 総まとめウェビナー
acquiajp
0
110
Acquia製品概要&Site Studioデモのご紹介
acquiajp
0
140
Other Decks in Programming
See All in Programming
源内ハンズオン概要編
hideg
0
170
freeeにおけるEvalsの実践例の紹介
freee
PRO
0
110
変わらないものが、変わるものを決める — 意図駆動開発 × イベントソーシング × イミュータブル | What Doesn't Change Decides What Can — IDD × Event Sourcing × Immutability
tomohisa
0
1.6k
Apache Hive: そしてCloud Native Lakehouseへ
okumin
1
220
「人を評価する AI」の設計と実装
ryoyanara
0
200
SlackアプリとLambdaの 連携を構築した話
pawn_4_s
1
120
Lean は証明の正しさを確認するためだけのツールって思ってませんか?
inoueasei
1
160
Building a Meta Ray-Ban display app
akkeylab
0
130
Android CLI
fornewid
0
220
ソフトウェア設計に溶けるインフラ ― AWS CDK のインフラ認識論
konokenj
3
780
20260722_microCMSで考える、AI時代のコンテンツ運用設計
yosh1
0
400
プロポーザルを書いてもらう
pvcresin
0
490
Featured
See All Featured
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.2k
The browser strikes back
jonoalderson
0
1.5k
How STYLIGHT went responsive
nonsquared
100
6.2k
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
420
It's Worth the Effort
3n
188
29k
How to train your dragon (web standard)
notwaldorf
97
6.7k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.6k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.7k
Leo the Paperboy
mayatellez
8
2.1k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
200
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
410
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.5k
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