CakePHP4 : DebugKit を無効化
バージョンCakePHP : 4.1.5DebugKit を無効化app/src/Application.phpの bootstrap()内の $this->addPlugin('DebugKit');をコメントアウト public function bootstrap(): void { // if (Configure::read('debug')) {...
View ArticleMySQL: character_set_client についてのメモ
バージョンmysql: 8.0.20whatDocker mysql:8.0.20にログインすると、日本語が ???に文字化けしていたcharset.cnf (ファイル名前は何でもok) で default-character-setを uft8mb4に設定をする事で解消した// /etc/mysql/conf.d/charset.cnf [mysqld] character-set-server...
View ArticleCakePHP 4x: JST の Chronos インスタンスで diffInMonths すると正しい結果が得られない (回避方法も記載)
(2021/01/18 追記)次回リリースされるバージョンの Chronos では問題が解消されるようです #283にて修正済みUTC以外の場合は diffInMonthsIgnoreTimezone()を使えばokバージョンPHP: 7.4.11CakePHP: 4.1.5Chronos: 2.0.6whatすでに公式に issueが上がってるが、今回調べた事をメモissue...
View ArticleCakePHP 4x: AuthenticationMiddleware の挙動と、ログイン時に毎回From認証するサンプル
AuthenticationMiddlewareの挙動が把握できておらず、ハマったのでメモAuthenticationMiddlewareの挙動チュートリアルに// src/Application.php public function middleware(MiddlewareQueue $middlewareQueue): MiddlewareQueue { $middlewareQueue...
View ArticleReact : コンポーネントの作成手順
Reactの流儀(Thinking in React)と Presentational and Container Componentsパターン(デザインパターン) を適用すると良いReact の 流儀下記の流れでコンポーネントを作るデザインモックの UI を、コンポーネントに括るべき範囲に分解し、分解したコンポーネントを階層構造にならべる単一のコンポーネントに括るべき範囲を決める...
View ArticleCakePHP 4.x: `TableClass->find()...->all()` では `ResultSet` が返り、`ResultSet` を...
※2022/02/05: 追記 (->toArray()する際の注意点)ドキュメントクエリービルダー - テーブルから行を取得するTableClass->find()...->all()では ResultSetが返り、ResultSetを foreach で回すと...
View ArticlePHP: メモリ使用量の確認方法
noteCakePHPの場合は、app/webroot/index.phpの先頭と最後に下記のコードを差し込んで確認したhttps://www.php.net/manual/ja/function.memory-get-usage.phphttps://www.php.net/manual/ja/function.memory-get-peak-usage.php//ini_set('memory_...
View ArticleCakePHP 4.x: クエリログを出す方法
// logs/queries.log にクエリログを出力 $connection->enableQueryLogging(true);コントローラ内であれば、こんな感じ$this->テーブル名->getConnection()->enableQueryLogging();※3.x では...
View ArticleCakePHP 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以下の指定方法がある...
View ArticleCakePHP 4.x: hasMany, belongsToMany でアソシエーションしたテーブルのレコードを contain...
アソシエーションしたテーブルのレコードを contain して取得する際に実行される SQLは下記のように異なるhasOneの場合は JOIN で取得hasManyは別SQLで取得追記CakePHP4.x: hasMany の Association を contain すると 別SQL になる仕組みドキュメントCakePHP 4.x - hasMany アソシエーションhasOne...
View ArticleCakePHP 4: イベントシステムの概要
CakePHP 4.x: イベントシステム概要CakePHPのイベントシステムモデル・ビヘイビアー・コントローラー・ビュー・ヘルパーのコールバックの心臓部why クラスの結合度を下げるコードの関心事を明確に分離させるhow Observer パターン...
View ArticleCakePHP 4.x: FriendsOfCake/crud の コアイベント と カスタムリスナー の追加方法
前提知識CakePHPの イベントシステム CakePHP 4: イベントシステムの概要 - idubmorganのブログCrudプラグインのコアイベント概要ORM/Modelイベント等と同様に、Crudプラグイン用のイベント(=Crudコアイベント)が用意されているCrudコアイベントの種類Crud Documentation: Events - Core Crud Eventsを参照例...
View ArticleCakePHP 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...
View ArticleCakePHP 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')) {...
View ArticleAzure Functions: `Azure Functions Core Tools` で TypeScript/QueueTrigger の関数を...
バージョンOS: macOS Catalina 10.15.7Azure Functions Core Tools: 3.0.3785node: 14.17.5遭遇したエラーValue cannot be null. (Parameter 'provider')$ func start Azure Functions Core Tools Core Tools Version: 3.0.3785...
View ArticleGIN Index についての覚書
GIN Index解決したい問題 / 解決方法解決したい問題複合型の項目(JSONB 等)の要素の値の検索の高速化解決方法実装 https://www.postgresql.jp/document/13/html/gin-implementation.htmlnote部分一致 検索にも対応注意点GINインデックスの更新は低速になりがちGist index vs GIN...
View ArticleCakePHP 4.x: DBのデータ型 から PHPの型(Entityのpropertyの型) へのCast
DBのデータ型 から PHPの型(Entityのpropertyの型) への変換\Cake\Database\Type以下の Class の toPHPメソッドで行われる例\Cake\Database\Type\StringType::toPHP`一覧\Cake\Database\TypeFactory::$_typesPHPの型(Entityのpropertyの型) から DBのデータ型...
View ArticlePDO と プリペアドステートメント(使用|未使用)時のデータ取得の流れ
ドキュメントPHP Data Objectsnotewhat PDO (PHP Data Objects)データベース抽象化レイヤ解決したい問題 mysql_connectでDB(MySQL)に接続した場合、別のDBに変わった場合に、pg_connectへの変更が発生するPDO データベースが変わっても同じ命令でデータにアクセスできるwhat...
View ArticleIntel Mac から M1 Mac に移行後、Alfredでファイル検索ができない問題の解消方法
VersionMacBook Pro (14インチ、2021) Apple M1 PromacOS Monterey 12.1Alfred 4.6.3whatIntel Macから M1 Macに 移行アシスタント + ターゲットディスクモードで移行した移行後、Alfred でファイル検索が出来なくなった spotlight ではファイル検索できているTroubleshooting File...
View ArticleCakePHP4.x: hasMany の Association を contain すると 別SQL になる仕組み
以前、hasMany の Association を contain すると 別SQL になるという内容の記事を書きました今回は、どのような仕組みで別SQLになるのか、コアのコードを追ってみましたversionCakePHP: 4.2.8仕組み\Cake\ORM\EagerLoader::loadExternalによって、別SQLになるDecorates the passed statement...
View ArticleAzure DevOps Pipelines: pr: none を明示しないと、PR作成時に、意図せず Pipeline が動いてしまう
デフォルトで生成される azure-pipelines.ymlは以下 注意点 pr: noneが明示されていなので、PR作成時に Pipeline が動くtrigger: - main pool: vmImage: ubuntu-latest steps: - script: echo Hello, world! displayName: 'Run a one-line script' -...
View ArticlePHPStorm で File Structure のショートカット(cmd + F12)が効かない事象の調査メモ
事象cmd + F8(Breakpoints) などは効くcmd + F12 だけ効かないキーストロークは IDE に到達しますか?...
View ArticleM2 Mac で Apollo Twin X を使えるようにする方法
2023/02/11 の時点では、macを macOS 復旧で起動し、“低セキュリティ ”オプションを設定する必要があります。作業日2023/02/11経緯mac book pro 2016 (13 インチ)が突然故障し、再起不能となり、M2 Max の mac book pro (14インチ)を購入旧PCは起動できない状態新PCに、Time...
View ArticleCakePHP 4.x: Entityのカラム一覧は、DBのスキーマを参照して取得しており、取得結果は schema_cache としてキャッシュされている
CakePHPの実装実際のスキーマを元に、Entity 取得時に実行される SQLの SELECT 句に指定するカラム一覧を生成している上記は schema_cache としてキャッシュされる bin/cake schema_cache clearした上で、Entity を取得した際、カラムの一覧を取得する SQLが実行される事を確認bin/cake schema_cache...
View ArticleCakePHP 4.x に ParaTest を導入
CakePHP 4.x に ParaTest を導入テストの数が増えてきて全件テストを実行するのに時間がかかるようになった為、ParaTestを導入し、テストを並列実行するようにしてみました。versionCakePHP: 4.4.10ParaTest: v6.9.1PHPUnit:...
View ArticleEventGrid TriggerのAzure Functionをローカルで動かす方法
Azure Function のトリガーの種類により、ローカルでの実行方法が異なります。HTTP トリガーhttp://localhost:<PORT>/api/<FUNCTION_NAME>にリクエストする事で実行できます。(EventGrid Trigger を除く) HTTP トリガー以外Azure Function の 管理者エンドポイント (...
View ArticleAzure Application Insights への特定のログ出力を Azure Monitor で監視し、Slack 通知する方法
先日、Azure Function の異常終了を検知し、Slack に通知する仕組みを構築しました。今回は、Azure Application Insights に特定のログが出力されたら Slack に通知する仕組みを構築する手順を書きます。使用するものSlack 通知を受けるチャンネルIncoming WebhookAzure Azure Application Insights...
View ArticleLaravel: Facade vs Contract
自分の言葉で言語化してメモFacade vs ContractFacade と Contract はどちらも Laravel のコア機能を使う為の方法であるFacadewhat Laravelのコア機能をサービスコンテナを介さずに利用できる静的なインターフェースメリット サービスコンテナを意識することなくサービスに簡単にアクセスできるデメリット...
View ArticleMUIのスタイリング方法
MUI v5スタイリングは Emotion or styled componentsを利用できるCSS-in-JSライブラリJSS (JavaScript Style Sheets)MUI v4 では makeStyles と JSS を組み合わせてスタイリング MUI v5 で makeStyles が非推奨になったstyled...
View ArticleAWS Certified Solutions Architect (SAA-C03) 認定試験向けのメモ
サービス分析Amazon AthenaS3 上のデータに対して 標準SQLを実行できるデータ分析サービス (サーバレス)Amazon EMR (Amazon Elastic MapReduce)ビッグデータの処理や分析ビッグデータフレームワーク(= Hadoop, Spark,...
View Article