PHPシェアする有料会員制のwebサイトを開発した時に、有料会員のフラグを月次で切り替えるバッチ処理を作成しました。ある特定のフラグが立っているユーザに対して、一括でアップデート処理をするというものです。まとめシェルの作成とりあえず試しに、シンプルなシェルを作成します。src/Shellディレクトリーに「HelloShell.php」を作成します。内容は以下のようにします。}}ファイル名とクラス名は一致し、Shellサフィックスをつける必要があります。ファイル名:「(任意のシェル名)Shell.php」クラス名:「(上と同じ名前)Shell」シェルを実行すると「main()」が呼ばれますので、この関数の中に処理を書きます。シェルの実行アプリケーションディレクトリに移動します。コマンドが使えるところ)以下のコマンドを入力します。※「Shell」はつけない。※「Hello」でも「hello」でも動きます。先ほど作ったのは、モデルを使用しない処理でした。今回実装したかったことはシェルでデータベースのフラグを切り替える処理です。次はモデルを使用したシェルを作成してみます。コントローラー同様にモデルを使用し、更新処理をかけることができます。}}Usersテーブルのデータに対して以下の更新をかけます。「paying_flg」を「0」、「cancel_flg」を「0」にする。今回更新をかける「Users」テーブルに新規のユーザを登録しておきます。「paying_flg」を「1」で登録します。先ほど作成したシェルを実行してみます。7.0.15---------------------------------------------------------------データベースの方を確認してみましょう。sec)「cancel_flg」「paying_flg」共に更新されていますね。まとめモデルを使用したシェルも通常通り動く。ファイル名とクラス名は以下のようにする。(シェル名)」シェル実行コマンドをcronとかで設定しておけばバッチ処理として動かすことができます。cronの設定方法に関しては、また機会がある時に記事にいたします。okiku飲食業界からIT業界に転身してきて現在2年目です。PHPの経験がメインとなります。これまで自分がPHPを扱ってきた上で、モヤモヤしてきたことをメインに記事にしていきますのでよろしくお願いいたします。スポンサーリンクシェアするフォローするokiku関連記事CakePHP3で検索結果をページネーションCakePHP3で簡単にできるページネーションを紹介します。今回は1ページあたりの件数とソートをいじって、検索結果をページ分けします。その上で、前後のページへのリンクやナンバリングをしたリンクを表示させます。記事を読むSmartyのテンプレートファイルの中で、文字列をテンプレートとして読み込む方法SmartyのテンプレートからSmartyの構文が入った文字列をレンダリングするやり方です。Smartyのテンプレートを、ファイルからではなく文字列から読み込ませたかったので公式のドキュメントからやり方を探しました。記事を読むCakePHP3で作成したシェルをcron設定する(バッチ処理)CakePHPで作成したスクリプトの実行コマンドをcronに設定することで、バッチ処理を実現する方法です。以前、CakePHPでシェルを作成する方法を記事にしたので、cronに時間とコマンドの設定方法をメインに説明していきます。記事の一覧を動的に表示させ、記事毎に設置させているボタンを押すと、対象の記事の「記事タイトル」を使った確認ダイアログが表示されるようにしたかった。CakePHPで色々処理を書いていた中、JavaScriptを連動させてみました。記事を読むCakePHP3でエレメントの使い方CakePHP3でエレメントの使い方を紹介します。ビューのテンプレートファイルで、ある一部分の要素を使いまわしたい時に便利です。記事を読むCakePHPのvalidationDefaultで重複チェックをする方法CakePHP3のvalidationDefaultで重複チェックを行う方法を説明いたします。保存時のbuildRulesではなくvalidationDefaultで行うことで、入力後の確認画面に遷移する前にチェックができるようになります。記事を読む【CakePHP】データベースにデータを新規に保存する今回はデータベースにデータを新規に保存する方法について紹介します。データベースにデータを保存するにはエンティティが必要です。記事を読むCakePHP3でルーティングを設定し、URLをカスタマイズするCakePHPでは規約によりURLが決められていますが、それをカスタマイズしたい時があります。実現のためには、ルーティングを設定します。Template」エラーが出てきました。対応するディレクトリに関数名と同じ名前のctpファイルを格納しているはずなのに。調べたところ、それまであまり気にしていなかった命名規則に原因があるらしい、、。記事を読むCakePHP3で最低限のログイン画面(Auth認証)を作ってみたCakePHP3でログイン処理を実装しました。今回は余計な設定はできるだけ省いたシンプルなログインフォームを紹介します。これまでログイン時の処理を感覚だけで理解していましたが、処理を追うことで何をしているか理解が深まった気がします。