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

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

「同じ意味なのに別の名前のカラム」を統一して、マージして一緒に使う。

## はじめに
タイトルのようなことはそんなにないと思う。
なぜならテーブルのカラム名を変えた方が正しい判断だから。

例えば
講座履歴テーブルのcourse_table_id
講座情報テーブルのcourse_id 

この二つは同じ意味で使われる為、統一するべき。
けどカラムを変えられないケースもあるので今回この話題で記事を投稿する。

## キーを作成する

“`
// テーブルのデータを取得する
$table_array1 = SELECT * FROM …..;
$table_array2 = SELECT * FROM …..;

// $table_array2のキーを作成する
foreach ($table_array2 as $loop_value) {
$loop_value->course_id = $loop_value->course_table_id;
}
“`

上記のコードのように
①foreach文で中身を展開
②左側に新しく追加したいキーを。右側に新しく追加するキーの値を書けばOK
※今回変更ではなく、新たにキーを追加したのでcours

元記事を表示

SQLではなく、PHPでページネーションを実装する。

ページネーションを実装する際は
通常はSQLで取得する際にOFFSETとLIMITで取得するデータに制限をかけるが
今回はSQLではなくPHPでページネーションを実装する。
 
 
この際にJOINを使って結合もせず、PHPでMERGEを行う。
(独自関数をいじりたくないので無理やり。)
※フロント側も載せる。
 

### バック側実装
“`
$table_array1 = 独自関数でDBのデータを取得。
$table_array2 = 独自関数でDBのデータを取得。
$table_array3 = 独自関数でDBのデータを取得。

// ひとつにまとめる
$table_list = array_merge($table_array1, $table_array2, $table_array3);

// 並び替え(DAYカラムで降順)
$sort_value = array_column($table_list, ‘DAY’);
array_multisort($sort_value, SORT_DESC, $table_list);

// 【ページャー作成】 

//

元記事を表示

コミュニケーション型Web地図(Limit12、地図の伝言板)

コミュニケーション型のWeb地図を2つ作ってみました。

1つは、自由投稿型の「Limit12」(クチコミWeb地図)。
もう一つは、グループ内情報共有型の「地図の伝言板」です。

【Limit12】
https://chosashi-data.org/shirado/limit12/

【地図の伝言板】
https://office-shirado.com/dengon/
![イメージ_01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/67836/f2d7870b-a7c0-9b01-7f24-fe3a5622dd98.png)
![イメージ_02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/67836/c54364a9-9c3a-cf3d-7ca7-2edb51b94eca.png)

どちらとも、機能はシンプルで、Web地図上に、ダブルクリック(ダブルタップ)でメモを投稿(プロット)するだけです。

「リミット

元記事を表示

date(‘Ym’, strtotime(‘2024-08’))とdate(‘Ym’, strtotime(‘202408’))の罠

`202408`は**Ym**と評価されるのではなく、**His**として評価されるので実行日の20時24分08秒になります。気をつけてください
“`php
date(‘Ym’, strtotime(‘2024-08’)) !== date(‘Ym’, strtotime(‘202408’))
“`

https://www.php.net/manual/ja/datetime.formats.php#:~:text=%27t%27%3F-,HH%20MM%20II,-%22040837%22%2C%20%22T191919%22

元記事を表示

VScodeプラグイン 各言語おすすめ

VScodeの拡張機能について各言語ごとにまとめる

## 共通

### Japanese Language Pack
 日本語化するための言語化パック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3879789/dab28482-ae62-81f6-c8c9-d89dad705f12.png)

### Code Spell Checker
スペルチェック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3879789/b106fc87-20c2-9cf9-b235-b6c52f836d0e.png)

### vscode-icons
アイコン表示
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3879789/48d74c47-fa84-433c-461b-f448ab0c9157.p

元記事を表示

Laravel PHPコマンドを使いこなす

LaravelでのWebアプリケーションの作る際の初期段階として、migrationを使用したDB操作のやり方について随時更新していく

### DBの作成
migrationではDBの作成自体はすることができないため、PHPMyAddmin等でDBをあらかじめ作成しておく

DB作成については[こちら](https://qiita.com/aMASSO/items/08e1ee8b2245d0f524e4)

### テーブル作成
“`
php artisan make:model {table名} -m
php artisan migration
“`

### ログイン機能の実装
デフォルトのログイン機能を実装
“`
composer require laravel/ui
php artisan ui bootstrap –auth
npm install && npm run dev
“`

元記事を表示

未経験から独学でポートフォリオの完成まで【Laravel / MySQL】

# はじめに
2024年1月から独学でプログラミングの学習を始め、
ポートフォリオが完成するまでにやってきたことをまとめたいと思います。

## 目次

1. ポートフォリオの紹介
1. 使用技術
1. 基本設計
1. 開発の進め方
1. 学び
1. 苦労したこと
1. 課題
1. 最後に

# 1. ポートフォリオの紹介

◾️サービスの概要
農業体験イベントの情報や農業に関する知識をブログを通じて発信するサービスです。農業に興味のある方や新たに始めようとする方々に向けて、情報を提供します。

![スクリーンショット 2024-09-09 17.56.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3835741/005d4dd2-1340-a46d-b48f-49337a03b780.png)

◾️開発の背景
父の農業を手伝う中で、何か自分にもできることはないかと考え、このWebアプリケーションを作成しました。農業に挑戦したいがどこから始めればいいのか分からない人や、知識や技術を求めている

元記事を表示

PHPUnit 10 以降で withConsecutive を使いたい場合の 2 つの方法

こんにちは。やまゆです。

https://github.com/sebastianbergmann/phpunit/issues/5063

PHPUnit 9 でモック用の `withConsecutive` メソッドが deprecated になり、 10 で削除されました。

このメソッドは、同じメソッドを連続して呼ぶ場合のモック定義として有効でした。

例えば、このような実装コードがあるとします。

“`php

