こんにちは!
この記事はYYPHP Advent Calendar 2018の20日目です!
今回は最近というかずっと前からよく聞くLaravelをそろそろ勉強せねばと思い、勉強した際に参考にした本やサイトなどを紹介していきます!
またやっている中で出てきた問題なども合わせてシェアしようと思います!
Laravelとは
引用元:laravel公式サイト
まず本題に入る前にLaravelとはについて紹介しようと思います。
Laravelとは、Taylor Otwell(テイラー・オットウェル)さんが開発したフレームワークです。
Taylor Otwellさんツイッター
PHPのフレームワークといえば必ず名前が上がるほどの人気のフレームワーク。
そのこともあってか、スタートアップや新しくシステムを作り直す時にLaravelで作るということがほとんどだそうです。
勉強する際に参考にしたもの
さて、ここでは僕が実際にLaravelを勉強する際に参考にした本やサイトなどについて紹介していきます!
参考にした本
引用元:絶対に挫折させないアプリ開発 はじめてのLaravel販売ページより
参考にした本は「絶対に挫折させないアプリ開発 はじめてのLaravel」という本です。
実際の販売ページはこちら
この本は技術書典というイベントで販売されていた本でした。
技術書典とは、技術に特化したコミケです。
技術書典の公式サイトはこちら
ただ、僕は実際に足を運んだわけではないので、この本の電子書籍版を購入しました!
(電子書籍にして頂いてありがとうございます!)
参考にしたサイト
Photo by Chang Duong on Unsplash
次はLaravelを勉強する際に参考にしたサイトを紹介していきます。
環境構築について参考にしたサイト
引用元:【Laravel超入門】開発環境の構築(VirtualBox + Vagrant + Homestead + Composer)
環境構築についてはVagrantを使おうと思い、それに関しての記事をネットで検索して見つけてきました。
Vagrant(ベイグラント)とは、本番とローカルの開発環境の差異をほぼなくして、誰でも同じ環境で開発がスタートすることができるツールです。
Vagrantの環境構築については次のようなサイトを参考にしました!
【Laravel超入門】開発環境の構築(VirtualBox + Vagrant + Homestead + Composer)
また、Laravelの公式サイトには特殊な知識がなくてもLaravelの開発環境を作ることができるHomestead(ホームステッド)と呼ばれるVagrant設定ファイルがあります。
これを使うことでサーバーの知識がなくてもVagrantさえちゃんと準備ができれば、コマンド入力でLaravelの開発がスタートすることができます。
上記の記事にもHomesteadについての記載がありましたが、下記の記事も参考にしました。
HomesteadによるLaravel環境構築
Laravelについて参考にしたサイト
Laravelについて参考にしたサイトは次の2つです。
・LuffGardenさんのサイト
・LARACASTS
LuffGardenさんのサイトについて
引用元:Laravel + Vue.js で出席管理Webアプリを作成する – Part.1
LuffGarden(ルフガーデン)さんのサイトは、LaravelとVue.jsを使って主席管理アプリを作るというものでした。
ちょうどVue.jsも覚えてみたいなと思っていたので、とても良い記事だと思って実際の記事の内容を読んで作ってみました。
LuffGardenとは、熊本のWebサイトホームページ制作スタジオをされているフリーランススタジオです。
素敵な記事を作成して頂き、ありがとうございます!
LuffGardenさんの公式サイトはこちら
実際に参考にした記事は下記の通りです。
・Laravel + Vue.js で出席管理Webアプリを作成する – Part.1
記事はこちら
・Laravel + Vue.js で出席管理Webアプリを作成する – Part.2
記事はこちら
・Laravel + Vue.js で出席管理Webアプリを作成する – Part.3
記事はこちら
LARACASTSについて
LARACASTSについては、「絶対に挫折させないアプリ開発 はじめてのLaravel」の中で紹介されていました。
サイトの音声などはすべて英語なのですが、その分内容のクオリティがかなり高く、とても良いサイトです。
英語とかができなくても、実際のコードを見るだけでも雰囲気を掴むことができると思います。
ですので、興味がある人はぜひ見てみて下さい!
ちなみに、僕は確認の意味も込めてLaravelの基本的な概要の動画を見ました。
・Laravel 5.7 From Scratch(Laravelの基本的な概要)
動画はこちら
それぞれやってみた感想
ここまでは色々と僕が実際に参考にした本やサイトを紹介しました!
次からは、下記の順番でやってみてどうだったか、つまづいたポイントなどを紹介していきます!
・環境構築について
・絶対に挫折させないアプリ開発 はじめてのLaravelについて
・Laravel + Vue.js で出席管理Webアプリを作成するについて
・LARACASTSについて
環境構築について
Photo by Fotis Fotopoulos on Unsplash
環境構築については、既にVagrantを入れて勉強していたので紹介した記事を見て必要なものをインストールすれば動かすことができました。
実際の記事。
・HomesteadによるLaravel環境構築
記事はこちら
・【Laravel超入門】開発環境の構築(VirtualBox + Vagrant + Homestead + Composer)
記事はこちら
ちなみに、いれるVagrantについてはドットインストールのVagrant入門がすごくわかりやすかったので、そちらもおすすめです!
つまづいたポイントについて
ただ、HomesteadでURLを任意のものにして切り分けるのが少し時間が掛かりました。
HomeseteadでURLを任意のものに切り分けるとは、例えば普通にVagrantにHomesteadを入れるとURLが下記のように普通のIPアドレスになります。
でもできれば、下記URLみたいに各アプリごとにドメインとかで切り分けれたら良いなあと思ったわけです。
http://laravel_first_app.test
http://laravel_second_app.test
各アプリごとにURLを切り分ける方法
Homesteadを上記URLの通りに進めていくと、Homesteadというフォルダを作ることになると思います。
Homesteadのフォルダの中には、「Homestead.yml」というファイルがあり、その中にディレクトリに関しての設定項目が記載されています。
この設定ファイルの中でポイントになるのは次の2つ。
1.folders
2.sites
folodersについて
foloders(フォルダーズ)については、Vagrantの仮想環境上と自分のローカル環境上においてあるプログラムのフォルダをあわせる項目です。
ここを設定することで、ローカル上で保存した内容がVagrantで動かしているプログラムに反映されます。
実際の記述だと次のような感じです。
この記述だと、自分のローカルのパス(/Users/username/Desktop/proggrame/laravel_to_do)とVagrantのパス(/home/vagrant/code)を同期させているというような記述になります。
sitesについて
sites(サイツ)については、ここに各プログラムにアクセスした時のドメインと各プログラムを紐付けることができます。
具板的には下記のような記述になります。
上記の中には「map」と「to」という項目があります。
「map」にはアクセスした際のドメイン名。
「to」には実際に同期するフォルダー名を記述します。
また、「map」部分にはSSL設定をしていない場合は、「ドメイン名.test」と記述するようにします。
「ドメイン名.test」と設定することでURLが「http」で表示されます。
「https」で表示したい場合は、「ドメイン名.app」と記述しましょう。
また、自分のローカルの「hosts」ファイルにも次のように設定します。
左側のモザイク部分には下記のIPアドレスを記載して、右側に「map」で記述したドメイン名を設定します。
ちなみに、左側はすべて同じIPアドレスです。
これで、「map」に記述したURLにアクセスすることで、設定したプログラムを表示することができます。
また、homestead.ymlファイルを編集してそれを反映したい場合は下記のコードをHomesteadフォルダのところで実行して設定を反映させるのを忘れないようにしましょう。
1 |
vagrant reload --provision |
これをしていないと、「あれ、設定してドメインにアクセスしたのに表示されない。。。」という罠に陥ります笑
絶対に挫折させないアプリ開発 はじめてのLaravelについて
引用元:絶対に挫折させないアプリ開発 はじめてのLaravel販売ページより
参考にした本は「絶対に挫折させないアプリ開発 はじめてのLaravel」という本です。
販売ページはこちら
この本では同じ内容のアプリを3回に渡って作成していくという流れでした。
1度目は生で書くPHPで、タスクアプリを作ります。
また、2度目はLaravelでタスクアプリを作ります。
3度目もLaravelでタスクアプリを作るのですが、もう少し実践的な書き方をして同じようにタスクアプリを作っていきます。
タイトルにある通り、挫折せずにLaravelを使ってアプリを作ることができました。
また、本の中でLaravelやPHPの情報はどこを見たほうが良いかといったことや、勉強会の紹介などがありとても良かったです!
最後に紹介するLARACASTSもこの本から知りました。
本を出して頂いた株式会社プラムザのやまざきさんありがとうございます!
ちなみにつまづいたポイントは下記の部分です。
・Vagrantで使っているHomesteadのデータベースにSequelproでアクセス。
Vagrantで使っているデータベースにアクセス
これはつまづいたポイントというよりかは、僕が本と違うVagrant上の環境で作っているからなのですが笑
本をやっている途中で、Laravelからデータベースにデータを保存する場面が出てきます。
ただデータベースの設定をしていないと、Laravelの設定部分にデータベースの名前を記入しても、データベースのテーブルを作成するところでエラーが出ます。
理由としては単純で、Vagrant上の環境のデータベースを作成していないからです。。。
そこで、データベースを作成しようと思いSequelPro(シークエルプロ)からアクセスしようと思ったのですが、アクセスするのにてこづりました・・・。
ちなみに、SequelProとは任意のデータベースにアプリからアクセスして管理できるMac専用アプリです。
興味がある方は下記のサイトを見てみて下さい!
SequelPro公式サイト
最終的に下記のように設定することで、VagrantのMySQLにアクセスできました。
ちなみに、上記の情報のほとんどはローカル上のVagrantが置いてあるところで、下記のコマンドを実行します。
1 |
vagrant ssh-config |
そうすると下記画像のように色々情報が出てきます。
この中の情報を参考に設定することで、アクセスすることができました。
これでもアクセスできないという方は、Googleで「vagrant sequel pro」で検索するか、下記の記事を参考にしたりしたので、よければ見てみて下さい!!
Sequel ProでVagrantのMySQLに接続
Sequel Pro から Vagrant 内の MySQL に接続する
Laravel + Vue.js で出席管理Webアプリを作成するについて
引用元:Laravel + Vue.js で出席管理Webアプリを作成する – Part.1
次は実際に下記の記事を見ながら、出席管理Webアプリを使ってみました。
ちなみに、使った時のLaravelのバージョンは5.7で、HomesteadのPHPのバージョンは7.2でした。
・Laravel + Vue.js で出席管理Webアプリを作成する – Part.1
記事はこちら
・Laravel + Vue.js で出席管理Webアプリを作成する – Part.2
記事はこちら
・Laravel + Vue.js で出席管理Webアプリを作成する – Part.3
記事はこちら
つまづいたポイント
つまづいたポイントは次のとおりです。
・PHPとLaravelのバージョン違い
・module入れ忘れ
PHPとLaravelのバージョン違い
最初のところでHomestead.ymlのファイルの記述を下記のように記述する部分があります。
ただ、僕が使ったときのLaravelのバージョンとこちらの記事で紹介されているバージョンが違ったため、下記画像のようにエラーが出ました。
1 2 3 4 |
sites: - map: homestead.test to: /home/vagrant/code/LaravelSample/public php: "7.0" |
これについては、php:”7.0″の部分の記載を削除して、下記のコードを実行して再度アクセスすると正常に表示されました。
1 |
vagrant reload --provision |
記事で紹介されているバージョン違いなどは、普通にある問題ですので、実際僕が紹介している方法ではまたエラーが出るといったことがあると思います。
その際は、特に他の箇所のコードを書いているなどしていない限り、バージョン違いの可能性が高いです。
なので、エラーが出た場合はそちらを調べてみてください!
module入れ忘れ
記事の中の「npm install」でちゃんとインストールしたつもりでしたが、コンパイル時にエラーが出てしまいました。
1 2 3 4 |
ERROR in ./resources/js/app.js Module not found: Error: Can't resolve './vuejs-paginate' in '/home/vagrant/code/laravel_attendance_2/resources/js' @ ./resources/js/app.js 22:26-53 @ multi ./resources/js/app.js ./resources/sass/app.scss |
エラーは上記のようなエラーだったので、下記のコードを使ってエラーが出ているモジュールを入れることで無事に表示することができました!
1 |
npm install --save vuejs-paginate |
実際にVue.jsをLaravelに入れる流れや、ダミー用のデータを作るところなどの流れなどを知ることができてとても良かったです!
記事を見ながらやっていたのですが、この記事作るの大変そうだなあっと思いながら取り組んでいました!
記事を作成して頂いたLuffGardenさんありがとうございます!
LARACASTSについて
最後にLARACASTSについて紹介します。
LARACASTSとは、Jeffey Wayさんが教えているLaravelに特化した学習サイトです。
JeffeyさんもLaravelやPHPのコミュニティ活動をされている方なので、個人的に動画の内容の信頼性がとても高いと思っています。
LARACASTSでは実際に下記の動画を見ました。
この動画では、基本的なLaravelの使い方について学ぶことができます。
例えば、ControllerからViewの使い方など。
一応復習の意味も兼ねて動画を見返すようにしていました!
音声は英語ですが、実際のコードを手を動かしているところから見ることができるのでとても勉強になります!
また、他にもVue.jsの項目があったり、Gitの使い方などがあったりとPHPのプログラマーを目指す上で必要なことがこのサイトで網羅できそうです。
興味がある方はぜひ覗いてみてください!
まとめ
以上で実際に僕が本やサイトなどをやってみた感想や、つまづいたところを紹介してきました!
この記事がこれから僕と同じようにLaravelを勉強しようとしている方たちの役に立つことができれば嬉しいです!
最後に改めて、今回の記事の中で参考にさせて頂いた本屋記事を作成した方々、本当にありがとうございます!
そして、本当は今回学んだLaravelを使ってPayPal決済後にメールを配信して管理するツールを作るつもりでした。。。
ただ、そちらの方に割く余力が残っていなかったので、作ったらまたそれについてまとめた記事をかければと思います。