スポンサーリンク

困ったときに見たページ

ずっと非公開で使ってたページですが、公開してみることにしました。
困ったことがあったときに調べたページのリンクとメモを載せています。
記事を作成するほどではないけど勉強になったなーみたいな情報を残してます。

CakePHP関係

PHP – cakephpのbeforeFindで発生するColumn ambiguousの解消方法|teratail
カラムのあいまい検索を防ぐのに必要な設定。
$this->aliasField(‘カラム名’)のような設定でモデル名.カラム名のクエリとなる。
AppTableのbeforeFindで設定すると1か所で済むので便利。
複数のテーブルを結合して使う際、どのテーブルにも存在するカラム(削除フラグ)とかであいまい検索エラーとなってしまうのを防ぐのに使う。


【PHP】Twigまとめ – Qiita
twigテンプレートの書き方についてまとまっています。twigのビューを一から作成するわけではないのでそこまで細かくは見ていません。
{{ }}でセットした変数を表示できる。
{% %}がjspでいうところのスクリプトレットみたいなやつ。
{# #}でコメントアウト。
{% for key, value in arr %}で連想配列を展開など。
リンク先にはないですが配列を含む変数の展開は{{ dump(var) }}でできる。


How to escape Twig delimiters in a Twig template? – Stack Overflow
bakeによる自動生成でFormヘルパーのoptionのtemplatesにtwigテンプレートを記述をしたかったときに{{content}}などの変数入れてる場所が置換されて消えてしまったため、どうすればいいのかと調べたときに見つけた解決方法。
{{ ‘{{‘ }}、{{ ‘}}’ }}のような具合で括弧をシングルクォートでくくって出力すればいい模様。


CakePHP3で単数形、複数形を間違えないようにする方法 – Qiita
個人製作中のBakeツールで活用しています。
公式のドキュメントに各関数で入力値がどうなるかが載っている。
参考:Inflector


CakePHP3 ajaxでCsrfトークンチェックする – Code Lab
CakePHP3.6ではリクエストヘッダではなく、リクエストパラメータに追加することでCSRFのエラーを回避することができました?( ・`ー・´)?何か間違ってる気がする。
CakePHP3の中でもバージョンによってCSRFは設定の仕方が違うようです。
業務システムのような特定の人しかアクセスしないようなシステムでCSRFのチェック自体が不要な場合はsrc/Application.phpのCsrfProtectionMiddlewareに関する設定自体をコメントアウトしても良い模様。


[CakePHP3]cookbookにはあまり書かれてない便利なトレイト – Qiita
InstanceConfigTraitについて調べてたときに参考にしたページ。


3.x 移行ガイド – 3.8
CakePHP3本体のバージョンを3.6.9から3.8.10にアップグレードしたときに参考にしたドキュメント。
主にgetter/setterが追加され、既存の処理が非推奨となった感じでした。


cakephp – Error on upgrade to 3.7: Property _transportConfig does not exist – Stack Overflow
CakePHP3を3.6.15から3.7.9へアップグレードしたときに同じエラーが出てて調べた際にページ。
debug_kitプラグインを最新化したら解決しました。


CakePHP 3 に PHP_CodeSniffer を入れてコードをキレイに保つ / Twin Turbo Computing
CakePHP3 で開発環境準備(実務編究極チュートリアル) – Qiita
CakePHP3でcodesnifferどうやって使うのか調べたときに見たページ。
ざっと見た感じCakePHP3についての知らないところとか書いてあるので時間のある時にじっくり読みたい。


Code Snifferのエラー文メモ – Qiita
codesnifferのエラーメッセージは英語でよくわからないところがあったのでグーグル翻訳にぶち込もうと検索したときに見たページ。

Git関係

git on Windowsで aggregateexceptionが発生する – Qiita
Git for Windowsのバージョンが古かったときに出たException
ローカルのバージョンが2.11のときに発生しました。
対処方は書いてある通りアップデートするだけ。


【Git】インストール済みのGitをアップデートする【Windows環境】 | かずさプログラマーの雑記帳
上に記載した例外が発生した際、Git for Windowsのアップデートの行い方を調べた際にみたページ


自分用 Git For Windowsのインストール手順 – Qiita
インストール時の選択を覚えてないのでこの辺を参考にアップデートしました。


Git リポジトリに上がっているファイルを履歴ごと消すには? – Qiita
本番用のAPIキーとかGit管理するべきでないファイルをプッシュしてしまったときとかの対処方法。
※rmで指定するファイルパスのディレクトリセパレータはスラッシュにする必要があった。

git filter-branch --tree-filter "rm -f env/hosts_and_httpd-vhosts.txt" HEAD
git push -f

AWS関係

Amazon EC2 の IP 帯域 – Qiita
どこかのVPSかクラウドで稼働中のシステムをAWSにサーバー移行するというタスクをやってたときのこと。
開発環境はgmoのSTMPサーバーからのメール送信が正常にできるのに、全く同じ設定を使っている本番環境と検証環境は送信元がUSになってるとかいう謎のエラーが出たときに調べたやつ。
インスタンスに割り当てたElasticIPのIP帯域が日本ではなかったことが原因でした。
ElasticIPガチャ?( ・`ー・´)?
gmoのSMTPサーバー側で「国外からのSMTP認証のアクセス制限」を無効化してあげることで解決しました。
参考:【共用サーバーSD】国外からのSMTP認証のアクセス制限について教えてください|ヘルプサポート | ドメイン取るならお名前.com

JavaScript関係

fabricjs – Undo-Redo feature in Fabric.js – Stack Overflow
Fabric.jsでUndo/Redo機能を追加しようとしたときに見たページ。


jsでダウンロードを実装した話 – Qiita
Blobを埋め込んだaタグを作るというところまでは別のところで調べていたが、aタグをbody内に置かないでダウンロードさせるにはどうすればいいのかがわからなかったときに見たページ。
downLoadLink.dataset.downloadurlはjquery書くとdata-downloadurlでセットできた。


javascript – How can I get the full object in Node.js's console.log(), rather than '[Object]'? – Stack Overflow
Node.jsで深い配列をconsole.log()で出力したとき [ Array ]みたいな表示になって中身がわからなかったときに調べたページ。
utilモジュールのinspect()という関数で出力したい配列を包んであげればよかった模様。


Webpack 4 圧縮時にJavaScriptのコメントを全て削除する | Monotalk
webpackでバンドルするjsファイル内のコメントの消し方について調べたときに参考にしたページ。
terser-webpack-pluginプラグインを使う。


Webpack4でJavaScriptとCSSを結合しつつminfyする設定を書いてみた。 – Qiita
webpackでバンドルするcssファイル内のコメントの消し方について調べたときに参考にしたページ。
optimize-css-assets-webpack-pluginを使う。

その他

wp option | WordPress Developer Resources
CloudFormationでwp-cliを使ってWordPressのインストールまでをスタック構築時に行ってしまうよう対応していた時のこと。
プラグインをインストールするだけならwp plugin install [plugin name] –activateのようなコマンドで大丈夫だけど、設定画面で行うようなプラグインの設定はどうすればいいのかを調べた際に読んだページ。
wp_optionsテーブルのoption_valueはオプション項目によってシリアライズされたjson文字列が格納されている。これを更新することも可能って話。
例えばS3のバケットと連携する「WP Offload Media Lite」というプラグインをインストールされると追加されるtantan_wordpress_s3というオプションを更新したい場合は以下のように書けた。

"sudo -u apache /usr/local/bin/wp option update tantan_wordpress_s3 '{\"bucket\": \"",
{
    "Ref": "S3BucketName"
}
"\", \"copy-to-s3\": \"1\", \"force-https\": false, \"manual_bucket\": true, \"post_meta_version\": 8, \"region\": \"ap-northeast-1\", \"serve-from-s3\": \"1\"}' --format=json\n"

シリアライズさせるためには入力値がjsonであることをformatオプションで明示的に設定する必要がある模様。

シリアライズされた文字列をDBから取得→ローカルか適当なオンラインサイトでアンシリアライズする→CloudFormation用のコマンドを作成
という流れの作業となるため結構大変


Getting Started | Muuri – にほんご。
Muuriというグリッドレイアウトを行うjavascriptプラグインの使い方を日本語翻訳してくれているサイト。
リンクから上の方のリンクに飛ぶと他にもいろいろなプラグインについて翻訳してくれている。
めちゃくちゃ助かる。


PHPのobjectの代入にはcloneを使おうって話 – Qiita
forループの中なんかで繰り返し使うDateTimeオブジェクトをメソッドの引数に繰り返し渡してた時に、関数内のmodifyによるオブジェクトの操作で元処理のオブジェクトの方まで変更が伝播してしまったときに調べたページ。
オブジェクトはPHPの&による参照渡しの有無とか関係なくオブジェクトそのものが渡されると理解した。

タイトルとURLをコピーしました