エス技研

WordPress、CakePHP、PHP、baserCMSなどの Web系システムを中心に情報を提供します!

PHPで月末から1ヶ月後「+1 month」を算出すると想定する日付にならない場合がある

PHPで月末から1ヶ月後「+1 month」を算出すると想定する日付にならない場合がある

  2024/09/28    PHP・Smarty・ECCUBE

PHPでは月末の1ヶ月後が想定した日付にならない場合がある。原因はバグではなくPHPの1ヶ月後の定義によるもの。なので必要とする日付を定義しそれに合わせてDateTime、modifyを使用して算出方法を解説している。

PHPで1ヵ月前、先月、今月1日、来月末の日付などの算出はDateTimeImmutableを使う

PHPで1ヵ月前、先月、今月1日、来月末の日付などの算出はDateTimeImmutableを使う

  2024/09/27    PHP・Smarty・ECCUBE

PHPには日時をオブジェクトとして生成する関数「DateTimeImmutable」「DateTime」が用意されている。これを利用して1ヶ月後、月初日、月末日、5日後などを指定して日付を取得できる。

CakePHP4のFrozenDateで1ヵ月前、先月、今月1日、来月末の日付などを算出する方法

CakePHP4のFrozenDateで1ヵ月前、先月、今月1日、来月末の日付などを算出する方法

  2024/09/07    CakePHP 3.x 4.x

CakePHPには「FrozenDate」の日付を扱う関数が用意されている。これを利用して、1ヶ月後、月末日、月初日、5日後などを指定して日付を取得できる。それを解説。

CakePHP4のcake cache clear_allでPermission deniedはパーミッションの変更が必要

CakePHP4のcake cache clear_allでPermission deniedはパーミッションの変更が必要

  2024/09/06    CakePHP 3.x 4.x

CakePHP4でキャッシュをクリアするコマンドcake cache clear_allでPermission deniedのエラーが出るのはcakeにパーミッションが足りないとき。その対処方法を解説。

CakePHP4のクリエビルダーを使用してOR条件をAND条件でつなぐSQL文を作る方法

CakePHP4のクリエビルダーを使用してOR条件をAND条件でつなぐSQL文を作る方法

  2024/08/23    CakePHP 3.x 4.x

CakePHP4のクリエビルダーを使って複数のOR条件をANDでつなぐSQL文を作成する方法を解説。OR条件を記述したwhere句を2つつなげて記述する。

キーピッチ18mm以下のキーボードSKB-SL02U、AOK-115UPW、SKB-SL37BKの比較レビュー

キーピッチ18mm以下のキーボードSKB-SL02U、AOK-115UPW、SKB-SL37BKの比較レビュー

  2024/08/22    周辺機器

独立テンキー付のコンパクトキーボードであるATC-MKB95やFKB1420の代替となるキーボードを探してみたが、キーピッチが16mm前後のキーボードに代替機はなかった。残念。

CakePHP4のController内でViewテンプレート、レイアウトの変更設定を記述する方法

CakePHP4のController内でViewテンプレート、レイアウトの変更設定を記述する方法

  2024/08/10    CakePHP 3.x 4.x

CakePHP4でテンプレートやレイアウトファイルをデフォルトから変更する場合は「render()」を使用するが、記述場所はできるだけコントローラー内の最後の方に書く方がいい。

cURLを利用する際の注意点「&」があるURLは「"」で囲む

cURLを利用する際の注意点「&」があるURLは「」で囲む

  2024/08/09    PHP・Smarty・ECCUBE

cURLでURLはダブルクォーテーションで囲む。LinuxでもWindowsでもコマンドでは「&」は意味を持つ文字のためエラー原因になる。クォーテーションは常につけておく方が無難。

WindowsのXAMPPのPHPではstrptimeは使用不可。代替はdate_parse_from_formatを使う

WindowsのXAMPPのPHPではstrptimeは使用不可。代替はdate_parse_from_formatを使う

  2024/08/03    PHP・Smarty・ECCUBE

strptimeはWindowsのPHPには未実装。LinuxとMacで挙動が異なる。PHP8.1で非推奨になる。なので日付のチェックはdate_parse_from_formatを使おう。使い方を詳細解説。

CakePHP4から外部のデータベースにアクセスする方法解説

CakePHP4から外部のデータベースにアクセスする方法解説

  2024/08/02    CakePHP 3.x 4.x

CakePHP4のシステムから他のシステムのデータベースにアクセスをし、SQL文を実行する方法を解説。try-catchでエラーを取得する方法も解説。

CakePHP4の数値項目は「like %10%」の部分一致検索(find select)はできない

CakePHP4の数値項目は「like %10%」の部分一致検索(find select)はできない

  2024/08/01    CakePHP 3.x 4.x

CakePHP4でテーブルの数値項目に対してlike句を使用した部分一致検索を実行するとエラーが発生する。クリエービルダーの不具合だと思われ対処方法が分からない。

CakePHP4でロギングスコープやログレベルを使用してログを出し分ける方法を解説

CakePHP4でロギングスコープやログレベルを使用してログを出し分ける方法を解説

  2024/06/25    CakePHP 3.x 4.x

CakePHPのログ出力方法の解説。app.phpにログ設定をし、スコープやレベルを指定してログ出力を振り分ける方法、CakePHP4で配列出力にはvar_exportが必要なことなどを解説。

PHPのデバッグで使う print_r、var_dump、var_exportの動作の違い

PHPのデバッグで使う print_r、var_dump、var_exportの動作の違い

  2024/06/24    PHP・Smarty・ECCUBE

PHPのデバッグ等で変数や配列の中身を確認するために使用する関数print_r、var_dump、var_exportの動作の違い、仕様の違いについて確認した。var_exportがオススメ。

CakePHP2、CakePHP3、CakePHP4、CakePHP5のバージョンを調べる 2つの方法

CakePHP2、CakePHP3、CakePHP4、CakePHP5のバージョンを調べる 2つの方法

  2024/06/23    CakePHP 3.x 4.x

CakePHPのバージョンの調べ方2点を紹介。CakePHP3~CakePHP5は共通だが CakePHP2はフォルダ構成が異なるためコマンドのパスもオプションも異なる。

Windows上のXAMPP環境のCakePHPのコマンド実行時に環境変数を指定する方法

Windows上のXAMPP環境のCakePHPのコマンド実行時に環境変数を指定する方法

  2024/06/22    CakePHP 3.x 4.x

CakePHP4のコマンド(シェル)に対して、環境変数を指定して実行する方法を解説。LinuxとWindows上のXAMPPとでは記述方法が異なるため、Windowsのsetコマンドについても詳細解説。

CakePHP4で複数の引数(パラメータ)を付与してコマンドを実行する方法

CakePHP4で複数の引数(パラメータ)を付与してコマンドを実行する方法

  2024/06/21    CakePHP 3.x 4.x

CakePHP4でコマンドを実行する際に引数(パラメータ)をコマンド内で受け取る処理について解説。複数個の引数にも対応する記述方法も解説。

CakePHP4 のコマンドプログラムからコンポーネントを読み込む方法解説

CakePHP4 のコマンドプログラムからコンポーネントを読み込む方法解説

  2024/06/20    CakePHP 3.x 4.x

CakePHP4でコマンドプログラムからコンポーネントを呼び出す方法を解説。コントローラーから呼び出すときと大差はないが、use句でコンポーネントを指定する事がポイント。

CakePHP4 でコマンドプログラム(シェルプログラム)を作成する方法解説

CakePHP4 でコマンドプログラム(シェルプログラム)を作成する方法解説

  2024/06/19    CakePHP 3.x 4.x

CakePHP4でバッチ処理を行うためのコマンド・シェルの実装方法について解説。bakeでテンプレートファイルを作成し、「execute()」に処理を記述する方法を解説。

Windows環境の XAMPPを利用して CakePHPの開発する際の注意点

Windows環境の XAMPPを利用して CakePHPの開発する際の注意点

  2024/06/15    CakePHP 3.x 4.x

WindowsベースにXAMPPで環境を構築しCakePHP4を利用したWebシステムを構築する際は、大文字と小文字の違いを意識する必要がある。LinuxベースのWebサーバに移動させたときに不具合で動作しないこともある。

CakePHP4の規約外のカラムをキーにアソシエーション(テーブル連結)する方法

CakePHP4の規約外のカラムをキーにアソシエーション(テーブル連結)する方法

  2024/06/14    CakePHP 3.x 4.x

CakePHPで規定外のカラム名のキーを指定してアソシエーション(テーブル連結)をする方法を解説。アソシエーション名によってはミスが発生しやすい点もあるので注意も必要。

CakePHPで Auto Incrementを外すと Duplicate entry '0' for keyのエラーが出るかも

CakePHPで Auto Incrementを外すと Duplicate entry ‘0’ for keyのエラーが出るかも

  2024/06/13    CakePHP 3.x 4.x

CakePHPでAuto Incrementの設定を変更したときに「Duplicate entry ‘0’ for key」のエラーが出た。原因はModel内で IDを編集する処理の追加を忘れていたからだった。

sleepの秒指定は整数のみなので1.5秒はsleep、usleepを組み合わせる

sleepの秒指定は整数のみなので1.5秒はsleep、usleepを組み合わせる

  2024/06/12    PHP・Smarty・ECCUBE

PHPのプログラム処理を遅延させる「sleep()」は整数秒単位。「usleep()」は1秒未満のマイクロ秒単位。では「1.5」秒はどう表現するのか。「sleep()」「usleep()」を組み合わせる。その解説。

CakePHPのFlashエラーは出るが入力項目ごとのメッセージが出ないエラーの原因

CakePHPのFlashエラーは出るが入力項目ごとのメッセージが出ないエラーの原因

  2024/01/21    CakePHP 3.x 4.x

Bakeして自動生成した入力フォーム処理を元に少し処理を追加したら、入力エラーがあってもエラーメッセージが表示されなくなった。原因はリダイレクトの処理にあった。

CakePHP4のフラッシュメッセージの表示場所、デザインを変更する方法を解説

CakePHP4のフラッシュメッセージの表示場所、デザインを変更する方法を解説

  2024/01/20    CakePHP 3.x 4.x

CakePHP4のエラーメッセージ、完了メッセージなどを表示するフラッシュ処理の解説。Controller、レイアウトファイル、テンプレートファイルでそれぞれ処理を指定する。

ビットコインなどの仮想通貨・暗号資産のお金の流れを単純化し誰が儲かるのかを図解

ビットコインなどの仮想通貨・暗号資産のお金の流れを単純化し誰が儲かるのかを図解

  2024/01/07    ただの日記

ビットコインのような仮想通貨・暗号資産の取り引きでのお金の動きを図に書いて、誰が利益を得るのかを解説。ゴールドラッシュで利益を得たリーバイスと同じ構図なのか?

エンジニアは勉強し続けないといけないのか?否、ビジネスマンなら当然だと思う

エンジニアは勉強し続けないといけないのか?否、ビジネスマンなら当然だと思う

  2024/01/06    ただの日記

高い水準の給料を望むならば日々のちょっとした努力が必要。エンジニアに限らずビジネスマンなら当然。日々の少しの努力の積み重ねが大きな差を生む。その努力の興味が湧かないなら仕事を変える方がいいのかも。

配列の値をテキスト表示する際に「、」でつなげるときの処理方法の一例

配列の値をテキスト表示する際に「、」でつなげるときの処理方法の一例

  2023/12/28    PHP・Smarty・ECCUBE

配列の値を「、」でつないで出力する際、単純にforeachで繰り返し処理をすると「イヌ、サル、キジ、」となるが文字列最後の「、」を出力しない方法を3つ解説している。

CakePHPで同一テーブル内の値を比較する条件でレコードを取得する方法

CakePHPで同一テーブル内の値を比較する条件でレコードを取得する方法

  2023/12/27    CakePHP 3.x 4.x

CakePHPの同一テーブルにある項目の値を比較し条件に合致するレコードを取得する方法を解説。[”項目名”=>”値”]ではなく[”項目名 = 項目名”]と書くところがポイント。

国際化と地域化の翻訳機能「__()」を使って定数に変数を埋め込む方法

国際化と地域化の翻訳機能「__()」を使って定数に変数を埋め込む方法

  2023/12/26    CakePHP 3.x 4.x

CakePHP4で定数に変数を埋め込み、翻訳機能「__()」で変数に値を入れる方法を紹介。定型の文章の一部だけを置換したい場合に利用すると便利。

CakePHP4で現在処理しているコントローラー名、アクション名を取得する方法

CakePHP4で現在処理しているコントローラー名、アクション名を取得する方法

  2023/12/25    CakePHP 3.x 4.x

CakePHP3で現在処理しているコントローラー名、アクション名を取得する方法を解説。複数の方法があるが、getParam()メソッドを使う方法が汎用性があって便利かも。