- 1. PHPのフックってなんぞ(フィルターフック編)
- 2. 会員向けのメール配信機能のショートコードを定義する。
- 3. 正規表現メモ
- 4. ブラウザキャッシュ更新 プラグインでbaserCMSのスタイル調整や画像差し替えなどをすぐに反映する
- 5. Laravelで複合主キーを持つ中間テーブルへの値保存時のエラー: local.ERROR: Illegal offset type
- 6. Laravel Faker->image() で画像が作成できない時の対処
- 7. 5種類のテストダブルを知ろう!
- 8. 【PHP】配列のキーを並び替えて⦅駄菓子打線⦆組んでみた
- 9. WordPressでSEOに強いサイトを作るにはコツがある!その方法を解説
- 10. Laravelでログイン機能を実装する
- 11. Python,Ruby,PHP,Java,JavaScript,PerlのPDF作成の比較
- 12. PHPで504 Gateway Time-outが出た時に確認すること
- 13. 【Laravel】Eloquent モデルのプロパティ
- 14. 【Laravel / Rails】bulk insertについてまとめ
- 15. 【PHP】useとrequire_once完全に理解した
- 16. int型指定の引数にstringを渡すとintになる PHP
- 17. 【PHP】ファイルアップロードにおけるPermission設定について
- 18. M1MacでLaravel&Docker環境構築を簡単にやる方法 2022
- 19. Laravel Sailのtinkerで日本語が表示できない時の対応方法
- 20. 【PHP】 Range関数に第三引数あったんやね
PHPのフックってなんぞ(フィルターフック編)
[前回の記事](https://qiita.com/nyopono/items/2f87fd5a7c3996250c92)の続きで今回はフィルターフックについてまとめていきます。
※参考記事
・[Web 制作リファレンス (+α)](https://www.webdesignleaves.com/pr/wp/wp_func_hook.html)
・[WordPress フィルターフックの使い方を理解する](https://shu-sait.com/wordpress-filter-hook-tukaikata/)# フィルターフックとは
[こちらの記事](https://www.webdesignleaves.com/pr/wp/wp_func_hook.html)から抜粋>WordPressの処理の途中で、出力する内容をカスタマイズしたい場合に使われる仕組み
例えばWordPressでブログを設営していたとして、記事タイトルの頭に「■」という記号をつけたくなったとします。
一つ一つに「■」を書き足していくのは非常に手間な
会員向けのメール配信機能のショートコードを定義する。
カスタム投稿、「メール配信」が合ったとして、その投稿を会員向けにメール配信する場合、真っ先に思いつくのはadd_shortcodeによってそれぞれのユーザー情報を表示してメールを送信しようかと考えましたが、複数宛に送信したいので使えません。
なので投稿本文をstr_replaceで置換して上げて、returnで返すようにしてあげれば簡単に実装できます。
後はwp_mail等で送信します。“`php:functions.php
function mail_shortcodes($user_id,$body){
$user_data = get_userdata($user_id);
$shortcodes = array(
‘nickname’ => get_user_meta($user_id,’nickname’,true),
‘user_email’ => $user_data->user_email,
);$shortcd = array();
$replace = array();
foreach ($sh
正規表現メモ
– 業務でちょっとした正規表現(半角英数字バリデーション)を書かないといけなかったので個人的メモです( preg_matchの中の一部抜粋 )
“`
/^[a-zA-Z0-9]+$/
“`
・先頭の「^」は文字列の初めからという意味
・[a-zA-Z0-9]に関しては> a~z、A~Z、0~9 の範囲
・「+」 は一回以上
・「$」 は文字列の最後までちなみに「+」 のところは「*」にしてしまうと「0回以上」という意味になり空白文字を受けつけるので気をつけないとですね。
ブラウザキャッシュ更新 プラグインでbaserCMSのスタイル調整や画像差し替えなどをすぐに反映する
https://market.basercms.net/products/detail.php?product_id=149&category_id=1
サイト改修などで、スタイルシートを変更したり、画像を差し替えたりした際に、ブラウザキャッシュが原因で、なかなか表示が変わらず困ったことはありませんか?
クライアントに改修を依頼されて、変更分をリリースしたところ、クライアントから「変更されてません」という連絡をもらった経験のある方もいらっしゃるかと思います。
こういったトラブルを防ぐために、一般的によく使われているのが、「更新したcssや画像ファイルにクエリストリングを付ける」といった方法です。
具体的には
“`“`
を更新したときには
“`“`
といった形で、拡張子に後ろに“`?{好きな文字}“`
Laravelで複合主キーを持つ中間テーブルへの値保存時のエラー: local.ERROR: Illegal offset type
## はじめに
– Laravelで複合主キーを持つ中間テーブルへの値保存時のエラーを解消する。
– 今回グループにユーザーを新たに招待して、招待したユーザーが参加を承諾すると中間テーブルに参加状態が保存されるということを行いたい前提で進めます。## エラー内容
– `local.ERROR: Illegal offset type {“userId”:4,”exception”:”[object] (TypeError(code: 0): Illegal offset type at /app/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php:1125)`## 現状
– ボタンを押すとグループに参加(ボタン押下でエラー)
“`php:sample.blade.php
5種類のテストダブルを知ろう!
# 初めに
株式会社ナイトレイの和田です。普段、自社サービスの開発に取り組んでいます。
現在私が関わっているプロダクトにユニットテストを導入しました(そのプロダクトではユニットテストが省略されていました)。依存箇所はモックに置き換えてテストすることになり、その際に学習したテストタブルについて共有します。
# テストダブルとは
ソフトウェアテストにおいて、SUTが依存しているコンポーネントを置き換える代用品のこと。
? SUTとは、「テストしている対象」を示すもの。ユニットテストの場合、テストスクリプトが実行する「テスト対象のクラスやメソッド」のことを指す。
# 5種類のテストダブル
## ①スタブ
### スタブとは
SUTの依存コンポーネントを置き換えて、都合の良い任意の値を返すテストダブルのこと。
スタブを利用するメリットは以下が挙げられる。
– **テスト対象が意図通りに動くか?をテストできる**(=SUTが依存コンポーネントの出力に左右されずに意図した出力ができるかどうかをテストできる)
– 依存コンポーネントの部分に決まりきった正しい挙動をするオブジェク
【PHP】配列のキーを並び替えて⦅駄菓子打線⦆組んでみた
# やりたいこと
懐かしの『駄菓子打線』が入った配列があります。
現状、背番号順に並んでいますが、このままの打順だと気に入らないので、
キー(背番号)の順番を並べ替えて、打順を組み替えたいと思います。![Noto Sans Black (2).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/694053/f21d1655-2db6-14cb-ec39-4f470b842bd7.png)
(打順について、異論は認めます。)
# 環境
PHP 8.0.1# PHPのソート関数
PHPで用意されている配列をソートする関数があれば、それを使いたいと思います。
公式を参照すると、これだけありました。| 関数名 | ソートの基準 | キーと値の相関関係 | ソート順 |
| —- | —- | —- | —- |
| array_multisort() | 値 | 文字列がキーの場合は維持し、数値添字配列の場合は維持しない | 最初の配列、
WordPressでSEOに強いサイトを作るにはコツがある!その方法を解説
たまにSNSなどで「WordPressはSEOに強い」みたいに言っている方がいます。
間違いなく言えることは、そのようなことを言っている方はSEOに詳しくありません。なぜそのように言えるのか?SEOに強いWordPressサイトを作るにはどうすればよいか解説します。
本記事はSEOコンサルやWebサイト制作でフリーランスをしている[ミツキ](https://twitter.com/ptnimz1987)が解説していきます。
さまざまなキーワードで上位を取った実績があり、[事例紹介](https://cotrot.net/case/)にて一部を紹介しています。SEOの基礎については、[SEOとは?初心者向けにわかりやすく解説](https://propagandes.info/seo/)も参考にしてみてください。
## WordPressに関するSEOの勘違い
まずは、WordPressに関するSEOについての勘違いからです。
よくある勘違いとしては、次に挙げる2つではないかと思います。### WordPressでサイトを作れば、どのようなサイトもSEOに強くなる
202
Laravelでログイン機能を実装する
## 認証機能に必要なデータベースを準備する
– phpMyAdminから任意の名前でデータベース(スキーマ)を作成します。
![スクリーンショット 2022-09-30 11.28.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2765288/196e30ce-1114-7c9d-0d5c-fa737f45c56a.png)
## プロジェクト内のファイルへデータベース情報を登録する
– プロジェクト直下.envファイル内部を作成したデータベースの情報に変更します
![スクリーンショット 2022-09-30 11.31.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2765288/37fb6e14-af27-3cdf-3faf-8e6e21ec8dc8.png)
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=[指定されているポート番号]
Python,Ruby,PHP,Java,JavaScript,PerlのPDF作成の比較
Python,Ruby,PHP,Java,JavaScript,PerlのPDF作成の比較
# Python
https://qiita.com/godan09/items/13866970972bf3a1c243
# Ruby
https://qiita.com/inoue9951/items/4498e5d130702d884352
# PHP
https://qiita.com/one_punch_man/items/bf140d4300195577dd3d
# Java
https://qiita.com/iceblue/items/a059c99ef1c17226a02a
# JavaScript
https://qiita.com/shuhei_sakiyama/items/ef68d49b7199d50a853b
# Perl
https://perlzemi.c
PHPで504 Gateway Time-outが出た時に確認すること
### PHP
`php.ini: max_execution_time`基本は、php.iniのmax_execution_timeを変更すると、タイムアウト時間を設定することができますが、
なぜか変更されないこともたまにある。そういうときは、
`/etc/php-fpm.d/www.conf: request_terminate_timeout`nginxの場合
`nginx.conf: fastcgi_read_timeout`この辺を変更すると、適用されたりします。
### AWS ELB
ここは見落としがちなのですが、
AWSのELBを使用している場合、属性の編集からアイドルタイムアウトの編集で適用されます。ということで、変わらない場合はこの辺を確認しましょう。
【Laravel】Eloquent モデルのプロパティ
Eloquent の理解を深めるため、プロパティの概要をまとめました。
([公式のドキュメント](https://laravel.com/docs/9.x)では各セクションにチラホラ
登場するだけで、一覧としてまとまっていなかったので…)| プロパティ名 | 概要 |
|—|—|
|$table|モデルに関連付けるテーブル名を指定する。
デフォルトは __モデル名の複数形__。|
|$primaryKey|主キーを指定する。デフォルトは __id__。
※主キーのカラム名が id 以外の場合に設定する必要あり。
複合主キーには非対応。|
|$keyType|モデルの主キーの型を指定する。デフォルトは __int__。
※モデルの主キーが整数でない場合に設定する必要あり。|
|$incrementing|主キーを自動インクリメントするかを指定する。
デフォルトは __false__。|
|$fillable|create() や fill() 等で追加、更新を許可する属性を指定する。
※\\$fillable, $guarded はどちらか
【Laravel / Rails】bulk insertについてまとめ
一度に複数のデータを1回のクエリでインサートしたいとき(bulk insert)、insert
## PHP/Laravel
クエリビルダの“`insert“`メソッド
“`php
DB::table(‘users’)->insert([
[‘email’ => ‘picard@example.com’, ‘votes’ => 0],
[‘email’ => ‘janeway@example.com’, ‘votes’ => 0],
]);
“`
https://readouble.com/laravel/9.x/ja/queries.html先輩エンジニアに聞いたところ、「bulk insertは使うとしたら100万件くらいのデータ量の場合だが極力使わないほうがいい」とのこと。
今回のプロジェクトではデータ量がそこまで大量ではなかったため、bulk insertは結局使わないことにした。
下記記事も参考になった。https://zenn.dev/naoki_oshiumi/articles/648a00bcd4d209
ただ、調べるとLar
【PHP】useとrequire_once完全に理解した
# ある日の公園
![カバオ泣く.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/694053/0c8bec47-f274-282f-16ff-cd4a54eb536b.jpeg)
カバお「うわぁーーーーーん」
ウサこ「どうしたの、カバおくん」
カバお「PHPで新しくファイルを作って呼び出したいだけなのにうまくいかないんだァ」
ウサこ「それ、**use**と**require_once**についてちゃんと理解できてる?」
カバお「あ、あ当たり前じゃないか、馬鹿にしないでよ、ウサこちゃん」
*どうやらカバおくんは*
*useとrequire_onceについて正しくを理解していないようです。*# useについて
ウサこ「カバおくんはuseについてどういう理解かしら?」
カバお「use宣言をすれば使いたいクラスが使えるようになるんだろォ」
ウサこ「その覚え方だと危険よ、正しくは**名前空間などをインポートしたり、エイリアスを作成することができる**イメージよ」
ウサこ
int型指定の引数にstringを渡すとintになる PHP
# 実行例
“`php
function test(int $num) {
var_dump($num);
}test(’99’);
// int(99) 実行結果
“`
string型の99をint型指定の関数に通すとint型の99に変換されます。# 参考
【PHP】ファイルアップロードにおけるPermission設定について
**【PHP】ファイルアップロードにおけるpermission設定について**
*この記事ではCentOS Linux 7にインストールしたPHP 7.1.29を使っています。*
*Server version: Apache/2.4.6 (CentOS)*# はじめに
画像ファイルをアップロードしようとしたところ、permissionエラーが発生。
原因とエラー解決までを纏めました。# 自分の置かれた状況
画像アップロード
“`html:upload.html“`
画像をimagesディレクトリに保存
“`PHP:img_save.php
$img_name = $_FILES[‘img’][‘name’]
M1MacでLaravel&Docker環境構築を簡単にやる方法 2022
# はじめに
Dockerでの環境構築を覚えるために学習したことをまとめてみました。
今回は、Laravel Sailを使って環境構築を行いました。# 目次
1. [事前準備](#Chapter1)
1. [Laravelアプリケーションの作成](#Chapter2)
1. [アプリケーションディレクトリに移動してLaravel Sailを起動](#Chapter3)
1. [phpMyAdmin追加(おまけ)](#Chapter4)
1. [参考文献](#reference)
# 事前準備
[Docker Desktop](https://www.docker.com/products/docker-desktop/)をインストールします。
# Laravelアプリケーションの作成
「example-app」という名前のディレクトリに新しいLaravelアプリケーションを
Laravel Sailのtinkerで日本語が表示できない時の対応方法
Sailの環境を構築して、tinkerで日本語を表示すると以下のようになりました。
Dockerfileをカスタマイズすることで、日本語も表示できるようになったので、その時の手順を書いておきます。“`
% sail tinker
Psy Shell v0.11.8 (PHP 8.1.10 — cli) by Justin Hileman
>>> print(‘あああ’)
<81><82> <81><82> <81><82> <8F><8E>
=> 1
“`# 環境
“`
% sail artisan -V
Laravel Framework 9.31.0% sail version
Docker Compose version v2.10.2
“`# 対応方法
docker-compose.ymlのservices.laravel.test.build.contextで指定したバージョンに対応するDockerfileをカスタマイズします。
ここでは、services.laravel.test.build.contextが`./do
【PHP】 Range関数に第三引数あったんやね
## 第三引数step
指定した範囲の数字配列を作る時にrangeをよく使います。
第三引数で2づつ増える、3づつ減るなどを指定できるようでした。
“`php:昇順
$ranges = range(1,100,2);array:50 [▼
0 => 1
1 => 3
2 => 5
3 => 7
4 => 9
5 => 11
6 => 13
7 => 15
8 => 17
9 => 19
10 => 21
11 => 23
12 => 25
……
]
“`“`php:降順
$ranges = range(100,1,-3);array:34 [▼
0 => 100
1 => 97
2 => 94
3 => 91
4 => 88
5 => 85
6 => 82
7 => 79
8 => 76
……
]
“`> 第三引数、-数値でも+数値でも挙動が変わらなかった。
##第三引数あったの知らなかった