Laravel artisanコマンド一覧

Laravelで実装するにあたってよく使うartisanコマンドをまとめます。

マイグレーション

公式ドキュメント

  • [プロジェクト名]\database\migrations配下に生成されます
  • Laravelでは、テーブル名は複数形(スネーク形式)、エンティティモデルは単数形(アッパーキャメル)が命名規則だそうです。(例)テーブル名:hoge_photos モデル名:HogePhoto
  • 生成済みのマイグレーションファイルにて、データベースが更新されます
  • 生成済みのテーブルが再作成されます

シーディング

公式ドキュメント

  • 作成したテーブルにあらかじめデータを設定したい場合、Seederを使ってデータを挿入します
  • app/database/seeds/DatabaseSeeder.php に設定されたシーダーが実行されます

認証のマイグレーション

  • Usersテーブルが生成されます

Model

  • app配下にモデルクラスが生成されます。
  • 作成先ディレクトリを指定してモデルを作成することもできます
  • この場合、Modelsフォルダの下にHogeクラスが生成されます

Controller

  • app\Http\Controllers配下に生成されます

Provider

公式ドキュメント

  • app\Providers配下に生成されます

日記(2019/01/27)CoreServerでLaravel(コントローラ)

今日はコントローラを作成します。

処理の流れは、

  1. ルーティング(routes/web.php)
  2. コントローラ(app/Http/Controllers/***Controller.php)

となるようです。

SpringBootや、ASP.netのMVC5、Djangoなどと同じような流れと思ってよさそうです。

Controllerクラスのテンプレートファイルを、artisanコマンドで作成します。今回は承太郎クラスを作成します。

 

作成したクラスを編集していきます。今回はターミナルからそのままviで編集していますが、どうもartisanコマンドでクラスファイルを作るとCoreserverの仕様なのか、ファイルのエンコードが「fileencoding=iso-2022-jp」となり、ブラウザで表示した際に日本語が文字化けしてしまいす。

丁寧にVSCodeなどで編集してファイルエンコードなどを確認してから保存したほうがよさそうです。artisanコマンドで生成されるクラスファイルは以下の場所になります。

 

こんな感じに編集した後に、「set fileencoding=utf-8」をvi上で設定して、上書きします。ちなみにエンコードを確認するコマンドは「set fenc?」です。

次にルーティングを編集してあげます。

一番下の行を追加しました。第一引数にパス、第2引数にクラスのメソッド名という感じでしょうか。ちゃんとドキュメント読んでないので慣れてきたら読もうと思います。前回の/helloのルーティングは無名関数でメソッドを設定している感じですね。

編集が終わったら、ルーティングを通した「https://lala.jamjar.jp/sigh」を確認してみます。

うまくいきました。

日記(2019/01/26)CoreServerでLaravel(ルーティング)

前回の続きから

ルーティングをいじってみます。

Laravelのバージョンは5.7です。

うまくいったようです。

 

日記(2019/01/25)CoreServerにLaravelをインストール

CoreServerにLaravelをインストールしました。PHPは業務では全く触ったことがないのでちょっと楽しいです。

下記の記事を参考にさせていただきました。

●LaravelをCORESERVER(XREA)で動かす
https://qiita.com/studio15/items/d0abf6e6feb2cf3b0408

記事ではシェルを切り替えて…と記述されていますが、特に意識せずインストールすることができました。(echo $0(ゼロ)で現在のシェルを確認しましたが、bashでした。)また、後で気づいたのですが、php71cliにはパスが通っているようなので「/usr/local/bin/php71cli」とフルパスでコマンドを実行しなくても問題なさそうです。

「composer」を用いてライブラリをインストールしていくのですが、公式サイトを確認すると「composer」のハッシュキーが上記サイトと異なっていますので、公式サイトのコマンドラインを参考に打ち込んでいくとよいと思います。
https://getcomposer.org/download/

2019年1月26日時点では以下のようなコマンドラインになります。公式サイトから「composer-setup.php」をコピーし、ハッシュ値をチェック後composerをインストールし、unlinkで後片付けという流れのようです。(php上でcopyしたら、unlinkで削除するんですね。なるほど。)

ちなみに、php72cliも使用できるのですが、プロジェクトを作成する際、php72cliを使用するとエラーが発生しました。ですので、プロジェクトを作成する場合は、php71cliを使用します。一連の作業はphp71cliを使用したほうが無難と思います。

プロジェクトを作成時は、

「> @php artisan key:generate –ansi
Application key set successfully.」

のログが最後のようですので、そこまで流れたら成功です。何度か試したのですが、途中でエラーになっている場合があり(プロジェクトファイルは生成される)、InternalServerErrorになる場合がありました。この部分のログは注意して確認したほうが良いです。今回は「lalaproject」というプロジェクト名にします。

また、CoreServerは、ドメイン名ごとに公開パスが「public_html/ [ドメイン名] 」と、分かれる仕様となっています。独自ドメインにしたい+無料SSLを設定したい場合は、CoreServerの管理コンソールから、サイトの設定まで行い、作成したLaravelのアプリケーションと任意のドメインの公開パスをシンボリックで紐づけるコマンドを最後に打ちます。ただ、上記のサイトのコマンドラインではちょっとうまくいかなかったので以下のように少し変更しています。

※[account_name]の部分は、契約されているCoreserverのアカウント名に置き換えてください。

うまくいくと、public_htmlの下で以下のようにリンクが張られます。

インストールできたLaravelのバージョン確認をするコマンドは以下の通りです。artisanというファイルがあるディレクトリで実行しないと、正しく応答が返ってこないので注意です。(artisanって山下達郎のアルバムであったよなぁ。)

デフォルトの画面は動いたこちら。「https://lala.jamjar.jp/

少しずつ勉強していきたいと思います。少し分かってきたらまとめていきます。

この辺読んでおくと良さそう。

●Laravelでウェブアプリケーションをつくるときのベストプラクティスを探る
https://qiita.com/nunulk/items/da825b265b26c4ab512b

日記(2019/01/02)

あけましておめでとうございます。
年末に中耳炎になり、高熱にうなされた挙句、右耳が全く聞こえなくなるという惨事に見舞われました。だいぶ回復してきているものの、まだまだ違和感が残りますが、新年新たな気持ちで過ごしていこうと思います。

さて、今年の抱負は

  • 「身体を鍛える」
  • Apache Solrを勉強する」
  • 「iTunesのホームサーバー機能を調べる」

です。
気持ちだけは新たに過ごしたいということで、毎年信念になると抱負は立てるのですが、困ったもので1か月もすると忘れてしまいます。

iTunesは、自宅でホームサーバーとして使っているPCに、曲をため込んでいるのですが、そのPCにアクセスしていつでも聞くことができるようにならないものかなと思っています。

【C#】ASP.netのTips

コードを書いてて、たまに「あれ?どうやるんだっけ」となるコードの備忘録です。

ListからIN句で使えるSQLを生成する

IN文句に対してプレースホルダが使えるようなORMを使っている場合はいいのですが、たいていの場合、うまく動いたためしがないので、文字列結合してくっつけます。Linqのメソッド構文でサクッと書けます。

ただし、仕様上、IN句内のデータが大量になることが想定される場合はパフォーマンスの観点からお勧めできません。使用するDBによってはIN句内の設定値件数オーバーでエラーとなります。そのような場合は、素直にtempテーブルを作ってINNER JOINするか、Listを分割して複数回クエリを発行し、後でフェッチした値をAddRangeするなどの方法が考えられますが、前者の方がパフォーマンスが良いと思われます。

【C#】Asp.net MVCのハマりポイント

Asp.net でRazorを使っているといつもハマってしまうトラップポイントがありますので忘れないようにまとめておきます。

EditorForヘルパーについて

EditorForヘルパーは、HTML属性が反映されない。例えば以下のように書いても非活性になりません。その場合はためらわずTextBoxForなどの個別のヘルパーを使用します。placeholderや、Readonlyも同様です。

以下のように書きます。

DropDownListがselectedにならない

DropDownListForは、Modelとバインドした場合、第2引数のSelectListItemの値とModelの値が合致した場合、selectedに自動でしてくれる仕様があるのですが、ならない場合があります。
詳しく調べたわけではないのですが、どうも型が合っていないと一致とみなしてくれないようです。その場合の対処法としては、ViewModelの型を変更して合わせるか、.chtml内で再度SelectListItemをnewして、Modelの値と一致したらselectedを設定してあげるという技があります。

【AWS】T3インスタンスについて

最近、新しく追加されたインスタンスタイプ「T3
インスタンス」についてまとめておきます。

スペックはT2インスタンスより良い

t3.micro のインスタンスタイプでも、vCPUが2つ搭載されています。

https://aws.amazon.com/jp/ec2/instance-types/

料金が若干安い

詳しい料金表はこちら

https://aws.amazon.com/jp/ec2/pricing/on-demand/

ベースCPU使用率は20%

T2インスタンスでは、CPUクレジット残高がないときは10%しか使用できませんでしたが、T3インスタンスでは20%まで使えます。

CPUクレジット残高のMAXが600

T2インスタンスでは、CPUクレジット残高は150までしか貯金できませんでしたが、T3インスタンスでは600まで貯金できます。

注意点

初期CPUクレジット残高は0

T3インスタンスの起動時は初期CPUクレジットが0で始まります。ですので、うっかりインスタンスの停止・起動をやってしまうと今までのCPUクレジット残高が0になります。インスタンスの再起動ではCPUクレジット残高はリセットされないので再起動するようにしましょう。

CPUバーストがUnlimitedモードが初期設定 

CPUクレジット残高を超えてバーストできますが、無制限に、かつ課金されながらバーストするので要注意です。Unlimitedをコンソールから無効にできます。

VisualStudioCodeの備忘録

最近大好きなVisualStudioCode(VSCode)の備忘録です。基本設定、お気に入りのパッケージなどをまとめておきます。

設定

ファイル→基本設定→設定で設定します。以下はやっておくと便利。

起動時にリリースノートを開かなくする

ファイルオープン時のエンコードを自動判定する

ホイールスクロールでフォントを拡大縮小する

自動挿入された末尾の空白を削除する

エディターで空白文字を表示する

パッケージ

個人的に必須なパッケージ

ショートカット

キー操作実行結果
Ctrl + k、Ctrl + cコメントアウト

今日はここまで…。