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

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

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を新規作成す

元記事を表示

【個人開発】自分だけのベストアルバム一覧を作れるサービスを開発しました

### 概要
今まで聴いてきた音楽の中から「自分だけのベスト10」をアルバムアートを表示しつつ一覧にできるサービスを作成しました:v::headphones::headphones:

個人的に使うだけなのでリンクは特に掲載しません。

実際に使用しているキャプチャも最後まで載せたいところですが、アルバムアートは著作権的にアウトだと思いますので、途中までになります。
![3capture.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3877267/c1d21ae9-4f28-8a70-4144-dd66f73c498d.gif)

実際にはこのあとアルバム一覧が表示→アルバムを選択したらアルバムアートが一覧で表示できます。

### 開発背景
友人とよく「◯◯ベスト10」というような話をします。ゲームだったり映画だったり…
それぞれの好きなものがわかりますし、色んな視点を聞くことができるので個人的にはすごく楽しい話題だと思っています。
この話をするときに視覚的な情報も一緒にあるとよりイメージつきます

元記事を表示

Dockerを使ったLaravel8の環境構築

# やりたいこと
– Docker 及び Compose のインストールをしたい
– Docker を起動したい
– 起動した Docker 上で localhost のサーバーを立ち上げたい

# 前提
– OS
– macOS Sonoma 14.6
– 各バージョン
– PHP 8.2.10
– Laravel8
– Laravel8 のプロジェクトは作成済み
– 参考:https://qiita.com/s-y0001/items/60d9ee491264486b7454#%E5%89%8D%E6%8F%90

# Docker Desktopのインストール
https://matsuand.github.io/docs.docker.jp.onthefly/desktop/mac/install/

私の場合は「IntelチップのMac」からDocker.dmgをダウンロードし、インストール手順を実施しました。
インストールが完了しアカウント登録まで済むと Docker Desktop の起動に成功します。 

ちなみに、Docker Desk

元記事を表示

PHP技術者初級認定試験のための基礎振り返り③

# ファイル操作
**1. ファイルの読み込み**
PHPでは、fopen、fread、fgets、file_get_contentsなどの関数を使用してファイルを読み込むことができます。

file_get_contents
file_get_contents関数は、ファイル全体を文字列として取得します。
“`

“`
**2. ファイルの書き込み**
ファイルにデータを書き込むには、fopen、fwrite、file_put_contentsなどの関数を使用します。

file_put_contents
file_put_contents関数は、ファイルにデータを書き込みます。ファイルが存在しない場合は新しく作成し、既存のファイルがある場合は上書きします。
“`

元記事を表示

PHP技術者初級認定試験のための基礎振り返り②

# 文字列操作
**1. 文字列の結合**
PHPでは、文字列の結合にドット演算子(.)を使用します。
“`

“`
**2. 文字列の長さを取得する**
strlen関数を使うと、文字列の長さを取得できます。
“`

“`
**3. 部分文字列を取得する**
substr関数を使うと、文字列の一部を抽出できます。
“`

“`
**4. 文字列の検索と置換**
文字列の中の特定の部分を検索したり、置換したりするためにstrposと

元記事を表示

Docker CentOS7にPHP7.1+MySQL+Apache環境構築

## 概要
Dockerでタイトルの環境を構築する設定ファイルを残しておく。
CentOS7上に構築すると躓くところが多かった…

## 環境
– OS
– CentOS 7
– 言語
– PHP 7.1.
– DB
– MySQL 8.0.32

## 設定ファイル

### docker-compose.yaml
“`docker-compose.yaml
services:
mysql:
image: mysql:8.0.32
container_name: mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: mysql
MYSQL_PORT: 3306
ports:
– 3307:3306
volumes:
– type: volume
source: mysql_data
target: /var/lib/mysql
– type: bind

元記事を表示

PHP技術者初級認定試験のための基礎振り返り

# PHPとは何か
PHPは「Hypertext Preprocessor」の略で、動的なウェブページを生成するためのサーバーサイドスクリプト言語です。PHPはHTMLに埋め込んで使用でき、データベースと連携することで、インタラクティブなウェブアプリケーションを作成することが可能です。

# PHPの基本構文
***1. PHPタグ***
PHPコードはの間に記述します。以下は基本的なPHPタグの例です。
“`

“`
**2. 変数とデータ型**
PHPでは、変数は$記号で始まります。変数に値を代入することで使用します。PHPの主なデータ型には以下のようなものがあります。

整数型 (integer): 整数値を扱います。
浮動小数点型 (float): 小数点を含む数値を扱います。
文字列型 (string): 文字列を扱います。
配列型 (array): 複数の値を一つの変数に格納します。
ブール型 (boolean): trueまたはfalseの値を持ちます。
例:
“`

元記事を表示

OTHERカテゴリの最新記事