SlideShare una empresa de Scribd logo
1 de 35
Laravelではじめる
Webアプリケーション開発
ゆきしお(@YuxioArts)
アジェンダ
1.自己紹介
2.登壇理由と今回お話する内容
3.フレームワークとは
4.Laravelとは
5.機能紹介
6.Q&A
7.最後に
1.自己紹介
1.自己紹介
名前:ゆきしお(@YuxioArts)
職業:データアナリスト(2年目)
趣味:Webサービスの開発
(前職がWeb系でありフロント・バックでLaravelを使用。
趣味の開発でも継続して使用。)
Laravel使用歴:1.5年ほど。他のPHPフレームワークの使用経験は0。
フロント・バックで開発をするも
テストなどはまだ行ったことがない。
一言:今年中にLaravelを使用したサービスリリースを目標
2.登壇理由と今回お話する内容
2.登壇理由と今回お話する内容
今回登壇した理由
「Laravelを知らない方向けにひとまず
ざっくりと理解してもらって使うきっかけになってほしいと思ったから」
話す内容
・web開発で使用する主な機能紹介(ディレクトリ構成・MVC・エラーハンド
リング等)
・Q&A(メリット・デメリット・参考書籍の紹介等)
・難しい・細かい内容は割愛
3.フレームワークとは
3.フレームワークとは
アプリケーション構築に必要な機能が組み合わされ、
開発準備が整っている基本的なソフトウェアのことを指す。
⇛生のPHP等の言語を使うよりも、効率よく開発を行うことができる
⇛また、ライブラリやパッケージを導入することで機能の拡充をはかること
ができる
など様々なメリットがある。
4.Laravelとは
4.Laravel(ララベル)とは
• MVCのWebアプリケーション開発用の
PHPフレームワーク(無料)
・Githubにホスティングされており、PHP
フレームワークの中でスター数は1位
・機能追加等のマイナーリリースは
半年単位で行われる。
(2017年8月30日に最新の5.5リリース!
※バグ修正などのLTS対応つき)
4.Laravelとは ~世界と日本でみるPHPフレームワークのトレンド推移~
日本での推移
世界での推移
2012年から2017年の
過去5年分のPHPフレームワーク
のトレンドの推移を見ると
世界・日本共に青色のLaravelが
上昇している
⇛フレームワークとして人気を
集めている
4.Laravelとは ~Qiitaでの投稿数やフォロワー~
日本でPHPのフレームワークの主流と言われてい
るCakePHPよりLaravelの方が投稿数やフォロワー
数が多い。
⇛投稿数の多さから使用している、勉強している
方が多い
⇛フォロワー数の多さから注目度が高い
5.機能紹介
プロジェクト・ディレクトリ・ファイル構成
デフォルトでモデルやコントローラーを作成・設置
言語やDBなどの設定ファイルを作成・設置
マイグレーションなどDBに関連するファイルを作成・設置
CSSやJSを設置。WEBサーバーのドキュメントルートとして指定
Webブラウザから見るページ(ビュー)を作成・設置
ルートの定義ファイルを作成・設置
接続先のDB情報等を記載
ルーティング管理
基本的にroutes配下のweb.phpに作成。api関係ならapi.phpに作成。
URLと使用するメソッドを記載
モデル概要、モデル例
デフォルトだとapp直下に作成。Model名はキャメル記法。
デフォルトでUserModelが作成される。
fillableで複数代入できるように設定
(カラムに値を入れる場合必須)そ
れ以外のものを設定したいときは、
$guardedを使用
配列/json変換時に隠蔽され
るカラムを指定
コントローラ概要、コントローラ例
デフォルトだとapp/Http/Controllers直下に作成。 Controller内にメソッドごとに作成
Eloquent ORM
Queryオブジェト
SQLを直接書けるなど
様々な書き方が可能
※Eloquent ORM
については後説明
ビュー概要、ビュー例
Resources/viewsの直下にファイル作成。 ブラウザで表示させるページ。
HTMLはもちろん<?php ?>でくくっ
て処理も可能。デフォルトでログ
インに関する条件分岐での処理
も作成される。
@includeを使えば、ヘッダーや
フッターなどのコンポーネント単
位で使用可能
CRUD例
Routes
URLと各CRUDのメソッドを記載
Controller
各CRUDの処理内容を記載 ※データ取得の部分のみ掲載
CRUD(Create(新規作成)」「Read(データ取得)」「Update(更新)」「Delete(削除)」)
はControllerで処理。
エラーハンドリング
エラー画面では明示的にエラーやDataの受け渡しなど表示される。
※画面は、バージョン5.5
エラーハンドリング
エラー画面も進化し、エンジニアに優しい画面となっている
現在の最新のバージョン
マイグレーション
どんなテーブルを作るかの設計書。
テーブル単位に作成
カラムの型は、
DATE型、Char型などが可能
Faker
ダミーデータの生成を行うパッケージ
FakerFactoryから呼び出し
25件のダミーデータを生成し
DBに保存する
多言語化サポート
Lang直下にその言語のフォルダを作成して多言語の文字列取得も可能。
英語(en)ファイルはデフォルトで作成される。ECサイトを構築する上では便利?
英語のメッセージが
予め用意されている
その他
使用できるコマンド一覧
php artisan list
Modelの作成
php artisan make:model Admin
マイグレーションの作成
php artisan make:migration create_admins_table --create=admins
マイグレーションの実行
php artisan migrate
Seederの作成
php artisan make:seeder AdminTableSeeder
Seederの実行
php artisan db:seed
コントローラーの作成
php artisan make:Controller UsersController
ビルトインサーバーの立ち上げ
php artisan serve --port=8081
ビルトインサーバーの立ち上げ(Port指定)
php artisan serve --port=8081
認証用のログイン画面生成
php artisan make:auth
Artisanコマンド
Modelやcontrollerの雛形の作成
ダミーデータの作成
ビルトインサーバーの立ち上げなど
コマンド一発でできるので便利
その他
Eloquent ORM
各モデルを通してDBのテーブル対する抽出や挿入、更新を行う
⇛メリット 直感的に処理内容を入力することができる
⇛デメリット 複雑なSQLの処理になると生のSQLより可読性が低くなる
<単一行の処理>
$users = User::where(‘id’, ‘=’, 10)->get();
$user = $users[0];
<集約関数>
$max_price = Book::max(‘price’); //Bookテーブルの値段の最大値取得
<データの挿入 更新>
$tag = new Tag(); //モデルTagをインスタンス化
$tag->name = ‘PHP’; //プロパティのセット
$tag->save //保存
その他
Frontend preset(React.js Vue.js Bootstrap)の使用
Vue.jsは、Laravelにデフォルトで設定されていたが、5.5からReact.js Bootstrapを
使用することが可能。
React.jsを使用する場合のコマンド
php artisan preset react
Bootstrap使用する場合のコマンド
php artisan preset bootstrap
Vue.jsもBootstrapも使いたくない場合のコマンド
php artisan preset none
6.Q&A
6.Q&A
Q.他の開発で別のフレームワークを使っています。今度、Laravelを使ってみようと思いますが学習
コストはどのくらいでしょうか?
A.基本的なDB、MVCの仕組みがわかっていれば開発可能かと思います。ざっくりとした内容を把
握するのであれば、すぐにはじめることができるので学習コストは低いと思います。
最初から全体の細かい部分まで把握しようとせず、使用して行く中で覚えていけばいいと思いま
す。
Q.Laravelを選定する上でのメリット・デメリットを教えてください
A.メリットは、利便性の高い機能が揃っていること、開発するのに自由性が高いことです。
デメリットは、自由が故、なんでも書けてしまうので規約が必要(特にチームや大規模開発時)な
ところです。
Q.Laravelの軽量版でLumenというものがありますがどちらを使うべきですか?
A.Laravelです。Lumenなど最低限の機能しか揃っていないのでライブラリ等を追加すると
Laravelと基本変わらなくなるので、最初からLaravelを使っておくのが良いと思います。
Q.学ぶ上参考となるサイトや書籍はありますか?
A.以下のサイトや書籍がおすすめです。
Laravelドキュメント(日本語サイト)
https://readouble.com/laravel/
ララ帳
https://laravel10.wordpress.com/
書籍
2017年9月16日
発売!
6.Q&A
6.Q&A
Q.Laravelのコミュニティに参加したいのですがどんなものがありますか?
A.以下のコミュニティがございます。
Laracafe ★所属している おすすめ
https://laracafe.connpass.com/
Slackあり。Laravelでつまづいたところなど聞くことができます。
Laravel Meetup Tokyo
https://laravel-meetup-tokyo.connpass.com/
他
TECH PLAYなど勉強会検索サイトで「laravel」と入力すると勉強会がヒットします。
https://techplay.jp/
7.さいごに
まとめ
・Laravelは、MVCのWebアプリケーション開発用のPHPフレームワーク(無料)
・GithubでのPHPフレームワークのスター数で1位
・世界・日本共に人気急上昇
・Qiitaの投稿数もCakePHPより多い
・利便性が高い機能が豊富にあり、しかも使いやすい
・5.5からフロントエンドで最近主流Reactも使用可能に。
最新の動向を追っている
・勉強方法だとまずはざっくりと使ってみて、その後細かい所を把握していくの
がベスト
・メリットは、利便性の高い機能が揃っている、開発するのに自由性が高い
・デメリットは、自由が故、なんでも書けてしまうので規約が必要(特にチームや
大規模開発時)
・日本語ドキュメントサイトもある
・入門書が2017年9月16日に発売
・コミュニティや勉強会もある
公式サイトとインストール手順
Laravel(公式サイト)
http://laravel.jp/
導入手順を解説!Laravelのインストール方法【初心者向け】
https://techacademy.jp/magazine/11521
※最新の5.5は、PHP7以上ですので
お使いのPHPのバージョン等環境に
ご注意下さい
よいLaraLifeを!
Let’s composer create-project --prefer-dist laravel/laravel
Enjoy_Laravel_Project

