Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Laravel Hands-on

namizatork
September 14, 2019

 Laravel Hands-on

2019.09.14 Laravel Hands-on

namizatork

September 14, 2019
Tweet

More Decks by namizatork

Other Decks in Programming

Transcript

  1. ## 12:30 ~ 会場受付
    # Schedule
    ## 12:45 ~ 資料
    ## 16:10 ~ 懇親会(任意)
    ## 13:20 ~ ハンズオン
    - ITプロパートナーズ会社紹介 (スポンサー様)
    - Laravel関連資料
    - 環境構築
    - Twitterっぽいサイトを作ってみよう
    Osaka

    View Slide

  2. Osaka
    Laravelで始めるPHPフレームワーク
    スポンサー
    Laravel Hands-On

    View Slide

  3. ## 簡単なプロフィール
    # Agenda
    ## そもそもPHPってなに?
    ## Laravelの魅⼒
    ## Laravelを使ってみよう
    ## そもそもフレームワークってなに?
    ## Laravelってなに?

    View Slide

  4. # Profile
    Age : 25
    Like : Laravel Vue.js
    Hobby : Baske
    Tatsuya Namizato
    @namizatop
    毎週⽔曜⽇ #⽔曜⽇のもくもく会 主催

    View Slide

  5. # What is PHP?
    ## PHPとは
    PHPとはWebサーバの機能を拡張し、動的にWebページを⽣成するために⽤いれられ
    るプログラミング⾔語、いわゆるスクリプト⾔語あるいは軽量⾔語のこと。
    Rasmus Lerdorfにより1995年にPersonal Home Page Toolsという名前でOSS化、
    その後バージョン3で⼤きく仕様変更がなされ、Hypertext Preprocessorという名前
    に変わりオブジェクト指向を取り⼊れた⾔語に成⻑した。
    現在のバージョン7では1つ前の5と⽐べて実⾏速度が2倍にもなった。

    View Slide

  6. ## WEBアプリケーションに特化したサーバサイド⾔語
    # What is PHP?
    - 同じサーバーサイド⾔語のJavaやGoといった型の制約が強い静的⾔語ではなく、
    型の制約が緩い動的⾔語と呼ばれるもの、記述量が⼤幅に減らせるなどがあげられる
    ## インタープリタ型
    ## 動的⾔語
    - C++やJavaとは違い1⾏ずつ機械語に翻訳するので動作確認がスムーズになる
    ## オブジェクト指向に対応
    - クラス作成、インスタンスの⽣成継承、ポリモーフィズム、カプセル化等が使⽤できる

    View Slide

  7. # Comparison with Java
    ## 静的⾔語のJavaと動的⾔語のPHPを⽐較
    プログラム実⾏前
    使⽤分野
    レンタルサーバー
    規模
    PHP
    コンパイルが不要
    Web
    使える
    ⼩規模案件向き
    Java
    コンパイルが必要
    Web/スマホ/組込 etc
    使えない場合がある
    ⼤規模案件向き

    View Slide

  8. # Java Code
    ## Javaのコードで配列にキーと値を指定して格納する場合
    Java

    View Slide

  9. # PHP Code
    PHP
    ## PHPのコードで配列にキーと値を指定して格納する場合

    View Slide

  10. # Static and Dynamic
    ## 静的⾔語と動的⾔語を⽐較
    処理速度
    開発スピード
    バグ
    記述量
    動的⾔語
    遅い
    速い
    起こりやすい
    少ない
    静的⾔語
    速い
    遅い
    起こりにくい
    多い

    View Slide

  11. # What is Frame Work?
    ## フレームワークとは
    フレームワークとは、システム構築に必須な標準的かつ低レベルの詳細を設計者やプ
    ログラマが検討する時間を省き、要求仕様の実現に多くの時間を割けるようにし、ソ
    フトウェア開発を容易にすること⽬的にしている機能群のこと。
    フレームワークの最⼤のメリットは、⽬的のアプリケーションをゼロから開発する必
    要がないので、開発⼯程を⼤幅に短縮できることにある。に加え、そのコードを覚

    View Slide

  12. # What is Frame Work?
    ## 活発なフレームワークであれば脆弱性もすぐに修正対応される
    ## ⼀つの⾔語だけでも数種類のフレームワークが存在する
    ## 汎⽤的な機能群
    - システム開発を効率化出来る機能群のこと。ソフトウェアの⾻組みを提供してくれるので,
    開発者は⽐較的少ない記述量でシステム開発を⾏うことが出来る。
    ## フレームワーク毎の規則(ルール)が存在する
    - 構造や書き⽅などフレームワークにより⼀定のルールが存在するため、
    他の開発者が⾒た時に分かりやすく記述することが出来る。

    View Slide

  13. # What is Laravel?
    ## PHPフレームワークのLaravelとは
    LaravelはMVCアーキテクチャで構成されたPHPフレームワークである。
    Taylor Otwellという⼈物により2011年6⽉にバージョン1が開発された。
    2019年現在GitHubのスター数が同じバックエンド系⾔語のフレームワークの中で
    ⼀番多いなど⼈気のフレームワークの⼀つになっている。
    つい最近バージョン6がリリースされ、さらに盛り上がりを⾒せている。

    View Slide

  14. ## SQLを意識せずに直感的に書けるEloquent
    # The glamour of Laravel
    ## 柔軟なオートローダー
    ## 強⼒なルーティングフィルター
    ## Collectionクラス
    ## artisanコマンド
    ## DI(依存性の注⼊)

    View Slide

  15. # Laravel MVC
    ## LaravelのMVCアーキテクチャ
    Controller
    View
    Model
    リクエスト
    ビジネスロジック呼び出し
    結果をControllerに返す
    Controllerを介して取得した値を渡す
    ユーザインターフェイスとして表⽰

    View Slide

  16. # Laravel routing
    ## Laravelのルーティングの仕組み
    index.php
    リクエスト
    routes/web.php
    http://test/welcome = welcome
    ビューを紐づける
    welcome.blade.php
    Viewファイル
    エントリポイント
    読み込み
    レスポンス

    View Slide

  17. # Laravel autoload
    ## Laravelのオートロードとは
    PHPでは別のファイルを読み込む際に読み込むファイル毎に require で呼び出す必要
    があります。
    Laravelではオートロードの仕組みを利⽤することで vendor/autoload.php を
    呼び出すだけで他のファイルの require が不要になります。
    ※ 先ほど学んだルーティングで出てきたindex.phpで
    このautoloadの処理を呼び出しています。

    View Slide

  18. # Laravel Eloquent ORM
    ## LaravelのEloquent ORMとは
    Eloqunet ORM (Object Relational Mapping)
    Eloquentとはアクティブレコードによるデータ操作のための機能のこと。
    それぞれのデータベーステーブルは関連するモデルと紐づいており、
    SQL⽂を記述することなく、柔軟なテーブルのデータ操作が可能になります。
    次ページで例題

    View Slide

  19. # Laravel Eloquent sample
    ## LaravelのEloquentを使って通常のPHPと⽐べてみる
    PHP

    View Slide

  20. # Laravel Eloquent sample
    ## LaravelのEloquentを使って通常のPHPと⽐べてみる
    Laravel

    View Slide

  21. # Laravel artisan command
    ## Laravelのartisanコマンド
    Laravelで予め定義されたアプリケーション開発に役⽴つコマンドのこと。
    各ファイルの作成やログイン認証を実装したい時などにコマンドライン上で使⽤する。
    PHPの他のフレームワークにも似た様な機能は存在するが、
    Laravelでは70種類以上のartisanコマンドが⽤意されている。
    php artisan make:controller TestsController

    View Slide

  22. # Laravel Collection
    ## LaravelのCollectionとは
    LaravelのCollectionとは配列のラッパーのこと。
    PHPの配列を操作しやすくした様々なメソッドが⽤意されているため⼿間を軽減する
    だけでなくコード量も減りスッキリしたコードになる。
    次ページで例題

    View Slide

  23. # Laravel Collection sample
    ## LaravelのCollectionを使ってPHPと同じ結果になる記述を書いてみる
    PHP Laravel

    View Slide

  24. # Laravel DI
    ## LaravelのDI(依存性の注⼊)とは
    システム開発を⾏っているとクラスのインスタンス同⼠が様々に影響しあうようにな
    ります。
    この依存性を極⼒減らし、アプリケーションの変更や拡張に柔軟に対応できる様、
    実⾏時に外部から渡すことでコンポーネント間の依存性を下げるテクニックです。
    Laravelではこのテクニックを簡単に扱うことができます。

    View Slide

  25. Let’s try Laravel
    Laravelを使ってみよう!

    View Slide