Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

<第1回>Laravelハンズオンセミナー

1,912 views

Published on

〜Laravelマスターへの道〜
第一回ハンズオンセミナー配布資料

Published in: Engineering

<第1回>Laravelハンズオンセミナー

  1. 1. ウェブ職人のためのPHPフレームワーク <第1回>初めての Laravel PHPフレームワ ーク講座 水野 竜与志 - Tatsuyoshi Mizuno
  2. 2. <第1回>初めてのLaravel PHPフレームワーク講座で学べる こと ❖ WEBフレームワークとは ❖ Laravelのここが良い ❖ Laravelの情報源と公式サイトの紹介 ❖ Laravelを理解するために ❖ composerとは ❖ namespaceとは ❖ Laravelハンズオン! ❖ Laravelのインストール ❖ ローカル実行環境の作り方 ❖ ビルトインサーバの起動 ❖ コントローラの作成とルーティングの設定 ❖ ビューの作成と表示 ❖ データベースへのコネクション設定 ❖ マイグレーションの作成と実行 ❖ モデルの作成 ❖ コントローラへ処理記述 ハンズオンの内容
  3. 3. <第1回>初めてのLaravel PHPフレーム ワーク講座 講師紹介 ❖ みずの たつよしです。 ❖ フロントのUI・UX開発もやっています。 ❖ AI・VRに関心あります。 Tatsuyoshi (タツヨシ) http://elastic-info.jp/ https://www.facebook.com/tatsuyoshi964
  4. 4. <第1回>初めてのLaravel PHPフレームワーク講座 講習会が始まります
  5. 5. <第1回>初めてのLaravel PHPフレームワーク講座 WEBフレームワークとは ❖ フレームワークは骨組み ❖ 十分にテストされたライブラリの集合体 ❖ MITライセンスが大半 ❖ CMSよりも自由度が高いが学習コストが発生する システム 必要な知識量 開発自由度 実行効率(速度) CMS系 低〜中 限定的 低 フレームワーク やや低〜中 十分 中〜高 PHPのみ 高 最高 最高 ■開発効率比較表
  6. 6. <第1回>初めてのLaravel PHPフレームワーク講座 Laravelのここが良い ❖ 多種多様で拡張が容易なバリデーション ❖ ページネートが簡単で高機能 ❖ 学習コストの低いORM ❖ 実行しやすいテスト ❖ 他のフレームワークに比べると規約がゆるい
  7. 7. <第1回>初めてのLaravel PHPフレームワーク講座 バージョン推移とLTS Version 特徴 Larval 1 軽量さが評価 Larval 3 WEB開発に必要なコンポーネントを集めだした Larval 4 コンテナーの充実で大規模開発 がしやすくなった Larval 5〜 LTSサポート! ※LTSは長期サポート対応の意味です。
  8. 8. <第1回>初めてのLaravel PHPフレームワーク講座 Laravelの情報源と公式サイト ❖ 公式サイト http://laravel.jp/ ❖ ドキュメント https://readouble.com/laravel/ ❖ Facebook https://www.facebook.com/groups/laravel.j p/ ❖ Google+ https://plus.google.com/communities/11800 6056115330646882 ❖ その他 teratail.com, stack overflowなどなど・・
  9. 9. <第1回>初めてのLaravel PHPフレームワーク講座 Laravelを理解するために
  10. 10. <第1回>初めてのLaravel PHPフレームワーク講座 Laravelを理解するためには ❖ composerでのパッケージ管理をする ❖ namespaceとuse宣言 解説します!
  11. 11. <第1回>初めてのLaravel PHPフレームワーク講座 composerとは ❖ Pearで苦労していませんか? ❖ composer.jsonでバージョン管理 ❖ 公式サイト https://getcomposer.org/ ❖ package公開 https://packagist.org/ composer.json composer install composer update /vendor /package1 /package2 /package3 リポジトリ
  12. 12. <第1回>初めてのLaravel PHPフレームワーク講座 namespaceとuse宣言 ❖ クラスへ名札を付けるイメージ ❖ バックスラッシュ区切りでディレクトリ構造を定義できる ❖ 名前空間で定義されたクラス/関数/定数は先頭に名前空間を付与したものと して認識される ❖ use宣言で別の名前空間のクラスをインポートできる namespaceって?
  13. 13. まとめ ❖ composerはPHPのパッケージ管理の仕組み ❖ namespaceはクラス名に名札を付与する ❖ useは多重継承を可能にする仕組み
  14. 14. <第1回>初めてのLaravel PHPフレームワーク講座 Laravel ハンズオン!
  15. 15. <第1回>初めてのLaravel PHPフレームワーク講座 Laravel サンプルプログラムのダウンロード URL ・・・ https://github.com/SOLTInc/techmeeting_laravel _1st コマンド ・・・ git clone https://github.com/SOLTInc/techmeeting_laravel _1st クローン・ダウンロード お好きな方でどうぞ!
  16. 16. <第1回>初めてのLaravel PHPフレームワーク講座 ハンズオンの進め方 ❖ composerをインストールする ❖ サンプルプログラムより完成イメージを動作確認する ❖ プレーンなLaravelをインストールし組み上げる ❖ 詰まったらサンプルプログラムよりソースコードを持ってくる← まわりのスタッフへ随時聞いてください(^o^)
  17. 17. <第1回>初めてのLaravel PHPフレームワーク講座 composerのインストール 1. PHP5.3以上であればcomposerは使用可 2. 実行ファイルをcurlで取得する 3. 実行ファイル$PATHの通っているディレクトリへ移動 4. バージョンの表示で完了です $ curl -sS https://getcomposer.org/installer | php $ mv composer.phar /usr/local/bin/composer $ composer -V
  18. 18. <第1回>初めてのLaravel PHPフレームワーク講座 サンプルプログラムを実行 1. cdコマンドでサンプルプログラムへ移動 2. composerでパッケージを取得する(GITでパッケージ追跡していない為。) 3. php artisanコマンドでビルトインサーバを起動 4. http://localhost:8000の表示で完了です $ cd “Your Project Root Directory” $ composer install $ php artisan serve
  19. 19. <第1回>初めてのLaravel PHPフレームワーク講座 Laravelをインストール 1. cdコマンドで講習会プログラム作成用のディレクトリへ移動 2. lessonというフォルダ名でLaravelがインストールされます $ cd “Your project Directory” $ composer create-project --prefer-dist laravel/laravel lesson
  20. 20. <第1回>初めてのLaravel PHPフレームワーク講座 ローカル実行環境の作り方 ❖ Laravel専用VagrantBoxを使用する(HomeStead) ❖ ビルトインサーバを使用する ※講習会ではビルトインサーバを使用します 簡単な方法は大きく分けると2つ
  21. 21. <第1回>初めてのLaravel PHPフレームワーク講座 Laravelの初期設定① - timezone' => ‘UTC’ + timezone' => ‘Asia/Tokyo' - locale' => ‘en’ + locale' => ‘ja' /config / app.php
  22. 22. <第1回>初めてのLaravel PHPフレームワーク講座 Laravelの初期設定② サンプルプログラムよりまるごと中身をコピーします。 ※ソースコードの解説は致します。 /.env
  23. 23. <第1回>初めてのLaravel PHPフレームワーク講座 コントローラの作成 1. 実行後コマンド下部に「Controller created successfully」が表示 さえれば成功です 2. 実行後、app / Http / Controllers へファイルが自動生成されます 3. それぞれ今回の講習会で使用します $ php artisan make:controller PostController $ php artisan make:controller ListController $ php artisan make:controller DetailController
  24. 24. <第1回>初めてのLaravel PHPフレームワーク講座 ルーティング設定 - Route::get('/', function () { - return view('welcome'); - }); + Route::get('/', 'ListController@index'); + Route::get('delete/{id}', 'ListController@delete'); + Route::get('input', 'PostController@index'); + Route::post('post', 'PostController@post'); + Route::get('detail/{id}', 'DetailController@index'); app / Http / routes.php
  25. 25. <第1回>初めてのLaravel PHPフレームワーク講座 ビューの作成 Lesson 内、 viewsフォルダよりまるごと中身をコピーします。 resources / views / public / Lesson 内、 assetsフォルダをここへまるごとコピーします。
  26. 26. <第1回>初めてのLaravel PHPフレームワーク講座 コントローラよりViewを表示① + public function index($id){ + return view('detail'); + } app / Http / Controllers / DetailController.php
  27. 27. <第1回>初めてのLaravel PHPフレームワーク講座 コントローラよりViewを表示② + public function index(){ + return view('list'); + } + public function delete($id){ + return redirect('/'); + } app / Http / Controllers / ListController.php
  28. 28. <第1回>初めてのLaravel PHPフレームワーク講座 コントローラよりViewを表示③ + public function index(){ + return view('input'); + } + public function post(Request $inputs){ + return redirect('/'); + } app / Http / Controllers / PostController.php
  29. 29. <第1回>初めてのLaravel PHPフレームワーク講座 実際にURLへアクセス、表示を確認 投稿一覧ページ http://localhost:8000/ 投稿詳細ページ http://localhost:8000/detail/1 新規投稿ページ http://localhost:8000/input
  30. 30. <第1回>初めてのLaravel PHPフレームワーク講座 データベースへのコネクション設定 SQlite用DBファイルを作成 / database / database.sqlite .envへSQliteドライバー使用設定 + DB_CONNECTION=sqlite ※サンプルプログラムよりコピーした.envファイルへ既に設定が入っています。
  31. 31. <第1回>初めてのLaravel PHPフレームワーク講座 マイグレーションファイルの作成 ❖ 自動的にファイルが生成されます ❖ 投稿データ格納用のpostsテーブルするファイルを作成 ❖ 投稿データのtug保存用のpost_tugsテーブルを作成 $ php artisan make:migration create_table_posts $ php artisan make:migration create_table_post_tugs
  32. 32. <第1回>初めてのLaravel PHPフレームワーク講座 スキーマの定義を記述① public function up() { + Schema::create('posts', function(Blueprint $table) + { + $table->increments('id'); + $table->string('title'); + $table->string('category'); + $table->text('description'); + $table->string('picture'); + $table->softDeletes(); + $table->timestamps(); // created_atとupdate_atカラムの追加 + }); } public function down() { + Schema::drop('posts'); } database / migrations / xx_xx_xx_xx_create_table_posts
  33. 33. <第1回>初めてのLaravel PHPフレームワーク講座 スキーマの定義を記述② public function up() { + Schema::create('post_tugs', function(Blueprint $table) + { + $table->increments('id'); + $table->integer('post_id'); + $table->string('tug_name'); + $table->timestamps(); + }); } public function down() { + Schema::drop('post_tugs'); } database / migrations / xx_xx_xx_xx_create_tab
  34. 34. <第1回>初めてのLaravel PHPフレームワーク講座 マイグレーションを実行 ❖ 作成したマイグレーションを作成日順に実行します ❖ 実行記録をデータベース内で管理します ❖ sqlitebrowerでDBを覗いてみましょう、テーブルが作成されていま す $ php artisan migrate
  35. 35. <第1回>初めてのLaravel PHPフレームワーク講座 モデルの作成 ❖ 自動的にファイルが生成されます ❖ postsテーブルを参照するモデルファイルを作成 ❖ post_tugsテーブルを参照するモデルファイルを作成 $ php artisan make:model PostTugModel $ php artisan make:model PostModel
  36. 36. <第1回>初めてのLaravel PHPフレームワーク講座 モデルの設定① + protected $table = 'posts'; + protected $fillable = [ + 'title', + 'category', + 'description', + 'picture' + ]; + protected $dates = [ + 'deleted_at', + 'created_at' + ]; + public function tugs() + { + return $this->hasMany('AppPostTugModel', 'post_id', 'id'); + } app / PostModel
  37. 37. <第1回>初めてのLaravel PHPフレームワーク講座 モデルの設定② + protected $table = ‘post_tugs'; + protected $fillable = [ + 'post_id', + 'tug_name', + ]; + protected $dates = [ + 'created_at' + ]; + app / PostTugModel
  38. 38. <第1回>初めてのLaravel PHPフレームワーク講座 コントローラロジック 一覧画面 use IlluminateHttpRequest; use AppHttpRequests; + use AppPostModel; public function index(){ + $posts = PostModel::all(); - return view('list'); + return view('list', compact('posts')); } public function delete($id){ + $post = PostModel::find($id)->delete(); return redirect('/'); } app / Http /Controllers / ListController.php
  39. 39. <第1回>初めてのLaravel PHPフレームワーク講座 コントローラロジック 新規登録① use IlluminateHttpRequest; use AppHttpRequests; + use AppPostModel; + use AppPostTugModel; public function index(){ + $view_name = '記事投稿'; - return view('input'); + return view('input',compact('view_name')); } public function post(Request $inputs){ + $post = PostModel::create([ + 'title' => $inputs['title'], + 'category' => $inputs['category'], + 'description' => $inputs['description'], + 'picture' => $inputs['picture'], + ]); + $id = $post->id; app / Http /Controllers / PostController.php ・・・続く
  40. 40. <第1回>初めてのLaravel PHPフレームワーク講座 コントローラロジック 新規登録② + foreach ($inputs['tugs'] as $key => $value) { + PostTugModel::create([ + 'post_id' => $id, + 'tug_name' => $value, + ]); + } + return redirect('/'); } app / Http /Controllers / PostController.php
  41. 41. <第1回>初めてのLaravel PHPフレームワーク講座 コントローラロジック 詳細画面 use IlluminateHttpRequest; use AppHttpRequests; + use AppPostModel; + use AppPostTugModel; public function index($id){ + $post = PostModel::findOrFail($id); + $tugs = PostModel::find($id)->tugs()->get(); + $view_name = $post->title; - return view('detail'); + return view('detail', compact('post', 'tugs', 'pagename', 'view_name')); } app / Http /Controllers / DetailController.php
  42. 42. <第1回>初めてのLaravel PHPフレームワーク講座 Viewの完成 resources / viewsを、一式まるごと動作確認を行ったサンプルプログ ラムより移行します。 ※ファイルを上書き保存されると変更が反映されないケースがございます、ファイル を開きソースコードをコピーし保存終了願います。 サンプルプログラムよりコピー
  43. 43. <第1回>初めてのLaravel PHPフレームワーク講座 講習会が終わります
  44. 44. 講師よりメッセージ ❖ お忘れ物にご注意ください(^_^;) ❖ 講習会だけでは意味がありません、実践しましょう! ❖ Facebookの申請を是非! ❖ 引き続き第2回もよろしくお願いします!
  45. 45. <第1回>初めてのLaravel PHPフレームワーク講座 FIN.

×