phpunitの実行状況表示
phpunitは私にはもう欠かせないツールなのですが、その実行をよりビジュアルに表示してくれるツールを見つけました。その紹介です。
phpunitは私にはもう欠かせないツールなのですが、その実行をよりビジュアルに表示してくれるツールを見つけました。その紹介です。
Laravelのコントローラにおいて、abort(404)のヘルパーをコールすることで簡単に予期しないアクセスを、Not Foundのエラーページの表示ができます。しかし、Not Foundページの代わりにリダイレクトして違うページに飛ばしたいときには、redirect()のヘルパーをabort()同様に好きな場所で使うことはできません。
最新のLaravelはバージョン7.xですが、バージョン6.xは以下の表に見られるように2年間のサポート(LTS)があります。管理を頻繁に行う必要がないなら、新規のプロジェクトでは6.xバージョンをインストールするのが良いです。ということで、久しぶりに初心に戻ってLaravelのプロジェクトの作成手順を書きます。
長いこと開発者をやっていると自分が開発した古いphpのプログラムの管理が悩みの種になります。なぜならLaravelのフレームワークが使われていないからです。年々新しい機能を追加したりしていると複雑になってくるし、ある昔のフレームワークで書かれたプロジェクトではphpunitも使えなく検証も容易にできません。このままで進んでいくにはますます管理において頭が痛くなります。しかし、すべて書き直してLaravelへの移行となると、日数とコストは大変なものです。さらに、外見がほとんど変わらずに中身だけの変更なので、お客さんを説得するのも難しい。
このブログサイトのように、自分でサーバー(AWS EC2)を持ち、サイトをセットアップしていると、いろいろと出費があります。AWSのサービスに対してのお金とともに、昨今のウェブセキュリティ強化ゆえに、セキュア認証の取得にも年に1回出費があります。
商品のページのURLが例えばhttps://localhost/product/5734とかだと、5734はproductsテーブルのidの値だな、とわかってしまいます。しかしこれが、商品のIDではなく会員のIDや注文のIDなら大きな問題です。もちろん通常は認証で保護してログインした人のみしか閲覧できないようにしますが、プログラムのバグで認証が外れていたら。。。そんなときにIDがシーケンスの数字でなかったら、例えば、043a9c43-26cd-432f-bb25-a0eb045815b7とかのわけのわからない数字だったら安心です。今回はidの難読化のためのuuidを紹介です。
Laravelのプロジェクトでは、環境変数の設定は.envのファイルで行います。インストールするプロジェクトの環境(開発、ステージング、プロダクション)ごとで内容を変更できるし、.gitignoreに入れておけばバージョン管理のレポジトリでプライベートなデータ(パスワードやapiのトークンなど)を共有する必要もなく安全です。この機能、私の昔のphpのプロジェクト、つまりLaravel生誕以前の時代でのプロジェクトで現在もお客さんに使用されているプロジェクトでも取り入れたいです。
Windows 10では、ファイル名として使用してはいけない文字がいくつかあります。入力しようとすると、「ファイル名に次の文字は使えません」とエラーになります。さて、ダウンロードのファイルにこれらの禁止文字が使用されていたらどうしましょう?
DB変更の履歴の作成をトレイトで簡単にEloquentのモデルに装着できるとしたころまでが前回ですが、巷では似たような仕組みでより良いパッケージがすでにあります。今回はそれを紹介します。
前回のDB変更履歴保存のメカニズムは、Userのモデルのためだけですが、どのモデルでも同様なことが簡単にできるようにトレイトを作成してみます。