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

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

PHP-JavaScript-Server-Sent-Events

# PHPとJavaScriptを使用したServer-Sent Events (SSE) 通信の実装方法

## 概要
Server-Sent Events (SSE) は、サーバーからクライアントへの一方向の通信を確立するための技術です。SSEを使用すると、サーバーからクライアントに対してリアルタイムでデータを送信できます。WebSocketとは異なり、SSEはHTTPプロトコルを使用し、ブラウザでのサポートが広範です。このガイドでは、PHPを使用してサーバー側を実装し、JavaScriptを使用してクライアント側でSSEを受信する方法を説明します。

## サーバー側(PHP)の実装

まず、PHPスクリプトを作成して、SSEストリームを生成します。以下は、サーバー側のPHPコード例です。

### `sse.php`

“`php

元記事を表示

趣味マッチングアプリの作り方(Laravel)

## Laravel、Tailwind CSS、AIを使って

今回は、Laravel、Tailwind CSS、AIを使って趣味マッチングアプリを作る方法をご紹介します。

このアプリでは、ユーザーがログインし、AIが同じ趣味を持つ近いユーザーをマッチングし、WhatsApp風のチャット機能を提供します。

## 1. プロジェクトのセットアップ

まず、Laravelプロジェクトを作成し、Tailwind CSSをインストールします。

“`bash
composer create-project laravel/laravel hobby-matching-app
cd hobby-matching-app
npm install -D tailwindcss@latest postcss@latest autoprefixer@latest
npx tailwindcss init -p
“`

`tailwind.config.js`を編集します:

“`javascript
module.exports = {
content: [
‘./resource

元記事を表示

PHP、インターネットのお気に入りのスケープゴート

いつから始まったのかはわかりませんが、ますます多くのプログラマーがPHPからGo、Java、Pythonに移行しています。もちろん、これらの間でも移行はありますが、PHPに戻る人はほとんど見かけません。この現象を考えてみると、PHPは確かに完璧なスケープゴートであることに気づきました。ロゴが象だからかもしれません。象は重荷を運ぶのが得意ですからね。

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dlt9tyndmpgunsfs7srb.png)

### システムの問題?PHPのせい

システムがオンラインで常に問題を抱えているとき、それはPHPのせいです。ポストモーテムが必要になり、誰かが責任を取らなければならないとき、それは自分たちの無能のせいではないでしょう。だから、PHPのせいにしましょう。結局のところ、PHPは反論しません。PHPが動的言語であり、制約が緩いために見逃されがちな落とし穴が多いと非難されます。リファクタリングが必要です。

最初にコードを書いたのと同

元記事を表示

ローカルのデータベースを使ってUnityのログイン認証を作った話

# はじめに
Qiitaを書くのは学生時代の時以来ですね。
今回はIT企業に入社し、データベースとサーバー関連の技術を身に着けたので、それをUnityのログイン認証として実装してみたお話です。
データベースを運用する上でのお話なので、その他のものでデータベースを使用したい という際にもご活用いただけるかと思います。

一応ですがこの記事はまだ触って歴も浅い自分が学んだことを記す目的の意味合いが強いので、間違っているところもあるかと思います。
ご了承ください。

GitHubURL
https://github.com/komugikoShimizu/UnityLoginDemo

# 使用する環境
Unity(多分バージョンは何でもいいはず)
XAMPP
・普段Unityばかり触っていて知らないよ という方は下記からダウンロードできます。
https://www.apachefriends.org/jp/index.html

言語
C#(Unity)
PHP(クエリ書き込み用)

### XAMPPについて軽くご説明
XMAPPはMySQLとApacheを内包した便利なパッケージです

元記事を表示

LineメッセージAPIの雛形

# LineメッセージAPIの雛形を作りました.
メッセージAPIのプッシュのみに対応しており、アクセストークンなどや送信先のuserIdは事前に発行してください.
対応したメッセージは下記になります.
– テキストメッセージ
– スタンプメッセージ
– 画像メッセージ
– 動画メッセージ
– 音声メッセージ
– 位置情報メッセージ
イメージマップメッセージ
– テンプレートメッセージ
– Flex Message

### 所感
イメージマップメッセージは自分が使用するつもりがないので作っていないです.テキストメッセージで送るのも良いですが、やはりテンプレートが良い感じがしました.

### 参考したサイト

https://developers.line.biz/ja/reference/messaging-api/

### Github

https://github.com/taoka3/linePostMessage

“`php

元記事を表示

Fedoraにバージョン指定でPHPをインストール

Fedora 38にphpをインストールしようとしたが、初期状態のmodule listではphpは用意されていないようでした。

“`
$ sudo dnf module list php
Error: No matching Modules to list
“`

remiを利用してインストールすることにしました。
まずremiのリポジトリを有効化しました。

“`
sudo dnf install https://rpms.remirepo.net/fedora/remi-release-$(rpm -E %fedora).rpm
sudo dnf config-manager –set-enabled remi
“`

ここでmodule listを確認します。

“`
sudo dnf module list php
“`

無事、各バージョン用のstreamが表示されました。

“`
Name Stream Profiles Summary

元記事を表示

TCPDFで、実線・点線・破線・二重線を引く方法

## はじめに

TCPDFで、罫線を表示する機会があったので、備忘録として残します。

## 環境

TCPDFのバージョンは`4.8.013`です。

## 表示例

上から実線・点線・破線・二重線です。

![スクリーンショット 2024-07-29 18.48.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1125523/6909c3a8-2cde-1ff2-0b62-1e5e6a2759dc.png)

## コード

`dash`の設定で、線の表示を変えています。
二重線は1行で表示する方法が無いため、実線を2回表示しています。

“`php
// 実線
$solidLineStyle = [‘dash’ => ‘0’];
// Lineの引数(開始点のX座標、開始点のY座標、終了点のX座標、終了点のY座標、線種)
$tcpdf->Line(10, 10, 100, 10, $solidLineStyle);

// 点線
$dottedLineStyle = [‘d

元記事を表示

#09 PHP でリダイレクトがうまくいかないときに確認すること

## はじめに
今回は備忘録としてheader 関数でよくあるエラーの原因をまとめました。
「PHP でリダイレクトしたいのにうまくいかない…。」
そんな方に確認していただきたい内容です。

## PHPでリダイレクトする方法
header 関数は、HTTP ヘッダを送信する役割があります。
Location を使うことで指定した URL へ遷移することができます。

~~~php

~~~

※ URL は絶対パスでも相対パスでも指定できます。
※ リダイレクト以降のコードが実行されないよう exit 関数で処理を終了させています。

## よくあるエラーとその原因

### 1. HTML の出力後に header() を呼び出している
~~~php:例1


// header() の前に出力している

~~~
head

元記事を表示

#07 AWS(APIGateway/Lambda) + Serverless Framework + BrefでサーバレスなLaravel環境を構築してみる②

# はじめに
今回は前回の記事「AWS(APIGateway/Lambda) + Serverless Framework + BrefでサーバレスなLaravel環境を構築してみる①」の続きになります。前回はPHP動作環境を構築してみましたので、今回は記事のタイトルにある通りLaravel動作環境をAWSにデプロイしてみます。

# 1. 前提条件
AWSの各種サービスに対する基本的な知識、AWS CLI設定済み、npm/composerインストール済み、Serverless Frameworkインストール済み

# 2. 動作環境
npm:9.6.1
composer:2.1.14
AWS CLI:2.5.5
Serverless Framework:3.2.81
Bref:1.7
PHP : 8.2.1
Laravel : 10.4.1

# 3. 今回利用するツールに関して
前回利用したBrefとServerless Frameworkに加えて、AWSでLaravelを実行するためにLaravel-Brefを利用します。

### Laravel-Brefとは
Laravel-

元記事を表示

VSCode PHP MySQL Docker環境構築(Mac OS) 記録用

WEBアプリ開発を少しやってみたかったので独学で
持ち得る知識をフル活用してみた。

MacBook Air(M1)にて環境構築〜ログイン機能が完成するまでの作業メモ

![スクリーンショット 2024-07-15 14.29.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3838575/1fc4a9aa-a805-7077-8ce2-0d9ca67b8f77.png)

“`php

“`

“`yaml

version: ‘3.8’

services:
php:
image: arm64v8/php:8.2-apache
ports:
– “8888:80”
volumes:
– ./src:/var/www/html
networks:
– app-network
mysql:
image: mysql:5.7
platfor

元記事を表示

Raspbery PIにLaravel11をインストール

# 概要
RPI3Bが余ってましたので、今回最新OSをインストール後、Laravel11をインストールする方法についてメモです。

# 事前に実行するコマンド
下記のコマンドを1つ1つ実行してインストールを行ってください。

~~~bash
sudo wget -qO /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg

echo “deb https://packages.sury.org/php/ $(lsb_release -sc) main” | sudo tee /etc/apt/sources.list.d/php.list

apt list –upgradable

sudo apt update

sudo apt-get upgrade
~~~

# composerインストール
下記のコマンドからインストールします。

①ダウンロードコマンド
~~~
wget https://getcomposer.org/download/2.7.7/composer.phar
~~~

元記事を表示

【PHP8.4】ついにURLへのセッションID埋め込みが禁止される

いにしえの時代、PHPはセッションハイジャックに致命的に脆弱でした。

かつてのPHPは`http://example.com/?phpsessid=hoge`というURLでアクセスすると`hoge`というセッションIDでセッションが始まるという仕様であり、これは仕様というか[セッション固定攻撃](https://en.wikipedia.org/wiki/Session_fixation)という脆弱性そのものです。

そもそもなんでこんな仕様があったのかというと歴史的経緯というやつです。

PHPが誕生した時代は、そもそもCookieに対応していないブラウザ・端末が普通に存在していた時代でした。
たとえばスマホ以前に存在したガラケーはほとんどがCookieに未対応です。
そんな端末・ブラウザでもログインしたりショッピングカートを使いたい、そんな場合はどうすればいいか。
そこでURLにセッションIDを載せて運用しよう、という発想が生まれました。

この発想は当時はPHP以外の言語でも行われていたのですが、すぐに問題が発覚しました。
URLをコピーすると通常は`https://qiita

元記事を表示

#05 AWS(APIGateway/Lambda) + Serverless Framework + BrefでサーバレスなLaravel環境を構築してみる①

# はじめに
最近、サーバレスにLaravelを運用する環境を目にする機会がありました。
その際に利用されていた技術について備忘録として複数回に分けてこのブログにまとめていこうと思います。
今回は、BrefとServerless Frameworkに焦点をあて、PHP動作環境をAWSにデプロイしてみます。

# 1. 前提条件
AWSの各種サービスに対する基本的な知識、AWS CLI設定済み、npm/composerインストール済み

# 2. 動作環境
npm:9.6.1
composer:2.1.14
AWS CLI:2.5.5
Serverless Framework:3.2.81
Bref:1.7

# 3. 今回利用するツールに関して
### 1. Brefとは
Brefとは、一言で言えばAWS LambdaでPHPを動作させるための各種設定を行うCLIで、OSSとして提供されています。
LambdaのランタイムにはPHPは存在せず、カスタムランタイムとして利用する必要があります。
カスタムランタイムとしてPHPをLambdaで利用するための各種設定などの煩わしい作業を簡単に

元記事を表示

#04 Laravel Overview & Setup (Routing & Middleware basics)

## Introduction

PHP is a kind of old web development language which released in 1995. But it has a variety of frameworks for web development and it is still a popular language in the real world. This time, the most famous PHP full-stack framework will be introduced. Laravel.

So, **what is Laravel?**

> Laravel is a web application framework with expressive, elegant syntax. A web framework provides a structure and starting point for creating your application, allowing you to focus on creating s

元記事を表示

windowsにPHP+Imagickを入れてみた

簡単に画像処理プログラミングを行いたくてImagick付きのPHPをインストールしてみた。

## Imagickのモジュール
Imagickのdllは、PECL DLLs for PHPにあった。以下のファイル
https://windows.php.net/downloads/pecl/releases/imagick/3.7.0/
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/242268/c63a2bc4-549b-4ead-2cb8-ea1769585514.png)

## Windows版のPHP
ダウンロードしたimagick.dllはビルド=vs16、PHPバージョン=8.1、ts(Thread Safe)、64ビットになるのでそれに合うPHPをダウンロード
https://windows.php.net/download/
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/

元記事を表示

【実務未経験 歓迎】PHPで「Hello World」してみよう [異世界転生(転職)・なろう]

## はじめに

どうもはじめまして、異世転生者のジツム・ミケイケンと申します。

ある日交差点で車に轢かれてしまった俺はエスイーエス?というよくわからない世界に飛ばされてしまった。
右も左もわからない俺だが、ここでの生活の為にHello Worldくらいは書けるようになっておこうと思う。

## 本記事の成果物 (コピペ用)

短い時間で解決したい方に配慮し、本記事で作成するプログラムの成果物を先に開示しておきます。 (省エネ)

“`php:main.php

元記事を表示

robots.txtを取得しクロール拒否されていないかチェック①

# 概要

robots.txtを取得しクロール拒否されていないかをチェックするプログラムをPHPで作成したいと思います。

今回は、robots.txtを取得する処理を作成します。
次回は、クロール拒否されていないかチェックする処理を作成します。

# 前提
## robots.txtとは

検索エンジンのクローラーなどに、アクセスしていいURLを伝えるファイルです。

クローラーを作成する場合は、robots.txtに準ずる必要があります。

## robots.txtの場所

基本的にURLドメインの`/`直下に置くことになっているので、Qiitaのrobots.txtは、`https://qiita.com/robots.txt`にあります。

中身の説明は次回とさせていただきます。

# コーディング

## 処理内容

プログラムは汎用的に作ろうと思うので、`robots.txt`を直接指定しなくても、どんなURLでもrobots.txtのURLに変換します。

このようなURLが指定された場合に、`robots.txt`のファイルのURLを生成します。
`https

元記事を表示

Laravelでneo4jを使ってみる③モデル

※modelのフォルダを変更しています。

Userモデルに関連したRaceモデルを作ります。

(User) → (Race)

##1)モデルクラス作成
“`
$ php artisan make:model Models/Race
“`

“`app/Models/Race.php
hasOne(

元記事を表示

【Laravel】Illuminateにある主要メソッド Mail編

### 言語
– Laravel8

## Illuminateとは
– Laravelが提供する様々なサービスやコンポーネントを構成するための基盤を提供している。
– サービスやコンポーネントは“Illuminate“名前空間内に整理されている

### どこにあるか?
**“プロジェクトディレクトリ\vendor\laravel\Framework\src\Illuminate\~“**

## Illuminate\Mail
– メール送信機能を提供するクラスがある。

### “to($users)“
– メールの送信先アドレスを設定
“`Laravel
Mail::to(‘example@example.com’)->send(new ExampleMail());
“`

### “cc($users)“
– メールのCC(カーボンコピー)祖往診先アドレスを設定
“`Laravel
Mail::to(‘example@example.com’)->cc(‘cc@example.com’)->send(new

元記事を表示

LaravelでMakefileを使って効率的にコマンドのショートカットを作成する方法

Laravelプロジェクトにおいて、Makefileを使用してよく使うコマンドを効率的に実行するためのショートカットを作成する方法を紹介します。Makefileを使うことでコマンドを簡略化し、開発効率を向上させることができますのでぜひ使ってみてください。

## Makefileとは
作業の自動化などに使われますが、今回はコマンドの簡略化に焦点をあてて解説します。
“`
ターゲット:
コマンド
“`
まずは**ターゲット**と**コマンド**をペアで定義します。
“`
make ターゲット
“`
上記をターミナルなどで実行すると、定義した**コマンド**が自動で走ってくれるという優れものです。

### 例えば・・・
Laravel開発においてよく使うartisanコマンドを例に挙げてみます。
まずはMakefileに以下を記述します。
“`
mig:
php artisan migrate
“`
そしてターミナルなどで
“`
$ make mig
“`
として実行してみると
“`
$ make m-mig
Enter migration name: tes

元記事を表示

OTHERカテゴリの最新記事