Más contenido relacionado

Similar a Laravelではじめる Webアプリケーション開発

Laravel4で運用するサービス,そしてlaravel5へ
Laravel4で運用するサービス,そしてlaravel5へLaravel4で運用するサービス,そしてlaravel5へ
Laravel4で運用するサービス,そしてlaravel5へNʎ Nkogues
 
Laravel Mix とは何なのか? - Laravel/Vue 勉強会 #1
Laravel Mix とは何なのか? - Laravel/Vue 勉強会 #1Laravel Mix とは何なのか? - Laravel/Vue 勉強会 #1
Laravel Mix とは何なのか? - Laravel/Vue 勉強会 #1Shohei Okada
 
three.jsによる一歩進めたグラフィカルな表現
three.jsによる一歩進めたグラフィカルな表現three.jsによる一歩進めたグラフィカルな表現
three.jsによる一歩進めたグラフィカルな表現Kei Yagi
 
ソフトウェア開発ブースト4手
ソフトウェア開発ブースト4手ソフトウェア開発ブースト4手
ソフトウェア開発ブースト4手Keiichi Kobayashi
 
LaravelとNuxt.jsを業務で取り入れる際に得た知見 Laravel/Vue.js勉強会#4 2018/04/25
LaravelとNuxt.jsを業務で取り入れる際に得た知見 Laravel/Vue.js勉強会#4 2018/04/25LaravelとNuxt.jsを業務で取り入れる際に得た知見 Laravel/Vue.js勉強会#4 2018/04/25
LaravelとNuxt.jsを業務で取り入れる際に得た知見 Laravel/Vue.js勉強会#4 2018/04/25Isao Ebisujima
 
