Laravel On IBM Cloud(+ Laravelの良いところ紹介)
始めに
この投稿内容8/1に開催されたbmxug.tokyo 始めに
この投稿内容は7/4に開催されたbmxug.tokyo これから始めるPaaS開発相談会(connpass)でお話しした内容です。
先日、Qiitaでも書いたLaravel
をIBM Cloud
へデプロイする方法を紹介するとともに、Laravel
ってこんなところ便利だよ!という情報を共有させてもらいました。
IBM Cloudへのデプロイ方法について
基本的には、以前の記事(IBM CloudにLaravelをデプロイする方法)に書いてある通りですが、勉強会では下記の様な話題が出ました。
- 現在のLTSバージョンは、5.5となるので、本番で使うLaravelのバージョンは特段の理由が無い限り、5.5としましょう。
具体的には、
laravel new testProject
としてしまうと、現状は5.6がインストールされてしまうので
composer create-project "laravel/laravel=5.5.*" testProject
とするのが良いと思います。
- 以前の記事に書いてある、manifest.ymlのbuildpackの指定は無くても良いようです。
デフォルトのbuildpackとgitのbuildpackのバージョンは若干異なるようですので、特段の理由がない場合はbuildpackを指定しなくても良いでしょう。(By @tokida)
ちなみに、2018/8/2時点では、gitの最新リリースバージョンが(4.3.58)※参照で、IBM Cloudのbuildpackは4.3.59がデフォルトで採用されるみたいです。言語によってはこのバージョンの差がかなり大きかったり、Node等ではIBM Cloud側にDebug用の機能が含まれていたりするそうなので、buildpackに何を採用するかは意識した方が良さそうです。
Buildpack確認コマンド
ibmcloud cf buildpacks
また、当日はあまり紹介できませんでしたがGithubやPipelineと連動させた自動デプロイ等も簡単に実現できるので、興味がある方はこちらの記事も見てみると面白いと思います。
IBM Cloudのツールチェーンを使って快適なDevOpsを実現する。(Laravel)
Laravelってこれが便利だよ!集
IBM Cloud
だけではなく、こちらの話でもかなり盛り上がったのでいくつか紹介します。
仕組(書き方)
ルーティングが便利
リクエスト単位で呼び出す処理を定義できるRoute
が非常に便利です。
この様に、getやpostで呼び出すControllerやメソッドを定義したり、
Route::get('/main', 'MainController@index')->name('main');//初期表示
Route::post('/main', 'MainController@search')->name('search');//検索
Route::post('/main/csvDownload', 'MainController@csvDownload')->name('csvDownload');//CSVダウンロード
簡単な物であれば、Controllerとセットで
Route::resource('test', 'TestController',['only'=>['index','store']]);
なんて使い方をすることが出来ます。
ORMが便利
CRUDの基本的な物や他のテーブルとのリレーションを簡単に定義する事が出来ます。また、
コマンドラインより
php artisan make:model Test -a
と打つと、それに紐づくMigration
(テーブル定義)、Model
、Contorller
が自動生成されるので便利です。
(参考資料)
・モデル
サービスコンテナが便利
インターフェースと実装の結合が簡単に出来るところです。例えばController
から何らかの機能を呼び出したいときでも、インターフェースに依存させるだけで処理を組み上げることが出来ます。
こうする事で、クラス同士を疎結合にしてテストをしやすくしたり、変更に強いプログラムを作る事が出来ます。
具体例を挙げると長くなるので、詳しくは書けませんが「Laravel DI」とかでググるとたくさんの資料が見つかります。
(参考資料)
・サービスコンテナ
Viewが便利
Laravelにはblade
というシンプルかつ、強力なテンプレートが付いています。
UIの部品をコンポーネント化したり、簡単な分岐やループをサクサク書ける点が素敵です。
Vue
等と併用する事も出来ます。
PHP
で書かれたレガシーなコードそのまま貼り付けて動かす事も出来ます。が、折角Laravel
を使うのであれば
きちんとbladeで処理を書くことをお勧めしますw。
(参考資料)
・Bladeテンプレート
ライブラリ
既に多くのライブラリが存在しています。いくつか、話題になったものを残しておきます。
ちなみに、packalystには多くのライブラリがあるので、困った時にはまずこちらを探すようにしましょう。
laravel-debugbar
Laravelのデバッグ用のライブラリです。メモリ使用量やレスポンスまでの時間、発行したクエリなどをブラウザで見えるようにしてくれるので開発時には必須のライブラリと言えるでしょう。
(参考資料)
・github
Laravel-Excel
LaravelでExcelファイルを読み込んだり、書き出したりすることのできるライブラリです。
Excelに関する需要は多いので、有用なのではないでしょうか。
(参考資料)
・github
CHARTS
Blade上に簡単にグラフなどを表現する事の出来るライブラリです。UIでグラフを出すと良く喜ばれますw
(参考資料)
・github
Admin LTE
@ssakaigawaさんの紹介で取り上げて貰いました。簡単に管理画面を構築できるライブラリです。
・github
テスト
Dusk
会場が若干、ざわめいた(様な気がする)自動ブラウザテスト用の機能が用意されています。
デフォルトではGoogle Chromeのドライバーが必要なのですが、上手く使えばIBM CloudのCI/CDとの連携も出来るかもしれません。
(参考資料)
・ブラウザテスト
phpunitも同梱されているので、テストも容易に始められるのがLaravelの素敵なところだと思います。
最後に
次回の勉強会は9月5日の予定です!
Laravelに限らず、IBM Cloudを使った仕組を考えたり、有識者の意見を聞ける場になりますので、ご都合合う方はbmxugのConnpassをチェックしてみてくださいね。
Author And Source
この問題について(Laravel On IBM Cloud(+ Laravelの良いところ紹介)), 我々は、より多くの情報をここで見つけました https://qiita.com/motuo/items/6725cdf9a2750334704f著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .