2021-01-01から1年間の記事一覧

Azure Functions: `Azure Functions Core Tools` で TypeScript/QueueTrigger の関数を `func start` 時に `Value cannot be null. (Parameter 'provider')` エラー

バージョン OS: macOS Catalina 10.15.7 Azure Functions Core Tools: 3.0.3785 node: 14.17.5 遭遇したエラー Value cannot be null. (Parameter 'provider') $ func start Azure Functions Core Tools Core Tools Version: 3.0.3785 Commit hash: db6fe71b…

CakePHP 4.x: .env ファイルを有効化する (留意点あり)

留意点をメモ ドキュメント https://book.cakephp.org/4/en/development/configuration.html#environment-variables 有効化方法 ① config/bootstrap.php の以下をアンコメントアウト // if (!env('APP_NAME') && file_exists(CONFIG . '.env')) { // $dotenv…

CakePHP 4.x: Crud\Action\EditAction のレスポンスに data を含める

Crud.afterSave で Config の api.success.data.row を設定 CakePHP 4.x: FriendsOfCake/crud の Config の api.success.data キー class UsersController extends AppController { public function beforeFilter(EventInterface $event): void { parent::be…

CakePHP 4.x: FriendsOfCake/crud の コアイベント と カスタムリスナー の追加方法

前提知識 CakePHP の イベントシステム CakePHP 4: イベントシステムの概要 - idubmorganのブログ Crud プラグインのコアイベント 概要 ORM/Modelイベント 等と同様に、Crudプラグイン用のイベント(=Crudコアイベント)が用意されている Crudコアイベントの種…

CakePHP 4: イベントシステムの概要

CakePHP 4.x: イベントシステム 概要 CakePHPのイベントシステム モデル・ビヘイビアー・コントローラー・ビュー・ヘルパーのコールバックの心臓部 why クラスの結合度を下げる コードの関心事を明確に分離させる how Observer パターン オブジェクトがイベ…

CakePHP 4.x: hasMany, belongsToMany でアソシエーションしたテーブルのレコードを contain で取得する際は、JOIN でなく、別のSQLで取得している

アソシエーションしたテーブルのレコードを contain して取得する際に実行される SQL は下記のように異なる hasOne の場合は JOIN で取得 hasMany は別SQLで取得 追記 CakePHP4.x: hasMany の Association を contain すると 別SQL になる仕組み ドキュメン…

CakePHP 4.x: FriendsOfCake/crud の Config の api.success.data キー

Config の api.success.data キー は \Crud\Listener\ApiListener::_ensureData で参照される https://github.com/FriendsOfCake/crud/blob/master/src/Listener/ApiListener.php#L231 以下の指定方法がある api.success.data.row api.success.data.subject …

CakePHP 4.x: クエリログを出す方法

// logs/queries.log にクエリログを出力 $connection->enableQueryLogging(true); コントローラ内であれば、こんな感じ $this->テーブル名->getConnection()->enableQueryLogging(); ※3.x では $this->テーブル名->getConnection()->logQueries(true); だっ…

PHP: メモリ使用量の確認方法

note CakePHP の場合は、app/webroot/index.php の先頭と最後に下記のコードを差し込んで確認した https://www.php.net/manual/ja/function.memory-get-usage.php https://www.php.net/manual/ja/function.memory-get-peak-usage.php //ini_set('memory_limi…

CakePHP 4.x: `TableClass->find()...->all()` では `ResultSet` が返り、`ResultSet` を foreach で回すと `PDOStatement::fetch` しDBから取得したデータがメモリ上に展開される

※2022/02/05: 追記 (->toArray() する際の注意点) ドキュメント クエリービルダー - テーブルから行を取得する TableClass->find()...->all() では ResultSet が返り、ResultSet を foreach で回すと PDOStatement::fetch しDBから取得したデータがメモリ上…

React : コンポーネントの作成手順

Reactの流儀(Thinking in React) と Presentational and Container Components パターン(デザインパターン) を適用すると良い React の 流儀 下記の流れでコンポーネントを作る デザインモックの UI を、コンポーネントに括るべき範囲に分解し、分解したコン…