Laravel_オープンソースカンファレンスhokkaido_JP_2014
Laravel_オープンソースカンファレンスhokkaido_JP_2014Laravel_オープンソースカンファレンスhokkaido_JP_2014
Laravel_オープンソースカンファレンスhokkaido_JP_2014Yuuki Takezawa
 
Laravel5.1&homesteadで楽々ローカル環境構築
Laravel5.1&homesteadで楽々ローカル環境構築Laravel5.1&homesteadで楽々ローカル環境構築
Laravel5.1&homesteadで楽々ローカル環境構築Noriaki Takamizawa
 
Laravel における Blade 拡張のツラミ
Laravel における Blade 拡張のツラミLaravel における Blade 拡張のツラミ
Laravel における Blade 拡張のツラミShohei Okada
 
Laravelのすごいと思うところを 初級レベルで語ってみる。
Laravelのすごいと思うところを 初級レベルで語ってみる。Laravelのすごいと思うところを 初級レベルで語ってみる。
Laravelのすごいと思うところを 初級レベルで語ってみる。AfiruPain NaokiSoga
 
プログラミングのお勉強としてscratchをさわってみた
プログラミングのお勉強としてscratchをさわってみたプログラミングのお勉強としてscratchをさわってみた
プログラミングのお勉強としてscratchをさわってみたHirokiIwanaga
 
railsはじめの一歩
railsはじめの一歩railsはじめの一歩
railsはじめの一歩Kanako Kobayashi
 
swiftビギナーズ倶楽部:タブバーから学ぶ 「App delegate」と「as演算子」
swiftビギナーズ倶楽部:タブバーから学ぶ 「App delegate」と「as演算子」swiftビギナーズ倶楽部:タブバーから学ぶ 「App delegate」と「as演算子」
swiftビギナーズ倶楽部:タブバーから学ぶ 「App delegate」と「as演算子」Kanako Kobayashi
 
``完璧に理解した``WEB の裏側の仕組み.pptx
``完璧に理解した``WEB の裏側の仕組み.pptx``完璧に理解した``WEB の裏側の仕組み.pptx
``完璧に理解した``WEB の裏側の仕組み.pptxRyo Higashigawa
 
CodeGrid2周年記念パーティ_ライトニングトーク_アジャイル開発
CodeGrid2周年記念パーティ_ライトニングトーク_アジャイル開発CodeGrid2周年記念パーティ_ライトニングトーク_アジャイル開発
CodeGrid2周年記念パーティ_ライトニングトーク_アジャイル開発Yasuyuki Fujikawa
 
