2019.09.14 Laravel Hands-on
## 12:30 ~ 会場受付# Schedule## 12:45 ~ 資料## 16:10 ~ 懇親会(任意)## 13:20 ~ ハンズオン- ITプロパートナーズ会社紹介 (スポンサー様)- Laravel関連資料- 環境構築- Twitterっぽいサイトを作ってみようOsaka
View Slide
OsakaLaravelで始めるPHPフレームワークスポンサーLaravel Hands-On
## 簡単なプロフィール# Agenda## そもそもPHPってなに?## Laravelの魅⼒## Laravelを使ってみよう## そもそもフレームワークってなに?## Laravelってなに?
# ProfileAge : 25Like : Laravel Vue.jsHobby : BaskeTatsuya Namizato@namizatop毎週⽔曜⽇ #⽔曜⽇のもくもく会 主催
# What is PHP?## PHPとはPHPとはWebサーバの機能を拡張し、動的にWebページを⽣成するために⽤いれられるプログラミング⾔語、いわゆるスクリプト⾔語あるいは軽量⾔語のこと。Rasmus Lerdorfにより1995年にPersonal Home Page Toolsという名前でOSS化、その後バージョン3で⼤きく仕様変更がなされ、Hypertext Preprocessorという名前に変わりオブジェクト指向を取り⼊れた⾔語に成⻑した。現在のバージョン7では1つ前の5と⽐べて実⾏速度が2倍にもなった。
## WEBアプリケーションに特化したサーバサイド⾔語# What is PHP?- 同じサーバーサイド⾔語のJavaやGoといった型の制約が強い静的⾔語ではなく、型の制約が緩い動的⾔語と呼ばれるもの、記述量が⼤幅に減らせるなどがあげられる## インタープリタ型## 動的⾔語- C++やJavaとは違い1⾏ずつ機械語に翻訳するので動作確認がスムーズになる## オブジェクト指向に対応- クラス作成、インスタンスの⽣成継承、ポリモーフィズム、カプセル化等が使⽤できる
# Comparison with Java## 静的⾔語のJavaと動的⾔語のPHPを⽐較プログラム実⾏前使⽤分野レンタルサーバー規模PHPコンパイルが不要Web使える⼩規模案件向きJavaコンパイルが必要Web/スマホ/組込 etc使えない場合がある⼤規模案件向き
# Java Code## Javaのコードで配列にキーと値を指定して格納する場合Java
# PHP CodePHP## PHPのコードで配列にキーと値を指定して格納する場合
# Static and Dynamic## 静的⾔語と動的⾔語を⽐較処理速度開発スピードバグ記述量動的⾔語遅い速い起こりやすい少ない静的⾔語速い遅い起こりにくい多い
# What is Frame Work?## フレームワークとはフレームワークとは、システム構築に必須な標準的かつ低レベルの詳細を設計者やプログラマが検討する時間を省き、要求仕様の実現に多くの時間を割けるようにし、ソフトウェア開発を容易にすること⽬的にしている機能群のこと。フレームワークの最⼤のメリットは、⽬的のアプリケーションをゼロから開発する必要がないので、開発⼯程を⼤幅に短縮できることにある。に加え、そのコードを覚
# What is Frame Work?## 活発なフレームワークであれば脆弱性もすぐに修正対応される## ⼀つの⾔語だけでも数種類のフレームワークが存在する## 汎⽤的な機能群- システム開発を効率化出来る機能群のこと。ソフトウェアの⾻組みを提供してくれるので,開発者は⽐較的少ない記述量でシステム開発を⾏うことが出来る。## フレームワーク毎の規則(ルール)が存在する- 構造や書き⽅などフレームワークにより⼀定のルールが存在するため、他の開発者が⾒た時に分かりやすく記述することが出来る。
# What is Laravel?## PHPフレームワークのLaravelとはLaravelはMVCアーキテクチャで構成されたPHPフレームワークである。Taylor Otwellという⼈物により2011年6⽉にバージョン1が開発された。2019年現在GitHubのスター数が同じバックエンド系⾔語のフレームワークの中で⼀番多いなど⼈気のフレームワークの⼀つになっている。つい最近バージョン6がリリースされ、さらに盛り上がりを⾒せている。
## SQLを意識せずに直感的に書けるEloquent# The glamour of Laravel## 柔軟なオートローダー## 強⼒なルーティングフィルター## Collectionクラス## artisanコマンド## DI(依存性の注⼊)
# Laravel MVC## LaravelのMVCアーキテクチャControllerViewModelリクエストビジネスロジック呼び出し結果をControllerに返すControllerを介して取得した値を渡すユーザインターフェイスとして表⽰
# Laravel routing## Laravelのルーティングの仕組みindex.phpリクエストroutes/web.phphttp://test/welcome = welcomeビューを紐づけるwelcome.blade.phpViewファイルエントリポイント読み込みレスポンス
# Laravel autoload## LaravelのオートロードとはPHPでは別のファイルを読み込む際に読み込むファイル毎に require で呼び出す必要があります。Laravelではオートロードの仕組みを利⽤することで vendor/autoload.php を呼び出すだけで他のファイルの require が不要になります。※ 先ほど学んだルーティングで出てきたindex.phpでこのautoloadの処理を呼び出しています。
# Laravel Eloquent ORM## LaravelのEloquent ORMとはEloqunet ORM (Object Relational Mapping)Eloquentとはアクティブレコードによるデータ操作のための機能のこと。それぞれのデータベーステーブルは関連するモデルと紐づいており、SQL⽂を記述することなく、柔軟なテーブルのデータ操作が可能になります。次ページで例題
# Laravel Eloquent sample## LaravelのEloquentを使って通常のPHPと⽐べてみるPHP
# Laravel Eloquent sample## LaravelのEloquentを使って通常のPHPと⽐べてみるLaravel
# Laravel artisan command## LaravelのartisanコマンドLaravelで予め定義されたアプリケーション開発に役⽴つコマンドのこと。各ファイルの作成やログイン認証を実装したい時などにコマンドライン上で使⽤する。PHPの他のフレームワークにも似た様な機能は存在するが、Laravelでは70種類以上のartisanコマンドが⽤意されている。php artisan make:controller TestsController例
# Laravel Collection## LaravelのCollectionとはLaravelのCollectionとは配列のラッパーのこと。PHPの配列を操作しやすくした様々なメソッドが⽤意されているため⼿間を軽減するだけでなくコード量も減りスッキリしたコードになる。次ページで例題
# Laravel Collection sample## LaravelのCollectionを使ってPHPと同じ結果になる記述を書いてみるPHP Laravel
# Laravel DI## LaravelのDI(依存性の注⼊)とはシステム開発を⾏っているとクラスのインスタンス同⼠が様々に影響しあうようになります。この依存性を極⼒減らし、アプリケーションの変更や拡張に柔軟に対応できる様、実⾏時に外部から渡すことでコンポーネント間の依存性を下げるテクニックです。Laravelではこのテクニックを簡単に扱うことができます。
Let’s try LaravelLaravelを使ってみよう!