PHP関連のことを調べてみた

PHP関連のことを調べてみた

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

元記事を表示

Laravel 開発の効率を向上: あまり知られていない 5 つの Artisan コマンド

![微信图片_20240923112940.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3893259/e9fc47da-0801-718e-a76f-640aec39bef3.png)

Laravelはその優れた文法と開発者に優しい機能で知られていますが、その強力なコマンドラインツールであるArtisanはさらにその価値を高めています。多くの開発者が一般的なArtisanコマンドに精通している一方で、開発効率を大幅に向上させることができるあまり知られていないコマンドもいくつかあります。この記事では、そのようなコマンドを5つ紹介し、どのようにワークフローを最適化できるかを探ります。

## 1. `php artisan event:generate`

Laravelのイベントシステムは、アプリケーションのさまざまなコンポーネントを分離して、より保守性と拡張性を高める強力な方法です。`event:generate`コマンドは、アプリケーション内で定義したイベントに基づいて、イベントクラスとリスナー

元記事を表示

DockerでPHP8.2+MySQL8.0の環境を構築する

## はじめに
この記事では、DockerでPHP+Apache+MySQLの環境を構築し、DBから取得したデータをWebサーバー上で表示するまでの手順を紹介する。

環境情報と、最終的なディレクトリ構造は以下の通り。
appディレクトリでPHP+Apacheのコンテナを、mysqlディレクトリでMySQLのコンテナを起動し、PHP側からMySQLに接続するイメージ。
| |環境情報 |
|—|—|
|PC |Apple M1 Pro |
|OS |Sonoma 14.4 |
|Docker |27.2 |
|PHP |8.2 |
|Apache |2.4 |
|MySQL |8.0 |

“`terminal
docker_practice $ tree .
.
├── app
│ ├── Dockerfile
│ └── src
│ └── index.php
└── mysql
├── Dockerfile
├── data
└── init.sql

5 directories, 4 files

元記事を表示

【PHP next】PHPに静的コンストラクタが導入されるかもしれない

静的コンストラクタとは、[C#では静的コンストラクタ](https://learn.microsoft.com/ja-jp/dotnet/csharp/programming-guide/classes-and-structs/static-constructors)、[Javaでは静的イニシャライザ](https://qiita.com/b1ueskydragon/items/2a6e0812a9cee3fc255f)、[KotlinではCompanion objects](https://kotlinlang.org/docs/object-declarations.html#companion-objects)と何故か言語ごとにバラバラの名前で呼ばれている機能です。
実は細かい違いがあるのかもしれませんがよくわかりません。

“`java:Java
public class Hoge{
static {
System.out.println(“hoge”);
}
}
“`

このメソッドは、このクラスを初めて使おうとしたときに最大一回だけ実行されます。
使おう

元記事を表示

【PHP】Spotify API使うまでの流れ

## 概要
Spotify APIを使用して色々な楽曲のデータなど取得するための手順をまとめました。

API叩いてデータを取得するところまでが今回のゴールになります。

## 対象者
– PHP使っている方
– Dockerを使用している方
– APIからデータ取得してみたいという方

## 手順

### 準備
#### 準備1. アカウントIDとキーを確認する:pick:
Spotify APIを使用する際にはアカウントを登録する必要があります。
(フリープランでもOK!)
登録後、[開発者用ダッシュボード](https://developer.spotify.com/)にアクセスしてIDとキーを取得します。
※このIDとキーが肝です。
![スクリーンショット 2024-09-23 135758.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3877267/2d70cfb7-f271-65f8-43b3-a95d8560b6b3.png)
App nameとか色々と入力する項目があるかと思いますが

元記事を表示

DockerでPHP+Apacheの環境を構築する

## はじめに
この記事では、Docker環境を構築するための準備から、PHP+ApacheのWebサーバー上で`”Hello World!”`を表示するまでの手順を紹介する。

| |環境情報 |
|—|—|
|PC |Apple M1 Pro |
|OS |Sonoma 14.4 |
|Docker |27.2 |
|PHP |8.2 |
|Apache |2.4 |

## 1. Docker Desktopをインストールする
(1) [公式サイト](https://matsuand.github.io/docs.docker.jp.onthefly/desktop/mac/install/)からDocker Desktop for Macをダウンロードし、Applicationsフォルダに追加する。

元記事を表示

Laravel 11 とりあえずAPIサーバーを立ててみる。

バックエンドを人に任せているが、せめてAPIだけでも使えるようになってないとフロントエンド開発しにくいなあと言うことで、簡易的にAPIサーバーを立てて値の取得することに。

とりあえずGET前提で試してみる。
## 一応環境
Laravelバージョン 11
php 8系

## プロジェクト作成
“`shell
laravel new api-server
“`
## Controller作成
今回はApiControllerという名前で作成する。

“`shell
php artisan make:controller ApiController
“`
app/http/controllers/ApiController.phpが作成される。

## メソッド作成
ApiControllerを開いてメソッドを追加する。
“`php
public function apitest(){
return response()->json([‘message’ => ‘hello world!’]);
}
“`
## ルート設定
routeにapi.phpを新規作成す

元記事を表示

OTHERカテゴリの最新記事