Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
։ൃମݧΛര্͛͢ΔLaravel Dacapo ϚΠάϨʔγϣϯαϙʔτπʔϧͷεεϝ 2022.08.27 @ucan_lab
Slide 2
Slide 2 text
ࣗݾհ • Ώ͏͖ΌΜ • ࡚ग़ • גࣜձࣾROLOॴଐ • ͓ࣄαʔόʔαΠυΤϯδχΞ • झຯHADOɺݪਆɺࡾᅳࢤਅઓɺΞχϝɺອը ΧϑΣ८ΓɺεϚϒϥSPɺϧʔϏοΫΩϡʔϒ ...ͨ͘͞Μɻ
Slide 3
Slide 3 text
એ
Slide 4
Slide 4 text
એ1: ϩϩɺҊ݅େେେืूதʂ • גࣜձࣾROLO (https://rolo.jp) • ΤϯδχΞ7ਓ΄Ͳ(Laravel, React) • ظతͳ͓ࣄ୳ͯ͠·͢ʂ • Laravelʹ1ۙ͘৮Εͯͳ͍ʂ
Slide 5
Slide 5 text
એ2: ຖ݄HADOͯ͠·͢ʂ • HADO (https://meleap.com) • ಄ͱʹηϯλʔΛணͯ͠ٿΛ์ͭ࠷৽ͷARεϙʔπ • ੈք39ΧࠃɺԆ350ສਓ͕ϓϨΠ • 1ࢼ߹80ඵؒɺ3ର3ͰΛऔΓ߹͏ήʔϜ • HADOެೝνʔϜʮShim Shamʯʹॴଐ • ॴ͓(ԭೄʹແ͍Έ͍ͨ...😢) • ڵຯ͋Δํ @ucan_lab ·Ͱ
Slide 6
Slide 6 text
※ը૾ΠϝʔδͰ͢ɻ
Slide 7
Slide 7 text
࣍ • Laravel Migrationػೳͷ͓͞Β͍ • Laravel Dacapoͷհ • Laravel Dacapoͷ͍ํ • ࠓޙͷΞοϓσʔτʹ͍ͭͯ • ※Laravelͬͯͳ͍ਓʹؔͳ͍ʹͳΓ·͢🙏 • ※ίʔυ͕Ͱͯ͘ΔͷͰ͓खݩͰࢿྉΛݟ͍ͯͩ͘͞🙏
Slide 8
Slide 8 text
Laravel Migrationͷ͓͞Β͍
Slide 9
Slide 9 text
Laravel Migrationͱ • σʔλϕʔεςʔϒϧఆٛͷมߋཤྺΛཧ • SQLͰͳ͘PHPϑΝΠϧͰཧ • ಛఆͷσʔλϕʔεʹґଘ͠ͳ͍ MySQL, PostgreSQL, SQLite, SQL ServerͰಈ͘ • php artisan migrate ίϚϯυҰൃͰөʂ
Slide 10
Slide 10 text
MigrationϑΝΠϧͷத id(); $table->string('name'); $table->string('email')->unique(); $table->timestamp('email_verified_at')->nullable(); $table->string('password'); $table->rememberToken(); $table->timestamps(); }); } public function down() { Schema::dropIfExists('users'); } };
Slide 11
Slide 11 text
MigrationͷྲྀΕ php artisan migrate .JHSBUJPO༻ͷ1)1ϑΝΠϧΛ࡞ ίϚϯυΛ࣮ߦͯ͠42-͕ൃߦ
Slide 12
Slide 12 text
🤔 ΊͬͪΌγϯϓϧ ͡ΌͶʁ Կ͕ࠔΔͷʁ
Slide 13
Slide 13 text
ςʔϒϧఆٛมΘΓ͍͢ • ༷͕มΘΕςʔϒϧมΘΔ • ෆཁͳςʔϒϧɺΧϥϜ͕ͲΜͲΜग़ͯ͘Δ
Slide 14
Slide 14 text
ͭ·Γɺ͜͏ɻ php artisan migrate 🤔 ΊͬͪΌ૿͑Δ ͡ΌΜʁ
Slide 15
Slide 15 text
Migrationͷෆຬ • ΰϛϑΝΠϧ͕Δ🙄 ʢෆཁʹͳͬͨςʔϒϧΧϥϜʣ • ࠷ऴతͳςʔϒϧߏ͕ϑΝΠϧΛݟ͔ͯΒΜ🤔 ʢҰཡੑ͕͍ʣ • PHPϑΝΠϧͰup, downΛॻ͘ͷ͕ΊΜͲ͍🙃 • ࣗಈੜ͞Ε͕ͨόϥόϥͰؾ࣋ͪѱ͍😣
Slide 16
Slide 16 text
͜ΕΛղܾ͢Δͷ͕μΧʔϙʂ • https://github.com/ucan-lab/laravel-dacapo
Slide 17
Slide 17 text
Laravel Dacapoͷհ
Slide 18
Slide 18 text
Laravel Dacapoͱ ɾLaravel MigrationͷαϙʔτϥΠϒϥϦ ɾYAMLܗࣜͰMigrationΛॻ͘ ɾMigrationৗʹ࠷৽ͷঢ়ଶΛอͭ ɹʢΘΓʹςʔϒϧຖճΫϦΞ͞ΕΔʣ ɾ։ൃ͕ऴΘͬͨΒ௨ৗͷMigrationͷӡ༻ʹ͢
Slide 19
Slide 19 text
ϥΠϒϥϦΛ࡞͖͔͚ͨͬ͠ • 4લʹmpyw͞ΜͷLTʹӨڹΛड͚ͨ
Slide 20
Slide 20 text
YAMLϑΝΠϧͷத # database/schemas/sample.yml users: columns: id: bigIncrements name: string email: type: string unique: true email_verified_at: type: timestamp nullable: true password: string rememberToken: true timestamps: true • 1֊ʹςʔϒϧ໊ • 2֊columnsݻఆ • 3֊ʹΧϥϜఆٛ • 4֊ඞཁʹԠͯ͡Φϓγϣϯఆٛ
Slide 21
Slide 21 text
ੜ͞ΕͨMigrationϑΝΠϧͷத id(); $table->string('name'); $table->string('email')->unique(); $table->timestamp('email_verified_at')->nullable(); $table->string('password'); $table->rememberToken(); $table->timestamps(); }); } public function down() { Schema::dropIfExists('users'); } };
Slide 22
Slide 22 text
DacapoͷྲྀΕ php artisan dacapo .JHSBUJPO༻ͷ:".-ϑΝΠϧΛ࡞ ࠷৽ͷ.JHSBUJPOϑΝΠϧΛੜ .JHSBUJPOΛσʔλϕʔεʹద༻ ςʔϒϧॳظԽɺγʔμʔ࣮ߦؚΉ
Slide 23
Slide 23 text
Laravel DacapoͷϝϦοτ • YAMLͳͷͰPHPΑΓѹతʹ͍ • ࠷৽͔ͭෳͷఆٛΛॻ͚ͯҰཡੑ͕ߴ͍ • MigrationϑΝΠϧͷ͕ཧ͞ΕΔ • ςʔϒϧ࡞ɺΠϯσοΫεɺ֎෦Ωʔʹ ϑΝΠϧ͕͔ΕΔ
Slide 24
Slide 24 text
Laravel Dacapo ͷ͍ํ
Slide 25
Slide 25 text
Πϯετʔϧํ๏ $ composer require --dev ucan-lab/laravel-dacapo ※ݱ࣌ͷόʔδϣϯ5.1.2
Slide 26
Slide 26 text
ॳظઃఆ(dacapo:init ίϚϯυ)
Slide 27
Slide 27 text
database/schemas/default.yml
Slide 28
Slide 28 text
database/migrations/ 1970_01_01_000001_create_users_table.php
Slide 29
Slide 29 text
php artisan dacapo ίϚϯυ • εΩʔϚYAMLΛߋ৽ͨ͠Βdacapo͢Δͩ ͚ʂ • ৗʹ࠷৽ͷϚΠάϨʔγϣϯϑΝΠϧ͕ੜ
Slide 30
Slide 30 text
php artisan dacapo ίϚϯυ
Slide 31
Slide 31 text
εΩʔϚYAMLϑΥʔϚοτ
Slide 32
Slide 32 text
εΩʔϚYAMLϑΥʔϚοτ テーブル名: comment: テーブルコメント columns: カラム名: カラムタイプ カラム名: type: カラムタイプ args: カラムタイプの引数(任意) カラム修飾⼦: カラム修飾⼦の引数 カラムエイリアス(timestamps等): indexes: - columns: [カラム名] type: インデックス修飾⼦ name: インデックス名(任意) foreign_keys: - columns: [カラム名] references: [カラム名] table: テーブル名
Slide 33
Slide 33 text
εΩʔϚYAMLઃఆྫ lessons: columns: id: instructor_id: unsignedBigInteger studio_id: unsignedBigInteger name: unsignedInteger capacity: unsignedInteger started_at: dateTime minutes: unsignedInteger timestamps: indexes: - columns: started_at type: index foreign_keys: - columns: instructor_id references: id table: instructors - columns: studio_id references: id table: studios instructors: columns: id: name: string stores: columns: id: name: string address: string phone_number: string timestamps: studios: columns: id: store_id: unsignedBigInteger name: string timestamps: foreign_keys: - columns: store_id references: id table: stores
Slide 34
Slide 34 text
ͦͷଞ
Slide 35
Slide 35 text
MigrationϑΝΠϧ໊ͷϧʔϧ • 1970_01_01_000001 → ςʔϒϧ࡞ • 1970_01_01_000002 → ΠϯσοΫε੍ • 1970_01_01_000003 → ֎෦Ωʔ੍
Slide 36
Slide 36 text
YAMLͰදݱͰ͖ͳ͍ͷ $ php artisan make:migration create_flights_table id(); $table->json('movies')->default(new Expression('(JSON_ARRAY())')); $table->timestamps(); }); } public function down() { Schema::drop('flights'); } }; $ php artisan dacapo ௨ৗͷMigrationϑΝΠϧͱڞଘՄ
Slide 37
Slide 37 text
εΩʔϚϑΝΠϧ͍ͭ͘Ͱ
Slide 38
Slide 38 text
ΞϯΠϯετʔϧํ๏ $ php artisan dacapo:uninstall $ composer remove ucan-lab/laravel-dacapo • ӡ༻͕࢝·ͬͨΒμΧʔϙআ͢Δ
Slide 39
Slide 39 text
ࠓޙͷΞοϓσʔτ • ϞσϧɺϑΝΫτϦʔɺγʔμʔͷࣗಈੜ • σʔλϕʔε͔ΒεΩʔϚYAMLͷੜ • σʔλϕʔεͱεΩʔϚYAMLͷࠩͷϚΠά ϨʔγϣϯΛੜ
Slide 40
Slide 40 text
͓͠·͍
Slide 41
Slide 41 text
࣭ͳͲ͋Ε ͓ؾܰʹͲ͏ͧ