Laravelのプログラマ募集
募集は終了しました。 私のお客さん食文化のビジネス拡大のために、Laravelのプログラマーを募集しています。もちろん欲しいスキルはいくつか(以下)あるのですが、私のように独立して、フリーランス系の人が欲しいです。社員となるのではなく、お互いにプロジェクトや知識を、将来共有できる人が良いです。副業として(半日など)も考慮します。
募集は終了しました。 私のお客さん食文化のビジネス拡大のために、Laravelのプログラマーを募集しています。もちろん欲しいスキルはいくつか(以下)あるのですが、私のように独立して、フリーランス系の人が欲しいです。社員となるのではなく、お互いにプロジェクトや知識を、将来共有できる人が良いです。副業として(半日など)も考慮します。
Collectionを使っての合計の計算は簡単です。例えば、注文の総個数の計算は$collection->sum('quantity')です。金額と個数の掛け算で総合計金額の計算はどうでしょう。直感的に$collection->sum('price*quantity')では、と思いますがそれはうまくいきません。さて、どう計算するのでしょう?
前回においてCollectionのeach()でUserのオブジェクトにageの属性を追加する処理をしましたが、今回はこれを発展させて、UserのCollectionにカスタムメソッドを追加します。
前回は、1つの値を返すCollectionのメソッドを紹介しましたが、今度はCollectionを返すメソッドの紹介です。まさにこれが実践でよく使われるものです。
Laravelをフレームワークとして使う1つの魅力は、Collectionにあります。Eloquentでデータベースから取得した後のレコード処理がとてもエレガントにわかりやく書くことができます。というものの、Laravelのマニュアルに出てくるCollectionの例は配列ベースをcollect()したものばかりで物足りません。ということで、ここでCollectionの紹介を兼ねてDBからの取得にCollectionのメソッドを適用する例を掲載します。
Artisanコマンドはコマンドラインで手動で実行するだけでなく、クロンジョブでの実行でも使用します。時間を設定して自動的に実行されるゆえに、実際に実行されたのか、どれだけ時間かかったのか、いくつのレコードを処理したのかなどをログに記録しておきたいです。そして、わかりやすいようにコマンドごとに違うログファイルを作成したいです。となると、config/logging.phpでそれぞれのコマンドのチャンネルを作成することになるのでしょうか? つまり50個コマンドあれば50個のチャンネルの作成です。それは面倒だな、ということで良いアイデアを思いつきました。
デフォルトのインストールでは、laravel.logは日次ではローテーションされません。つまり一生同じファイルにエラーなどが記録され続けます。それが嫌ならどうしましょう?
ログファイルを作成するのは、デバッグのためや後のチェックに使われるために実行の記録を残すなど、いろいろな目的で使われます。Laravelでは、laravel.logというファイルがデフォルトでstorage/logsに作成されて、そこでいろいろな情報を記録するのに使われます。しかし、特定のプログラムの実行でlaravel.logではないファイルにログを残したいときはどうしましょう?
Laravelはプログラム実行において読み込むファイルの数は非常に多いです。実行速度を最適化するにはいろいろな方法がありますが、一番簡単に実行できる方法があります。遠い昔にも紹介しましたが、ルートのキャッシュです。しかし、バージョン7への更新によりちょっと問題が発生です。
これも前回と同様に、開発したプログラムに今まであったバグがLaravelの更新により表面化したという話です。