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

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

元記事を表示

【ハンズオン】PHP(Laravel)で旅行の思い出Webアプリを作成する【Laravel/OpenAI/AWS】

# はじめに

webアプリ開発の環境構築からwebアプリの完成まで解説します。

![Animation.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3585159/e52c57d9-852b-bb99-2402-775c2f7993f5.gif)

# 前提条件

– Macでの開発も可能ですが、本ハンズオンではWindowsのPCでの手順を記載しています
– Webアプリを作りきることを目標とするので、細かいプログラミング言語の説明などは省きます
– VSCodeを使用して開発します([インストール方法はこちら](https://www602.math.ryukoku.ac.jp/Prog1/vscode-win.html))

# 1. 環境構築

### 1-1. WSLの開発環境の作成
開発環境の構築に関しては、わかりやすい記事がありますのでそちらに沿って進めます。詳しい方はお好みの開発環境を使用していただいても構いません

以下の記事を参考に開発環境を作成します。
[Laravel

元記事を表示

PHP開発環境をセットアップ

PHP開発環境をセットアップするには、以下の手順に従ってください。

**Webサーバー(例:Apache)のインストール**

1. お使いのオペレーティングシステムに適したApacheのインストールパッケージをダウンロードします。
2. インストールウィザードに従い、ポート番号などの設定を行います。

**PHPのインストール**

1. 公式PHPウェブサイトからシステムに適したPHPバージョンをダウンロードします。
2. PHPを設定し、Webサーバーと連携させます。

**関連ファイルの設定**

1. Apacheの設定ファイル(通常は `httpd.conf`)にPHPサポートを追加します。
2. PHP設定ファイルのパスを指定します。

**PHPのテスト**
1. `info.php` という名前のファイルを作成します。

このファイルをWebサーバーのルートディレクトリ(例:Apacheの `htdocs` フォルダ)に配置します。

ブラウザで `http://localhost/info.php` にアクセスします。PHP関連の情報が正しく表示されれば、環境は正

元記事を表示

音楽聞くためのサーバー構築

– #### まえがき
**これはある程度わかってる人向けです。ご了承ください。**
ちょっとAndroidアプリでSubstreamerっていうAndroidでサーバー建てて音楽聞くことできるらしいんすよ。自分の好きな音楽を自分の好きなようにできるんでこれ入れました。他にも、WindowsとAndroidで同期再生できないかなって思ったり。Windowsの方では臨場感出すために複数のスピーカー使ってます。けど3.5mmジャックをさす箇所がパソコンにもうないのでとりあえずの処置でこのサーバーを導入してます。他にも外で聞くときとかにもデータの節約なるかも?(わかりませんが)

– ## 1-1 Windows用サーバーセットアップ
ほんとはubuntuの方にインストールしようとしていたのですがまえがきにあった通り同期再生をWindowsの方でできるか確かめるためです(~~ほんとはubuntuが起動不能になったから~~)。いやまあ気が向いたらLinux側でもやりたいと思います。ということで本題入ります。まず私が選んだのはAmpacheです。guiとかも高度な機能ありそうだったので。subs

元記事を表示

How a Software Development Company Create and Publish a PHP Package with Composer

Creating and publishing reusable PHP packages is essential for efficient software development. Developers can streamline project development and improve code maintainability by encapsulating specific functionalities into standalone components. This allows a software development company to foster collaboration within teams and the broader PHP community.

This article thoroughly discusses the process of creating and publishing a PHP package using Composer. So, let’s begin!
## Understanding Compose

元記事を表示

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

### 言語
– Laravel8

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

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

## Illuminate\Pagination
– Laravelのページネーション機能を提供するためのクラスがある。

### “paginate()“
– 指定された項目数で結果をページ分割
“`Laravel
$users = DB::paginate(10);
“`

### “simplePaginate()“
– シンプルな「前へ」「次へ」リンクだけを含む簡易的なページネーション
“`Laravel
$users = DB::simplePaginate(10);
“`

### “links()“

元記事を表示

OTHERカテゴリの最新記事