気付いた事やした事を表にまとめています。
Ctrl + F で目当ての用語などを入れると検索出来ます。
普段から Notion でメモしている事をそのままコピーしているだけですけど!笑
詳しく聞きたい事や間違い等があればコメント頂ければ幸いです。
MVC DB この辺りにすごい頭を使った月ですね!
だいたい、フレームワークをほぼ独学で使えるようになるとか出来るものなの?笑
コードを書き出せば楽しいけど、そこまでの環境構築がまだまだ苦手だなぁ
カレントディレクトリの考え方は習得必須ですね!
来月より、いよいよエンジニアとしての仕事が始まります。
常駐に受託、オープン系に汎用系、インフラに開発、スクラッチにノーコードに、色んな案件があるんだなぁと。
ただ、この先10年後にはこの関係図やシェアは大きく変わっていくだろうと思います。
その中で、自分が突き進む道を決めるのは投資をしている気分ですね。
目指せ、年収1000万円!
あっ、そういえば、開業致しました
2022年8月
内容 | タグ | タイトル |
---|---|---|
jQuery で、ページが読み込まれたら 画面幅が 668px以上の時、指定の要素の親要素を削除する。 PhotoSwipe で img の親である a タグを削除することで機能をレスポンシブで無効化した。 jQuery(“.my-gallery img”).ready(function() { if (window.matchMedia(‘(min-width: 668px)’).matches) { jQuery(“.my-gallery img”).unwrap(); } }); | JavaScriptjQuery | 無題 |
WordPress で PhotoSwipe を実装する方法。 ① テーマ直下に “js” という名前のディレクトリが無ければ作成し、中にこのフォルダを入れる。 (https://github.com/Tottorion/PhotoSwipe.js_min) ② リンクをヘッダーで読ませる。 (https://github.com/Tottorion/PhotoSwipe.js_min/blob/main/header_link) ③ フッター手前で表示用HTMLと JS を読ませる。 HTML(https://github.com/Tottorion/PhotoSwipe.js_min/blob/main/end_of_body/html) JS(https://github.com/Tottorion/PhotoSwipe.js_min/blob/main/end_of_body/js) ④ 画像のHTMLを <div class=”my-gallery”> <figure> <a href=”{画像のURL}” data-size=”{画像のサイズ}”> <img src=”{サムネイル画像のURL}” alt=”{画像下に表示されるキャプション}” /></a> </figure> </div> のようにする。{画像のサイズ} はクリック後に表示させるサイズ。 | CSSHTMLJavaScriptWordPress | 無題 |
Lightbox系のプラグインがどれもイマイチなので、jsライブラリの “PhotoSwipe.js” を試したらかなりいい感じだった。 v5 がリリースされているが、日本語ドキュメントが無くて一旦保留。次は試す。 方法としては、https://syncer.jp/how-to-use-photoswipe がわかりやすかった。 | JavaScript | 無題 |
date_parse_from_format() で入力した日付が正しいかチェック出来る。
結構使える感じだが、0年や0月 など ‘0’ を受け付けてしまうのでそこを排除するコードが必要?
if (!empty($date_check['errors']) || !$date_check['year'] || !$date_check['month'] || !$date_check['day']) {
このコードで行けなくは無いが、やはりスマートじゃない気がする。 | PHP | 無題 |
エクセルの日付形式のセパレーターは ‘/’ DBは ‘-’ これ面倒じゃないか?
$date_str = str_replace('-', '/', $this->request->getPost($masterTable));
スマートじゃない気がする。 | DBWork | 無題 |
Emmanon Free 画像の中央寄せが効かない。 margin による中央寄せの条件には displayの値が「inline」「inline-block」以外になっているか widthを指定しているか があり、Emmanon Freeでは figure に幅が設定されていない 事が原因だと思います。 ちなみに、Lightning の場合、aligncenter を当てると、display: table; が一緒に当たってます。 これにより、子要素の幅がこの要素の幅になるので、margin による中央寄せが出来ている感じでした。 | CSSHTMLThemeWordPress | 無題 |
CodeIgniter4 dd($_FILES) でポストしたファイルの詳細が確認出来る。 | CodeIgniter | 無題 |
WordPress メディアに画像をアップロードする時、設定 > メディア で設定したサイズにリサイズした画像が一緒にディレクトリに保存される。(複数の画像として) 出力する時は、関数が引数などを指定して出力しているので CSS で調整は難しい。 | CSSWordPress | 無題 |
wp-jquery-lightbox プラグインなら、aタグに rel=’lightbox’ を指定するだけでポップアップ表示が実装出来る。 | JavaScriptPluginWordPressjQuery | 無題 |
detailsタグや、slideToggle() などで実装したアコーディオンの下に絶対位置指定した画像などがあると、動作がおかしくなる。通常は下に伸びるが、上に伸びるてボタンが見えなくなる。 | CSSHTMLJavaScript | 無題 |
user_profile_update_errors は、ユーザープロフィール変更の時だけでは無く、新規登録の時もこれでエラーチェックしている。 | WordPress | 無題 |
WordPress ヘッダーロゴにじむ問題。 画像サイズ 1000px幅のものをメディアで縮尺変更 → × 大きいサイズの画像を設定し、CSS で縮小 → △ メディアにアップする前に設定 > メディアを調整する → 未検証 | WordPress | 無題 |
Codeigniter4 Shild user_name() でログインしているアカウントの名前を表示する方法。 vendor\codeigniter4\shield\src\Auth.php の79行目 id() をすぐ下に複製し name() とし、$user->username にする。 vendor\codeigniter4\shield\src\Helpers\auth_helper.php の21行目 if (!function_exists(‘user_id’)) をすぐ下に複製し function_exists(‘user_name’)) とし、function user_name() および return $auth->name(); にする。 これでどこでも echo user_name(); でユーザー名が表示される。 | CodeIgniter | 無題 |
GitHub のドキュメントは結構見やすい。公式ドキュメントサイトと平行して見よう。 | Github | 無題 |
WordPress ユーザー情報の追加には関数によるものと、HTML によるものが考えられる。 両者で変更をかける方法や制限が違うので、複数の情報を扱う場合はすべてカスタムフィールドで新しく追加した方が使い勝手は良い。 | WordPress | 無題 |
Codeigniter getMthod() は httpメソッドを返す。 | CodeIgniterHTML | 無題 |
「REST API(RESTful APIとも呼ぶ)」は、「GET」「POST」「PUT」「DELETE」(HTMLメソッド)を活用したAPI実装のことです。 | HTMLNetwork | 無題 |
Codeigniter4 モデルに変数(URLパラメータ)を渡したい場合、まず $table にパラメータを渡す関数を走らせた後にクエリの関数を走らせる。(関数を分ける) ※__construct() でも実装出来る。 | CodeIgniterMVC | 無題 |
Bootstrap 5000円前後で色んなデザインのテンプレートが売ってる。 これは安いし、買いだな。 | CSS | 無題 |
Xserver などは DB が共有サーバーのため、root権限(特権)のユーザーで操作する事が出来ない。 基本的にローカルでテーブルを作成し、それを元に CREATE文を準備し本番環境で使用する。 これはCodeigniter や 言語に限った話では無く、フレームワークを使った開発全般に言える。 | CodeIgniterDB | 無題 |
コマンドラインでの操作は権限が無いと出来ないと思っておく。 composer や spark など。 | CL | 無題 |
XAMPP Apache が起動中のまま進まない。 コマンドプロンプトで cd “C:\xampp\apache\bin” に移動。 httpd.exe -S で記述ミスなどがあれば教えてくれる。今回は、 DocumentRoot “C:/xampp/htdocs/○○/public/” が間違えているというエラーで、それまで指定していたフォルダを消したのが原因だった。 プロジェクトごとに毎回ここは修正する必要がある。 | ApacheCLWorkXAMPP | 無題 |
Codeigniter4 の writable > log フォルダに各種ログがあり、エラーなどの詳細が確認出来る。 | CodeIgniter | 無題 |
FTP ソフトで削除するのは時間がかかるので、サーバーのファイルマネージャーなどで削除した方が早い。しかし、ファイルマネージャではフォルダ単位のアップロードが出来ないので、そこは FTPソフトでする方が良い。 | FTP | 無題 |
Shield で php spark migrate –all をターミナルで書いてデータベースにアカウント情報のテーブルを作成しようとするも、[CodeIgniter\Database\Exceptions\DatabaseException] のエラーで弾かれる。 ハマり中。 原因は DB操作ユーザーに特権が無かった。 | CodeIgniterDBPHP | 無題 |
MySQLi とは、「MySQL improved extension」の略で、PHPからMySQL/MariaDBデータベースを操作するためのインターフェースを提供する、PHPの拡張機能です。 以前は「mysql_query」などのMySQL系(iがつかない)の関数が使われていましたが、PHP5.5以降では非推奨となりました。 その代替えとなったのがMySQLiです。 | DBPHPSQL | 無題 |
WordPress 下書き、レビュー待ちの状態では 公開日 が 最終更新日 になっている。 | WordPress | 無題 |
WordPress Elementor ブロックエディタの状態で何か一つ(タイトルなど)でも変更すると、データが壊れる? slug がアーカイブページと被っていただけだった。汗 | WordPress | 無題 |
Mac でのコンポーザー起動 $ composer require myth/auth Windowsでのコンポーザー起動 php composer.phar require myth/auth | PHP | 無題 |
form method=”post” にすると、違うページに遷移してしまう件で激ハマり。(約1日) method を削除すると、そのページにパラメーター付きで遷移する。 フォームの前に <?= session()->getFlashdata(‘error’) ?> <?= service(‘validation’)->listErrors() ?> フォームタグの直後に <?= csrf_field() ?> を入れると解決したが、原因と理由は今後の課題。 | CodeIgniterHTMLPHP | 無題 |
コントローラークラスのメソッドから、$this->load->view() でビューを読み込むときに、第 2 引数で連想配列を渡すと、ビューからその値を参照できるようになります。 | CodeIgniterPHP | 無題 |
論理削除とは、リレーショナルデータベースのレコードを削除する際、現在有効か否かを示すフィールドの値を変更することで削除したのと同じ扱いにする方式。実際のデータは削除しない。単にデータを削除する「物理削除」(physical delete)と対比される。 | DB | 無題 |
マスタテーブル以外でも全テーブルに必要なフィールドと以下は用意してしまう。 ————————– レコードID ※自動附番 ****** 作成日時 作成者(アカウント) 更新日時 更新者(アカウント) 削除フラグ ————————– 作成者・更新者は不要なシステムはあるかと思いますが、必要が無いのはシステム管理者が1名しかいない場合のみです。2名以上、システムの管理画面を触る必要があるのであれば、アカウントは別けるべきだと思います。今後は「監査」的な機能も求められるケースが多くなっていくはずです。 | DBSQL | 無題 |
マスタは削除してもDBからは削除せずフロントで非表示にするだけ。 hidden tinyint(1) でカラムを追加しておき、削除によって 1 にして true にするという方法 booleanが良い人もいますし、tinyintの人もいます。「delete_flag」を作成する人もいれば、「active」みたいな逆の意味のフラグにする人もいます。 ★自分は「delete_flag」でtinyintですね。 ◆自分は言語表記に近い「deleted」「is_deleted」とかでboolean、もしくは削除日のdatetimeかな。 flagの意味は分かるけど、情報としての意味を持たないから使いたくないのが理由。 | DBSQL | 無題 |
一般的なマスタテーブルのフィールド定義 ————————- レコードID ※自動附番 名称 番号(値等の付加情報) 表示順 ※ソート用 作成日時 作成者(アカウント) 更新日時 更新者(アカウント) 削除フラグ ————————— レコードIDはデータベース側のオートインクリメントの機能を使って実装します。 表示順は必須ではありませんが、殆どのクライアントさんが選択肢の並び順を好きなように並び替えたい等の要望が出るので入れておいた方が楽です。 ※データベースの特性上、後からフィールド追加するのは手間がかかります。 作成日時はインサート時の日時を入れて一切更新しません。何かの調査目的で便利なので入れておきます。 作成者・更新者はシステム上のアカウントを入れておきます。これも調査用です。非ログイン時や手作業などは「system」とか入れたりします。 更新日時はデータベースのタイムスタンプ機能を使って、自動で更新された日時を記録しておきます。これも調査用です。 削除フラグがご質問のフィールドですね。初期値をfalse等のしておき、削除操作でtrueに変更します。システムは常に「削除フラグ!=true」で除外してレコード操作をします。 | DBSQL | 無題 |
js がリンクで読んでも直接書いてもヘッダーでもフッターでも動かない。 JavaScript でスタイル属性が付与された状態のHTMLコードをコピーして使っていたのが原因でした。 やはり凡ミス! | HTMLJavaScriptWordPress | 無題 |