GoogleAnalyticsを使った効果測定
GoogleAnalyticsを使った効果測定GoogleAnalyticsを使った効果測定
GoogleAnalyticsを使った効果測定sugimoto1022
 

Similar a Laravelではじめる Webアプリケーション開発 (20)

React way at_eight
React way at_eightReact way at_eight
React way at_eight
 
Rubyのススメ
RubyのススメRubyのススメ
Rubyのススメ
 
Laravel4で運用するサービス,そしてlaravel5へ
Laravel4で運用するサービス,そしてlaravel5へLaravel4で運用するサービス,そしてlaravel5へ
Laravel4で運用するサービス,そしてlaravel5へ
 
Laravel Mix とは何なのか? - Laravel/Vue 勉強会 #1
Laravel Mix とは何なのか? - Laravel/Vue 勉強会 #1Laravel Mix とは何なのか? - Laravel/Vue 勉強会 #1
Laravel Mix とは何なのか? - Laravel/Vue 勉強会 #1
 
three.jsによる一歩進めたグラフィカルな表現
three.jsによる一歩進めたグラフィカルな表現three.jsによる一歩進めたグラフィカルな表現
three.jsによる一歩進めたグラフィカルな表現
 
Trat_sprint4
Trat_sprint4Trat_sprint4
Trat_sprint4
 
ソフトウェア開発ブースト4手
ソフトウェア開発ブースト4手ソフトウェア開発ブースト4手
ソフトウェア開発ブースト4手
 
転職とLaravel
転職とLaravel転職とLaravel
転職とLaravel
 
LaravelとNuxt.jsを業務で取り入れる際に得た知見 Laravel/Vue.js勉強会#4 2018/04/25
LaravelとNuxt.jsを業務で取り入れる際に得た知見 Laravel/Vue.js勉強会#4 2018/04/25LaravelとNuxt.jsを業務で取り入れる際に得た知見 Laravel/Vue.js勉強会#4 2018/04/25
LaravelとNuxt.jsを業務で取り入れる際に得た知見 Laravel/Vue.js勉強会#4 2018/04/25
 
Laravel_オープンソースカンファレンスhokkaido_JP_2014
Laravel_オープンソースカンファレンスhokkaido_JP_2014Laravel_オープンソースカンファレンスhokkaido_JP_2014
Laravel_オープンソースカンファレンスhokkaido_JP_2014
 
3 tips of Laravel
3 tips of Laravel3 tips of Laravel
3 tips of Laravel
 
Laravel5.1&homesteadで楽々ローカル環境構築
Laravel5.1&homesteadで楽々ローカル環境構築Laravel5.1&homesteadで楽々ローカル環境構築
Laravel5.1&homesteadで楽々ローカル環境構築
 
Laravel における Blade 拡張のツラミ
Laravel における Blade 拡張のツラミLaravel における Blade 拡張のツラミ
Laravel における Blade 拡張のツラミ
 
Laravelのすごいと思うところを 初級レベルで語ってみる。
Laravelのすごいと思うところを 初級レベルで語ってみる。Laravelのすごいと思うところを 初級レベルで語ってみる。
Laravelのすごいと思うところを 初級レベルで語ってみる。
 
プログラミングのお勉強としてscratchをさわってみた
プログラミングのお勉強としてscratchをさわってみたプログラミングのお勉強としてscratchをさわってみた
プログラミングのお勉強としてscratchをさわってみた
 
railsはじめの一歩
railsはじめの一歩railsはじめの一歩
railsはじめの一歩
 
swiftビギナーズ倶楽部:タブバーから学ぶ 「App delegate」と「as演算子」
swiftビギナーズ倶楽部:タブバーから学ぶ 「App delegate」と「as演算子」swiftビギナーズ倶楽部:タブバーから学ぶ 「App delegate」と「as演算子」
swiftビギナーズ倶楽部:タブバーから学ぶ 「App delegate」と「as演算子」
 
``完璧に理解した``WEB の裏側の仕組み.pptx
``完璧に理解した``WEB の裏側の仕組み.pptx``完璧に理解した``WEB の裏側の仕組み.pptx
``完璧に理解した``WEB の裏側の仕組み.pptx
 
CodeGrid2周年記念パーティ_ライトニングトーク_アジャイル開発
CodeGrid2周年記念パーティ_ライトニングトーク_アジャイル開発CodeGrid2周年記念パーティ_ライトニングトーク_アジャイル開発
CodeGrid2周年記念パーティ_ライトニングトーク_アジャイル開発
 
GoogleAnalyticsを使った効果測定
GoogleAnalyticsを使った効果測定GoogleAnalyticsを使った効果測定
GoogleAnalyticsを使った効果測定
 

Laravelではじめる Webアプリケーション開発