- 1. 【PHP】Carbon使用する時に気をつけること
- 2. Laravelでテーブルのカラムを変更するための方法
- 3. WordPressで各ページのh1に任意の画像を設定する方法
- 4. PHPStanのエラー箇所へ1クリックで飛べるようにする設定
- 5. VSCodeの型ヒント表示を無効化する
- 6. Strategies to Improve Your Design Skill
- 7. Laravel ORM(Eloquent)チートシート
- 8. 171日目 Laravel(PHP)でマイグレーションファイルを使いこなそう! by社畜♀
- 9. 【Laravel】X-Forwarded-ForからIPアドレスを取得する方法!
- 10. 独習PHP 第4版のアウトプット(第1章_PHPに必要な知識_前半)
- 11. phpのオブジェクト指向の整理
- 12. Laravel+Breezeの簡易的な管理者機能
- 13. PHPで作ったウェブサービスにおいて、よく使われるアルゴリズム
- 14. PHPで書いたコードのメモリ消費だとかのベンチマークを取得するには?
- 15. PHPでメモリ使用量を調べるには
- 16. PHPで、親に変数を置いて引数で値を渡すのと、関数内で毎回定義するのはどちらが良い?
- 17. LaravelとSymfonyの比較:プロジェクトに最適なPHPフレームワークを選ぶ
- 18. Windows環境にPHPとLaravelをセットアップし、Dockerで環境構築する手順
- 19. PHPのstaticとは?
- 20. 【Laravel】特定のレコードを先頭に並べる方法!
【PHP】Carbon使用する時に気をつけること
# はじめに
Carbon使用する時に気をつけたいと思ったのでメモです。# SubMonthsメソッド
– 1ヶ月前を取得を検索するとだいたい`subMonth()`メソッドが結果としてよく出ているが、月末になると日付がずれてしまうので注意が必要。
“`
$date = new Carbon(‘20241031’)->subMonth(1);
echo($date);
“`– 結果は`2024-10-01 00:00:00`になり、期待している`2024-09-30 00:00:00`にはならない。CarbonはDateTimeのラッパーとして、存在しない日付に対して適切に調整してくれるらしい。この場合は9月31日は存在しないので、10月1日に調整してくれているみたい。
# subMonthsNoOverflowメソッド
– 上記のようにならないために`subMonthsNoOverflow`を使用すると良いみたい。
“`
$date = new Carbon(‘2024-10-31’)->subMonthsNoOverflow(1);
echo $date;
Laravelでテーブルのカラムを変更するための方法
# はじめに
Laravelを使ってアプリを作る際にテーブルのカラム変更が発生した場合のマイグレーションの備忘録として記録します。# (例)User Tableのカラムを変更したい場合
(注意)
テーブルの更新をする場合は、あらかじめデータのバックアップを取得しておいてください。ユーザーテーブルを例に説明します。
(更新前)
|ユーザー名|メールアドレス|パスワード|作成日|更新日|
|———|————-|——–|——|——|
|Qiitaたろう|taro@qiita.com|qiitAbc|2024-01-01|2024-02-01|(更新後)
|ユーザー名|メールアドレス|パスワード|作成日|更新日|権限|
|———|————-|——–|——|——|—-|
|Qiitaたろう|taro@qiita.com|qiitAbc|2024-01-01|2024-02-01|true|権限の列を増やしたい場合、Mig
WordPressで各ページのh1に任意の画像を設定する方法
WordPressで各ページのh1に任意の画像を設定する方法を紹介します。
## 使用しているテーマとプラグイン
テーマ:[Cocoon](https://wp-cocoon.com/)
プラグイン:[Advanced Custom Fields](https://www.advancedcustomfields.com/)## カスタムフィールドの設置
プラグイン『[Advanced Custom Fields](https://www.advancedcustomfields.com/)』をインストール&有効化して、`Field Type`を`image`に設定します。
`Field Label`に適当な名前を付けて保存します。![image.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1902958/ed6b2cd1-d529-5abb-fedb-87ac782b802d.jpeg)
これで、各ページの編集ページの下部にカスタムフィールドが出現します。↓
![postedit.pn
PHPStanのエラー箇所へ1クリックで飛べるようにする設定
# 初めに
PHPStanで解析をした際、エラーの箇所をいちいち手動で開くのってちょっと面倒ですよね。
今回は、エラーの箇所にすぐに飛べるようになる設定をご紹介します。# エラーの箇所に飛びたい!
PHPStanでエラーを検出すると以下のような結果が出力されます。“`sh
$ ./vendor/bin/phpstan analyse
Note: Using configuration file C:\path\to\project\phpstan.neon.
3/3 [============================] 100%—— ————————————————————————–
Line level\Level0.php
—— ————————————————————————–
:759 Method Util\Level0
VSCodeの型ヒント表示を無効化する
# 課題
VSCodeバージョンアップで、関数の引数や返値の型ヒントが自動的に表示されるようになった。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/20427/a1e85986-ac6c-f390-09ae-aadaafc7da8a.png)
邪魔なことが多いので非表示にしたいが、設定方法の発見に意外と時間がかかったのでメモ。
# 解決
変更する設定 : `Editor › Inlay Hints: Enabled`![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/20427/0fa711c3-23dd-c784-2aa2-45fd30302bc4.png)
`off`にすると非表示にできます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/20427/7b7017
Strategies to Improve Your Design Skill
What are the best strategies to improve your design skills? Although graphic design is a fantastic sector, it is always changing and developing. This implies that sometimes graphic designers may feel as if their graphic design abilities are no longer current and that they have been left behind in the business. Does it sound very familiar? Do not panic; all you have to do is return your design abilities to their previous brilliance! Therefore, here are many strategies to hone your graphic design
Laravel ORM(Eloquent)チートシート
# Laravel ORM(Eloquent)チートシート
## モデル操作の詳細
### モデルの定義
“`php
class User extends Model
{
// テーブル名の指定(デフォルトはモデル名の複数形)
protected $table = ‘users’;// 更新可能なカラム
protected $fillable = [‘name’, ‘email’, ‘password’];// 非表示にするカラム(例: JSONシリアライズ時)
protected $hidden = [‘password’];// キャストするデータ型
protected $casts = [
‘email_verified_at’ => ‘datetime’,
];
}
“`### データの取得(詳細)
“`php
// 全件取得
$users = User::all();// 条件付き取得(1件だけ)
$user = User::where(‘email’, ‘
171日目 Laravel(PHP)でマイグレーションファイルを使いこなそう! by社畜♀
# 第2話《マイグレーションって便利だなぁ~》
Laravelのマイグレーションを触る機会があり、理解できると楽しかったのでまとめておきたいと思います!
自分と同じような人の助けになればなによりです。:bow_tone1:Laravelのマイグレーションは、データベースのスキーマ(テーブル構成やカラムなど)を簡単に管理・変更するための強力なツールです。
主にWebアプリケーションフレームワークで使用され、データベース構造の変更をコードで管理できるため、変更履歴を追跡することが可能です。
また、マイグレーションはバージョン管理システムを通じて他の開発者と共有することも簡単に行えます。:ok_hand_tone1:## マイグレーションの基本コマンド
Laravelでは、マイグレーションを管理するためのさまざまなコマンドが用意されています。
**1.マイグレーションファイルの作成**
新しいマイグレーションファイルを作成するには、Laravelプロジェクトのルートディレクトリで以下のコマンドを実行します。
“`bash:bash
php arti
【Laravel】X-Forwarded-ForからIPアドレスを取得する方法!
泉([@izumin_0401](https://twitter.com/izumin_0401))です。
今回は、LaravelでX-Forwarded-ForからIPアドレスを取得する方法を解説するンゴ。
# ブログ記事はこちら
https://traveler0401.com/laravel-x-forwarded-for/
# 【Laravel】X-Forwarded-ForからIPアドレスを取得する方法
“`php
header(‘X-Forwarded-For’);if ($forwardedFor) {
独習PHP 第4版のアウトプット(第1章_PHPに必要な知識_前半)
こんにちは。
PHP & Laravelを使用する企業に内定したため、先取学習を始めました。
「独習PHP 第4版」を読んだ内容を、簡潔的にまとめております。
最新の知見も合わせると情報に古い箇所もあるため、その点はアップデートしました。
早速、第1章_前半で学んだ内容をアウトプットしていきます。
## 第1章 イントロダクション 前半
### PHPについて
**PHP**は**Webアプリケーション**の作成を容易にするために開発された、**サーバーサイドのスクリプト言語**です。
スクリプト言語とは、主にウェブ開発やタスクの自動化に使用される高水準(人間に読みやすい)のプログラミング言語です。
また、Webアプリケーションとは、インターネットを経由して利用できるサービスやアプリのことで、具体的にはGoogleの検索エンジンやAmazonのショッピングサイトなどがあります。
### クライアントとサーバー
Webの世界では「**クライアント**」と「**サーバー**」という概念があります。
– **クライアント**:情報を受け取る側、つまりユーザーのデバイス
phpのオブジェクト指向の整理
# 始めに
オブジェクト指向はクリーンアーキテクチャするうえでは持っておきたい知識だと思ってる。今まで以下のような書籍を読んだが、これから会社都合でガッツリlaravel書くことになりそうなのでphpならどんなふうに考えるのかの整理のために書いていく
# 今まで読んだオブ脳関係
(多分絶版だけど。アフィリンクじゃないよ!)
メルカリにも中古は有るよ。
### オブジェクト指向設計実践ガイド(Ruby)
Ruby触るならイメージ湧きやすと思う。https://www.amazon.co.jp/%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E6%8C%87%E5%90%91%E8%A8%AD%E8%A8%88%E5%AE%9F%E8%B7%B5%E3%82%AC%E3%82%A4%E3%83%89-Ruby%E3%81%A7%E3%82%8F%E3%81%8B%E3%82%8B-%E9%80%B2%E5%8C%96%E3%81%97%E3%81%A4%E3%81%A5%E3%81%91%E3%82%8B%E6%9F
Laravel+Breezeの簡易的な管理者機能
Laravelを使ったWebアプリを作成中、管理者機能を作る必要があり、簡易的に機能を作ったので備忘録として残しておきます。筆者は、Laravel初学者なのでかなり強引に作っているかと思います。その点はご了承ください。
(本当は、Laravel Permissionなどを使ったほうがいいと思います)### 環境
・Laravel 10.48.20
・PHP 8.2.21
・Breeze### 経緯
特定の機能は管理者のみに表示したいので、管理者機能を作りたい。
初期データで管理者を入れ、ほかの新規登録ユーザーは自動的に一般ユーザーにしたい。### 具体的なコード
“`php:users_table
public function up(): void
{
Schema::create(‘users’, function (Blueprint $table) {
$table->id();
$table->string(‘name’);
$table->string(‘e
PHPで作ったウェブサービスにおいて、よく使われるアルゴリズム
PHPで作られたウェブサービスでは、以下のようなアルゴリズムがよく使われます:
## 検索・フィルタリングアルゴリズム
多くのウェブサービスで重要な機能である検索やフィルタリングには、以下のアルゴリズムが活用されます:
– 全文検索アルゴリズム
– フィルタリングアルゴリズム(例:価格範囲、カテゴリー等)
– ソートアルゴリズム(例:人気順、新着順等)これらは、ぐるなびやRettyなどの飲食店検索サービス、CAMPFIREのようなクラウドファンディングサイト、一休.comのような旅行予約サイトで頻繁に使用されています。
## レコメンデーションアルゴリズム
ユーザーの行動履歴や属性に基づいて、おすすめのコンテンツや商品を提示するアルゴリズムです。Facebookのおすすめの友達機能やタイムラインの表示などに使用されています。
## ページネーションアルゴリズム
大量のデータを複数のページに分割して表示するアルゴリズムです。多くのウェブサービスで利用されており、ユーザーエクスペリエンスの向上に貢献します。
## キャッシュアルゴリズム
頻繁にアクセスされるデータをメ
PHPで書いたコードのメモリ消費だとかのベンチマークを取得するには?
PHPでコードのメモリ消費やパフォーマンスのベンチマークを取得するには、以下のような方法があります:
## memory_get_usage() 関数の活用
PHPの組み込み関数 `memory_get_usage()` を使うことで、現在のスクリプトが使用しているメモリ量を簡単に測定できます。
“`php
$startMemory = memory_get_usage();// ベンチマークしたいコード
$endMemory = memory_get_usage();
$memoryUsed = $endMemory – $startMemory;echo “使用メモリ: ” . $memoryUsed . ” バイト”;
“`## 時間計測との組み合わせ
メモリ使用量と実行時間を同時に計測することで、より包括的なベンチマークが可能です:
“`php
$startMemory = memory_get_usage();
$startTime = microtime(true);// ベンチマークしたいコード
$endTime = microtime
PHPでメモリ使用量を調べるには
PHPでメモリ使用量を調べるには、主に以下の2つの関数を使用します:
1. `memory_get_usage()`
2. `memory_get_peak_usage()`これらの関数を使って、以下のようにメモリ使用量を測定できます:
## メモリ使用量の測定方法
1. **現在のメモリ使用量を測定**:
“`php
$currentMemory = memory_get_usage() / (1024 * 1024);
echo “現在のメモリ使用量: ” . $currentMemory . ” MB\n”;
“`2. **ピーク時のメモリ使用量を測定**:
“`php
$peakMemory = memory_get_peak_usage() / (1024 * 1024);
echo “ピーク時のメモリ使用量: ” . $peakMemory . ” MB\n”;
“`## 比較方法の例
異なる実装方法のメモリ使用量を比較するには、以下のようなアプローチが有効です:
“`php
function
PHPで、親に変数を置いて引数で値を渡すのと、関数内で毎回定義するのはどちらが良い?
PHPでメモリ使用の観点から、親に変数を置いておいて引数で値を渡す方法と、関数内で毎回定義する方法を比較すると、一般的には以下のような違いがあります:
## 親に変数を置いて引数で渡す方法
– **メリット**:
– 変数が一度だけ定義されるため、複数回の関数呼び出しでも同じメモリ領域を再利用できます
– PHPのコピーオンライト(Copy-On-Write)機能により、変数が変更されない限り追加のメモリは使用されません– **デメリット**:
– 大きなデータを引数として渡す場合、関数呼び出し時に一時的にメモリ使用量が増加する可能性があります## 関数内で毎回定義する方法
– **メリット**:
– 関数のスコープ内でのみ変数が存在するため、関数終了時にメモリが解放されます
– 大きなデータを扱う場合、必要なときだけメモリを確保できます– **デメリット**:
– 関数が頻繁に呼び出される場合、変数の再定義によるオーバーヘッドが発生する可能性があります## 結論
メモリ節約の観点からは、以下のように考えられます:
1. **小さなデー
LaravelとSymfonyの比較:プロジェクトに最適なPHPフレームワークを選ぶ
![_20240925151048.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3893259/6ec2e7ec-3d60-474a-1e2a-560e33732343.png)
PHP開発において、適切なフレームワークを選ぶことは、効率的でスケーラブル、かつメンテナンスしやすいアプリケーションを構築するために重要です。[Laravel](laravel.com)と[Symfony](symfony.com)は、最も人気のあるPHPフレームワークの2つであり、それぞれ独自の強みと限界があります。本記事では、両者を詳細に比較し、情報に基づいた選択をサポートします。
## Laravelの概要
Laravelは、2011年にTaylor Otwellによって作成され、ウェブ開発の体験を簡素化し、向上させることを目的としています。優雅な構文、充実したドキュメント、活発なエコシステムで知られています。Laravelのエコシステムには、Laravel Forge、Laravel Nova、Laravel
Windows環境にPHPとLaravelをセットアップし、Dockerで環境構築する手順
# Windows環境にPHPとLaravelをセットアップし、Dockerで環境構築する手順
この投稿は、WindowsにPHPをインストールし、Laravelアプリを作成、そしてDockerを使ってLaravelアプリを動かす手順の記録用です。
## 1. PHPのインストール手順
### 1-1. PHPのダウンロードと解凍
1. [PHP公式サイト](https://www.php.net/downloads)から最新のPHPをダウンロードします。
2. ダウンロードしたZIPファイルを任意のフォルダに解凍します。例えば、`C:\php`フォルダを作成して、その中に解凍します。### 1-2. PHPのパスを環境変数に設定
1. スタートメニューの検索バーに「環境変数」と入力し、「システム環境変数の編集」をクリック。
2. 「システムのプロパティ」ウィンドウが開いたら、「環境変数」ボタンをクリック。
3. 「システム環境変数」の「Path」を選択し、「編集」をクリック。
4. PHPの解凍先フォルダ(例: `C:\php`)のパスを追加。
5. 「OK」をクリ
PHPのstaticとは?
## はじめに
現場で使ったことのないstaticについて勉強したのでアウトプットです。
いろいろアドバイス、訂正など教えてください!## staticってなに?
staticを翻訳させると「静的」という意味になる。
確かにインスタンスを作ってインスタンス側で使うプロパティやメソッドに比べて
staticなプロパティやメソッドはクラス側で使うので動きは少ないが、、、初学者の自分からすると結構動いてない?「動的」じゃないの?って思ってしまう。
ただ上記にも書いてあるが明らかな違いとしては、
インスタンス側にあるプロパティやメソッドはインスタンス毎にそれぞれのプロパティやメソッドを持てるのに対し、
staticで使うプロパティやメソッドはクラス側に持っているのでインスタンスがいくら作られても、1つだけ存在するということ。#### 「インスタンス単位ではなく、クラス単位で値を保持する」時に使う。
## 動的と静的のコードの書き方の違い
定義↓
“`diff_PHP
【Laravel】特定のレコードを先頭に並べる方法!
こんにちは、泉([@izumin_0401](https://twitter.com/izumin_0401))です。
今回は、Laravelで特定のレコードを先頭に並べる方法を解説するよ!
# ブログ記事はこちら
https://traveler0401.com/laravel-partition-flatten/
# Laravelで特定のレコードを先頭に並べる方法
例えば、ユーザマスタがあって、IDが「0003」のレコードを先頭にしたい場合は以下。
“`php
$users = DB::table(‘mst_user’)
->orderByRaw(‘id’)
->get();return $users->partition(function ($user) {
return $user->id === ‘0003’;
})->flatten();
“`超スマート!!
# まとめ
ChatGPTに聞いたのは内緒だよ。# 最後に
暇つぶしに[Twitter](https://twitter.com/izumin