CakePHPのシェルとタスクでcron定時処理を実装する。ついでにデータベースバックアップも。
- CakePHP
WEBアプリケーション開発の中でデータベースのバックアップなどの裏で走らせる定時処理を構築する要件というのは少なくありません。昔であればシェルスクリプトを書いたり、フレームワークを使わない素のプログラミング言語を使って書いたりしていましたが、PHPフレームワークを使うとそれらも簡単に構築・登録・稼働を行う事が出来ます。
WEBアプリケーション開発の中でデータベースのバックアップなどの裏で走らせる定時処理を構築する要件というのは少なくありません。昔であればシェルスクリプトを書いたり、フレームワークを使わない素のプログラミング言語を使って書いたりしていましたが、PHPフレームワークを使うとそれらも簡単に構築・登録・稼働を行う事が出来ます。
CakePHPのヘルパーと言えば、よくお世話になるFlashやForm、それにPaginatorなど色々(Textヘルパーは地味に便利)ありますが、自身でWebアプリケーションを構築時に、テンプレートへの描画を行っていて、降ってきたパラメータに対してすごく軽微な変換処理とか行いたくて、でもヘルパーとして提供されていなくて、だからコントローラに…書くと使いまわせないし、かと言ってわざわざコンポーネント化するのも…みたいな場合、ありませんか?
CakePHP では Widgetクラスを作成する事で独自のフォームテンプレートを定義する事が出来ます。
CakePHP3のコンポーネントクラスを導入して共通処理をまとめるまでの基礎部分を行います。コンポーネントを併用する事で重複メソッドが無くなり見通しも良くメンテナンスしやすいソースコードになります。開発チームみんなが幸せになれる。それがコンポーネントです。
CakePHPのようなPHPフレームワークを使ってWebアプリケーションを構築する際にフロントエンド側でsassやlessなどを使ってCSSを作成していく事は今や当たり前になってきました。webpackなどを手動で導入しても良いのですが、今回は気軽に素早く環境を導入できる「cakephp3-elixir」というパッケージを使ってSassやJavaScriptのコンパイル・ビルド環境を構築したいと思います。
フォーム機能を構築する際に、CakePHPでは一般的にモデルが絡むバリデーションはTableクラスで定義したバリデーションルールに則って行いますが、複合的なフォームを構築する際は、そこに該当しないバリデーションが必要になる時があります。今回はModel側(Tableクラス)でのバリデーションとFormクラスのバリデーションを混合させたフォーム機能(入力+検証+登録)を構築します。