Laravelで大容量CSVファイルをSplFileObjectクラスで確実に処理する
LaravelなどのPHPフレームワークで業務システムを構築していると必ずと言って良いほどついて回るのがCSVを扱う機能です。CSVアップロード・インポート・エクスポート・ダウンロード…と、クラウド基幹システム系には切っても切り離せない機能だと思います。今回はLaravelでのCSVデータ処理について、ファイルサイズに左右されずに安定して処理を回せる機能を実装します。
LaravelなどのPHPフレームワークで業務システムを構築していると必ずと言って良いほどついて回るのがCSVを扱う機能です。CSVアップロード・インポート・エクスポート・ダウンロード…と、クラウド基幹システム系には切っても切り離せない機能だと思います。今回はLaravelでのCSVデータ処理について、ファイルサイズに左右されずに安定して処理を回せる機能を実装します。
PHPフレームワークにはSeeding(シーディング)と呼ばれる機能があり、マイグレーション実行時に初期データを一緒に投入することが可能です。ということで今回は、CakePHP3のSeeding(シーディング)で初期データを投入します。また、fakerというライブラリを使ってダミーデータを自動生成し、投入するまでも後半で行います。
マイグレーションでデータベース(テーブル)の構築(作成)を行いました。今回は、作成済みのテーブルへのカラム追加、およびカラムの変更・削除を行います。
PHPフレームワークにはマイグレーションという機能があり、データベースの構築をコードで管理していく事が出来ます。こうすることで、チームでコーディングしていた場合にテーブルやカラムの追加・変更が必要になったり、新たなメンバーがアサインされてもコマンド一つでデータベースを構築できて便利です。このマイグレーションという機能はCakePHPにももちろん入っています。今回はこの機能を使ってデータベースを構築していきます。
CakePHP3をインストール後、最初に行っておくと良い初期設定をここに記します。このページはこれからも更新していきます。
CakePHPは日本でよく使われているPHPフレームワークの一つです。今回は入門編という事で、CakePHP3のインストールを行います。
Laravelのエラーページをカスタマイズし、オリジナルのものを出力します。多言語化対応も行います。また、独自エラーページを作成した後に表示確認を行う方法として、エラーを発生させるルーティングを組むと簡単に確認できるので、その方法も解説します。
【Laravel Auth認証機能拡張 第4弾】LaravelではAuth認証機能でログイン画面を構築した場合、既にログインのロック機能が実装されています。デフォルトでは、ログインに5回失敗すると同一IPアドレスに対して60秒のログインロックがかかります。今回は、この認証制限についての設定をカスタマイズしていき、その仕組みについても紹介していきます。
【Laravel Auth認証機能拡張 第2弾】ユーザを削除する際に、物理削除を行う場合は単純にdeleteメソッドを叩けば良いですが、論理削除を行いたい場合は削除フラグ的なものを立てる必要があります。デフォルトでは、保持するユーザ情報も最小限の状態なので、論理削除を管理するものは何もありません。ただし、Laravelでは論理削除のための機能も備わっており、今回はそれを実装していきます。
【Laravel Auth認証機能拡張 第1弾】Laravelの認証機能にはパスワードリセット機能がありますが、デフォルトではリセットの為に送信されるメールは英語になっていますので、このままでは少々使いづらい面もあります。そこで、メールを自由にカスタマイズしてメールの文面・デザインを変更し、要件に対して柔軟に対応できるようにします。
LaravelなどのPHPフレームワークを使わずにログイン機能を実装する場合、インジェクション攻撃やCSRF(クロスサイトリクエストフォージェリ)などの対策を自分で実装しなければなりませんが、Laravelの認証機能ではその辺の機能が既に実装されているので、その分漏れがなく一定程度安全に、かつスピーディーにログイン機能が構築できます。という事で今回は、Laravelの認証機能にてログイン機能を持たせ、管理画面を構築してみたいと思います。
Laravelでの開発であれば最少の工数・処理でAMP実装を行うロジックを構築できます。その基本的な流れを今回はAMPの基本と共に紹介します。AMPページとして実装されたページはGoogleがキャッシュし、瞬時にページを表示させる事が出来ます。表示が1秒遅れるごとにコンバージョン率は7%落ち、顧客満足度は16%落ちる。3秒以上かかると40%以上のユーザーは離脱するといわれる中、AMPでの高速表示によって「離脱率が下がる」「コンバージョンが上がる」といった事が期待できます。AMP導入のメリット
Laravelを使った基本的なMVC操作を行いましたが、今回はモデルを導入して、本格的にデータベースからのデータ取得、そして表示を行います。Laravelは他のPHPフレームワークと比べてとてもシンプル、かつ制約も少なくWEBアプリケーションを構築していけます。
Laravelインストール後の初期設定と、基本的なMVCを使ってHelloWorldを表示させる、そして、軽くデータの受け渡しまでを行います。
アンケートやお問い合わせ、CMSのログインなど、フォームを使用したページで悩まされるのが、ボット(ロボット)の存在です。今回は、Laravelを使って、フォームを作成し、そこにreCAPTCHAを導入して、ボット対策を行います。
LaravelでAMP(Accelerated Mobile Pages)ページを実装する際に大切な事は、開発するWEBアプリケーションによってベストな手法で実装する事です。「どこをAMP対応させるのか」「現在のアプリケーションのベースロジック」そして「AMPの仕様」をよく確認し、設計を行ってから開発に入る事が大切です。
Laravel のフォームリクエストクラスを使ってバリデーションロジックをコントローラから分離させましょう。見通しが各段に良くなります。
Laravelではフォーム処理の剛健性高めるべく、validationメソッドが用意されています。これを使う事で私たちは簡単に複雑なバリデーションを実装する事が出来ます。日本語でのエラーメッセージ表示も含め、今回は入門編として基本型のバリデーションを実装していきます。