元記事を表示

【Laravel】NGワードを精度高く検知する機能を開発してみる

こんにちは!
サーバーサイドエンジニアからフルスタックエンジニアにテラ進化したいすぎちゃんです! :cat:

今回はNGワードを**精度高くマスキング**する機能についてお話ししたいと思います!

さて、このNGワードマスキング機能はどのような効果をもたらすでしょうか?

– サービス利用者の心理的安全性の向上
– カスタマーサポート対応の負担軽減
– エンジニアによるデータベースクリーニング作業の削減
([実際に被害にあった人の声](https://qiita.com/nasuB7373/items/10bebd8e9f0b3331f348))

などなど・・・
まさに三方良しの機能と行っても過言ではありません。

実際に配信サービスやオンラインゲームにも、NGワードに対してなんらかの処理をかける機能が搭載されています!

:::note info
– [**ニコニコ生放送**](https://dic.nicovideo.jp/a/%E3%83%8B%E3%82%B3%E3%83%8B%E3%82%B3%E7%94%9F%E6%94%BE%E9%80%81%3A%E9%81%8

元記事を表示

環境構築メモ – Laravel編

環境構築としてLaravelのセットアップについて記録しておく
今回はUbuntu上にLaravelをインストールする

[Ubuntuのインストールはこちら](https://qiita.com/aMASSO/items/c436339ad183a9dbb545)
[PHP・MySQLのインストールはこちら](https://qiita.com/aMASSO/items/08e1ee8b2245d0f524e4)

### 1.nodeのインストール
※sudo apt でインストールされるnodeは古い為、nvm(ノード バージョン マネージャー)でインストールする

nvmインストール
“`
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash
“`
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3879789/6ec66be

元記事を表示

【デレステ】レアアイドルは本当に均等に出現するのか15901人調べてみた

アイドルマスター シンデレラガールズ スターライトステージ9周年おめでとうございます。

https://x.com/imascg_stage/status/1830621726352572503

ところで日課の納税をするたびに気になっていたことがあるんですよね。
レアアイドルって本当にみんな均等に出現するんだろうか?

![01.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/26088/fa1f6c63-ff23-d04f-5316-537e6df0ece1.jpeg)

デレステはガシャの出現率が全て表示されていまして、レアアイドルは全員0.825%で共通となっています。
ただ毎日引いていると、なんとなくそうではない気がしてくるんですよね。
西園寺琴歌やクラリスはわりとよく見かけるし、逆に楊菲菲や兵藤レナなどはあんまり見ない気がします。
これは単に記憶が偏っているだけなのでしょうか。
それとも本当に何らかの偏りが発生していたりするのでしょうかね。

調べてみたいですよね。
しかし調査するにしても

元記事を表示

新人PGのLaravel備忘録~論理削除の実装~

# はじめに
こちらは筆者がLaravelに関する知識の定着を図るための投稿です。
以下の点にご注意ください
* この記事の読者は私と同じ実務歴半年~1年程度の新人PGの方を想定しています
* 記事内において間違いや冗長な説明が多々あることをご容赦ください
* 公式ドキュメントと相違がある場合はそちらを参考にしてください
* 公の場で記事を引用していただく場合は予めご連絡ください
* コメント大歓迎です!!出来るだけ返信しようと思っております!!
# 今回のテーマ
この記事ではLaravelにおける論理削除の実装について具体的なコードを用いて説明します。[^1]

:::note warn
今回の実装はlaravel8での実装となります。他のバージョン(特に5.x以前)で実装する際はコードが異なる可能性があるため[公式ドキュメント](https://laravel.com/docs/8.x/eloquent)の#Soft Deletingの項をご確認ください。
:::
[^1]:今回の記事はあくまでも「論理削除の実装」に関する記事であり、導入を推奨するものではありません。
# 論理削除

元記事を表示

環境構築メモ – PHP・MySQL編

環境構築としてPHP・MySQLのセットアップについて記録しておく
今回はUbuntu上にPHP・MySQLをインストールする

[Ubuntuのインストールについてはこちら](https://qiita.com/aMASSO/items/c436339ad183a9dbb545)

### 1.PHPインストール
phpのバージョンを確認
“`
sudo apt show php
“`
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3879789/b17f0361-bc6b-ad0f-b8ea-91c15700be5c.png)

リポジトリを追加
“`
sudo apt install software-properties-common
sudo apt-add-repository ppa:ondrej/php
“`
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/

元記事を表示

PHP Warning: PHP Startup: Unable to load dynamic library ‘curl’ …

まえがき

`xampp` で表題のエラーが出ていたので、それを修正するためのメモです。
(なお、他のすべてのエラーが無くなったわけではありません。)

:::note info
**私の環境**
+ Windows 10 Home(22H2)
+ `D`ドライブ直下に`xampp`をインストールしています(`D:\xampp`)。
:::

## 1. エラーの内容

以前に書いた記事
「**更新が止まった(?)XAMPPに新バージョンのPHPを導入する**」
で追加導入した`PHP8.3.10`は見た目はちゃんと動いたのですが、
`apache`の`error.log`(`D:\xampp\apache\logs\error.log`)に、`apache`を起動するたび、以下のような9行のエラーが記録されていました。

“`conf
[Sun Sep 08 17:52:10.100260 2024] [core:warn] [pid 4956:tid 696] AH00098: pid file D:/xampp/apache/logs/httpd.pid overwritten

元記事を表示

Laravelのテストコードでマテリアライズド・ビューのテーブルに対するクエリのテストをする

業務でマテリアライズド・ビューのテーブルに対して、クエリを実行する関数のLaravelのフレームワークを使ったテストを書きたいとなったときに迷ったので備忘録のために残しておきます。
珍しいケースかなとは思うものの、実際やってみるとそんなに難しくなかったのという感じでした。

ただ、マテリアライズド・ビューのもとになるSQLクエリが複雑だと元データの作成は大変なのでそこのハードルはあるなと思いました。

# マテリアライズド・ビューとは?

本来、SQLのビューは実体を持たない仮想テーブルのようなもので、SELECT文などで生成されます。
マテリアライズド・ビューはその点、実体を持つビューでクエリの結果をテーブルとして作成できる仕組みです。

このテーブルは登録、更新、削除などはできず、読み込みのみできるテーブルとなっており、通常のテーブルとは少し異なります。

参考

https://products.sint.co.jp/siob/blog/materializedview#:~:text=%E3%83%9E%E3%83%86%E3%83%AA%E3%82%A2%E3%83%A9%E

元記事を表示

PHPとMySQLの接続方法をわかりやすく解説【初心者向け】

# 1.はじめに
この記事では、PHPを使ってMySQLデータベースに接続する方法を解説します。
PHPの基本的な知識がある方、データベース接続に挑戦したい初心者の方は是非ご覧ください。

# 2.PHPとMySQLの接続とは?
まずデータベースとは何か、PHPがどのようにデータベースと通信するのかについて簡単に説明します。
接続方法として「PDO(PHP Datta Objects)」と「MySQLi」の2つの接続方法があります。
今回はより汎用的で推奨されているPDOを使用します。

# 3.PHPでのMySQL接続コードの解説
### 3.1 PDOを使用した接続方法
“`PHP:php
try {
$dsn = ‘mysql:host=localhost;dbname=test_db;charset=utf8’;
$username = ‘root’;
$password = ”;
$option = [
PDO::ATTR_ERRMODE => PDO::ERRRMODE_EXCEPTION,
PDO::AT

元記事を表示

[PHP] 可読性0の短めなbase64エンコード・デコード関数 (v2)

この記事は、以下の記事に書いたやつがさすがにゴミだったので、その改訂版です

https://qiita.com/UziDeer/items/a624bf1b06c17fc24fee

“`b64fn.php
$b64Arr = array_merge(range(“A”, “Z”), range(“a”, “z”), range(“0”, “9”), [“+”, “/”]);

function b64safe(string $b64, bool $dec = false, array $rep = [[“+”, “/”, “=”], [“.”, “_”, “-“]]):string {
return str_replace($rep[(int) $dec], $rep[(int) !$dec], $b64);
}

function blockPad(string $str, string $pad, int $len, bool|int $right = false) {
$i = 0;
while

元記事を表示

LaravelでGemini APIを使おう

## はじめに
ChatGPTもいいけどGeminiもアツいよね、ということで使おうとしたのですがどうにも資料が少なくずいぶん苦労したのでやり方をまとめました。

## 環境
“`
$ php -v
PHP 8.2.20 (cli) (built: Jun 4 2024 13:22:51) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.2.20, Copyright (c) Zend Technologies
with Zend OPcache v8.2.20, Copyright (c), by Zend Technologies

$ php artisan –version
Laravel Framework 11.22.0
“`

## 手順
### 1. Google Cloud Platformへの登録&APIキーの発行
・[Google Cloud Platform](https://console.cloud.google.com/)にユーザ登録
・「APIとサービス」の「Generative Lang

元記事を表示

【PHP/Docker/Twig】初めて生PHPのアプリケーション作成してみた【Pスク生必見!?】

# はじめに
初めまして。Ricccckです。

私は、ReactやJavaScriptには、以前触れたことがあるのですが、今回は、初めてのバックエンド言語。初めてPHPに触れ、わからないこと、難しいことも多くありました…。

そんな中で、初めてアプリケーションを作成したので、今回は、その備忘録を書き留めておこうと思います。

この記事では、コードの詳しい内容までは触れず、「全体のモデルの話」や「コードの書き方」に注目して記事をまとめていきます。DockerとPHPの連携、GDライブラリの使用などで詰まった点もあったので、他の初学者の方に、少しでも参考になればと思います!

今は、twigを用いたフロント実装はあまりないかとも思いますが、Laravelではない **「生のPHP」** を触る機会がある場合には、うってつけの教材になると思いますので、ぜひ触れてみてください。

以下敬略にて失礼します。

# ビルドイメージ
### ロゴ画像
Mac OSユーザーのための必須ソフトウェア

本日のテーマは、Mac OSにインストールすべき必須ソフトウェアです。オフィス、動画、システムに関する日常使用のための生産性ツールをいくつかご紹介します。

役に立ったら、いいねとフォローをお願いします。

## 効率ツール
[Homebrew](https://brew.sh/)
Homebrewは、コマンドラインのパッケージ管理ツールで、サードパーティのソフトウェアパッケージを簡単に管理できるように設計されています。macOSだけでなくLinuxにも対応しており、ユーザーにシンプルなインストールと管理体験を提供します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3878716/e25a5800-f04c-eaab-44e2-4a5500413129.png)

[ServBay](https://www.servbay.com/ja)
ServBayは、開発者向けのワンストップ開発環境管理ツールです。その主な目的は、開発環境の設定と維持のプロセスを簡素化し、開発者が環境の構成に多

元記事を表示

OTHERカテゴリの最新記事