PHP関連のことを調べてみた2023年02月14日

PHP関連のことを調べてみた2023年02月14日

Docker Composeを使ってWordPress環境構築

WordPressをローカル環境で試してみたかったので、Docker Composeを使って構築してみました。

# 環境
Windows 11
Docker version 20.10.21
Docker Compose version v2.12.2
Docker Desktop version v4.14.1

# 構築手順

まずはコマンドプロンプトを立ち上げます。
“`
cmd
C:\Users\hoge>
“`

フォルダを作成します。
“`
C:\Users\hoge>mkdir wp_local
“`

フォルダに移動します。
“`
C:\Users\hoge>cd wp_local
“`

YAMLファイルを作成します。
“`
C:\Users\hoge\wp_local>notepad docker-compose.yml
“`

下記の内容をYAMLファイルに保存します。
“`yml
version: ‘3’

services:
db:
image: mysql:5.7
volumes:
– db_dat

元記事を表示

Laravel Restful(リソース) コントローラー について

# Restful Controllerとは

あるデータの追加、読み取り、更新、削除についての決まり切った処理を簡潔にできる機能です。

CRUD(新規作成、表示、更新、削除)
C(create, store) R(index, show, edit) U(update) D(destroy)

下の表ではブログ写真投稿システムにおける記事(photos)モデルです
表示・・GET、DBに保存・・POST

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2911371/0418e7db-cb87-1df3-0824-40be63d5cde0.png)

生成コマンド
“`
php artisan make:controller OwnersController ̶–resource
“`

app/Http/Controllers/に作成されます.
また階層を指定したい場合は
“`
php artisan make:controller photos/
OwnersCont

元記事を表示

【Wordpress】PHP Update Requiredの対応方法について(EC2に接続してアップグレードする)

# 前提
* AWSのEC2インスタンスで稼働しているお手製HTMLホームページを、Wordpressに移行した後に発生したエラーについて記載します。
* WordPressインストールするまでの流れを解説した前回の記事はこちら:[WordpressをEC2インスタンスにインストールする方法(Apacheのバーチャルホスト設定方法・Wordpress用DB作成方法も解説)](https://qiita.com/Ryo-0131/items/a6dab55ea5b54b6e10b7)

## PHP Update Requiredの警告
* PHP7.0であることに対して警告が表示されていることを確認

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2710373/c0f92aa3-2a66-7faa-3d89-026e39280a0c.png)

* WordPressがインストールされているEC2インスタンスへ接続。
* 以下を実施して、PHP7.4にupgrade

“`

元記事を表示

PHPで日本語を含んだURLから画像ファイルを取得した方法

# はじめに
PHPで日本語を含んだURLリンクから画像ファイルを取得しようとした時に、何箇所かつまったので記事として残します。

## 対象者
この記事は下記のような人を対象にしています。

– PHPでの日本語を含んだURLの使用に慣れていない人
– プログラミング初学者

# 目次

– [日本語を含むURLリンクを作成](#Chapter1)
– [URLリンク先のページが表示されるか確認](#Chapter2)
– [URLリンク先からファイル取得](#Chapter3)
– [参考記事](#reference)



# 日本語を含むURLリンクを作成

`http://127.0.0.1` といったリンクにファイルが置いてあるディレクトリまでのパスの文字列を結合して、URLエンコード(URLとして使用できない文字を、URLで使用できる文字の特殊な組み合わせに変換)します。

“`php:directory_link.php
$directory_lin

元記事を表示

dockerのphp8にGD ライブラリをインストール

dockerで起動したphp環境にGDライブラリがなかったので、なんとかインストールしました。

“`Docker:Dockerfile
RUN apt-get update &&\
# JPEG 対応
apt-get install -y libpng-dev libjpeg62-turbo-dev &&\
docker-php-ext-configure gd –with-jpeg &&\
docker-php-ext-install -j$(nproc) gd
“`
    

あとDockerファイル編集したら –buildつけないといけなかったの忘れてしばらく悩んでしまった。。。

“`
docker-compose up -d –build
“`

  
———–

ここに全て書いてありました。
php8.0でも動いてるみたいです。

https://tt-computing.com/docker-php-gd

元記事を表示

開発環境docker編:MacのiTerm2でphpdotenvをインストールすると、PHP Composerのバージョンが古いため完了できない問題の解決

## 背景
Mac、iTerm2、Docker環境で、PHPの環境変数を設定するために、phpdotenvというライブラリをインストールしたところ、以下のメッセージが出て完了できなかった。
PHP Composerをバージョン2にせよとの内容。

#### 全てのメッセージ
“`Warning from https://repo.packagist.org: Support for Composer 1 is deprecated and some packages will not be available. You should upgrade to Composer 2. See https://blog.packagist.com/deprecating-composer-1-support/
Info from https://repo.packagist.org: #StandWithUkraine
Using version ^5.5 for vlucas/phpdotenv
./composer.json has been updated
Loading compos

元記事を表示

LaravelのEloquentはException投げるのか投げないのかどっちなんだーいオイッ!

# とある新人のコードレビューしていて質問されたのだが
新人「データベースのupdateでtry/catchしなくていいですよね?」
私「そんなあほな」
新人「だってVSCodeの表示ではreturn intてかいてます・・・」
私「ほわぁぁぁぁ!!!!」

# LaravelのORMマッパEloquentのupdate/deleteが返す値
“`
* @return int
*/
public function update($query, $bindings = []);
“`
* ヾ(゚Д゚ )ォィォィ、まじかよ、intを返しやがるぜ!

# 今までtry/catchしてたのは無意味?
* なんとなく遠い記憶で、return intだったのは知っていたが当然Exception投げるだろうとおもこんでいた
* でもPHPDocには @throw はかいていない・・・
* ちょっとまて、今までかいたやつは全部修正か・・・・
* ぜんぶ修正なんて地獄絵図やぞ

# 実はPDOの設定がある
* https://www.php.net/manual/ja/pdo.error-han

元記事を表示

ArchLinux: Nginx で PHP と Python を使う

ArchLinux の Nginx の設定ファイルは、/etc/nginx/nginx.conf です。
PHP と Python を使う設定です。
PHP だけを使う設定はこちら
[ArchLinux: Nginx で PHP を使う](https://qiita.com/ekzemplaro/items/9ef3de4ff32956873593)

## インストール

“`bash
sudo pacman -S nginx
sudo pacman -S php-fpm
sudo pacman -S fcgiwrap
“`

## 設定ファイル

“`text:/etc/nginx/nginx.conf
worker_processes 1;

events {
worker_connections 1024;
}

http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeou

元記事を表示

ArchLinux: Nginx で PHP を使う

ArchLinux の Nginx の設定ファイルは、/etc/nginx/nginx.conf です。
PHP を使う設定です。

## インストール

“`bash
sudo pacman -S nginx
sudo pacman -S php-fpm
“`

## 設定ファイル

“`text:/etc/nginx/nginx.conf
worker_processes 1;

events {
worker_connections 1024;
}

http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;

server {
listen 80;
server_name localhost;

location / {
root /var/www;

元記事を表示

phpで配列から引数を自動展開する方法

可変長引数の話題でよく目にする、関数の引数は以下の通り。
“`php
function hoge(…$array)
{
var_dump($array);
}

hoge(‘hoge’, ‘piyo’, ‘hello’, ‘world’);

array(4) {
[0]=>
string(4) “hoge”
[1]=>
string(4) “piyo”
[2]=>
string(5) “hello”
[3]=>
string(5) “world”
}
“`

‘…’入力時に引数を配列から自動展開してくれる機能がある。
この際、配列鍵が歯抜けでも問題がない。

“`php
$array = [‘hoge’, ‘piyo’, ‘hello’, ‘world’];
もしくは
$array = [‘hoge’, ‘piyo’, ‘hello’];
これを関数の引数としたい

hoge(…$array);

array() {
[0]=>
string(4) “hoge”
[1]=>
string(4) “piyo”

元記事を表示

PHPでの履歴つきHit&Blowゲームの開発

## ルール説明
1.出題者は0〜9の数字を使用した4桁の数字を正解として用意し解答者から隠しておく。
2.解答者は解を予想し質問をする。
3.出題者は質問と正解の数を比較して
Hit数:同じ数字が同じ桁に出現する回数
Blow数:同じ数字が違う桁に出現する回数
をヒントとして回答者に与える。

*本来は4桁の数字がそれぞれ互いに異なる数字であり、Blow数は同じ数字が違う桁に出現する回数であるルールが一般的だが今回は少し複雑化している。

## 実行環境
PC環境:macOS Monterey
PC環境2:iMac(M1)
PHPを実行するための環境: MAMP(インストール方法は[こちら](https://magazine.techacademy.jp/magazine/5102?_ga=2.163500095.287601928.1675426648-1682739333.1657417492)。)
エディター: Visual Studio Code
Github:(コードは[こちら](https://github.com/ChigiriRyota/2-11-Hackson

元記事を表示

【PHP】PHPでメモアプリを作成【1】

# はじめに
PHPを勉強し始めて1か月ほどですが簡単なメモアプリの作成を行ったので、備忘録として記事を投稿していこうと思いました。(最低限の実装しか行っていないため、見た目などにはこだわっていません。また、記録のため、一つ一つのコードについて詳しく記述していくので長い記事になります。)

このメモアプリを通してSQLの操作、PHPからSQLへの連携などCRUDの概念について学べました。

本記事ではメモを作成して、それを一覧で表示させるところまでを記事にします。
## メモの記述

メモを記述するフォームを作成するinput.htmlファイルに以下のように記述。

“`html:input.html





元記事を表示

PHPStormでPHP CS Fixerを設定する方法。(WSL2上のファイルにも適用する方法付き)

# 概要
PHPStormを愛用しています。
PHPでの開発を行っていると必ず使うPHP CS Fixerですが、その設定方法をまとめました。
特に、WSL2のUbuntu上に配置されているプロジェクトのファイルに適用する方法がいくら調べても分かりませんでしたが、今回ようやく方法を見つけたので残しておきます。

# 前提
– Windowsで開発していること
– gitbashとubuntuを併用していること

# 事前設定
PHPのインストールから記載します。PHPStormでの設定方法が知りたいせっかちさんは[こちら](#phpstormに設定)

### PHPのインストール
1. [PHPのWindows用ファイル群ダウンロードページ](https://windows.php.net/download#php-8.1)から`VS16 x64 Non Thread Safe`と書かれたzipファイルをダウンロードします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/314245/

元記事を表示

【初心者向け】cakePHPって何?

# 目次
[1.はじめに](#1-はじめに)
[2.PHPとは](#2-phpとは)
[3.cakePHPとは](#3-cakephpとは)
[4.おわりに](#4-おわりに)

# 1. はじめに
– 軽い自己紹介
– 2021年の4月にほぼ未経験でIT企業に入社した新卒2年目
– 研修終了後は某業界向けの基幹システム開発でcakePHPを使用
– 本記事記載のきっかけ
– cakePHPそのものについてあまり詳しくないと思った
– cakePHPについて、現状の認識の整理をしたい
– 読んでほしい人
– cakePHPに興味がある初心者の方
– プログラミンに興味はあるけど、どのような言語をすれば分からないという方

# 2. PHPとは
– PHPとは
– Webページを作成する為によく用いられるサーバーサイドスクリプト
– サーバーサイドスクリプト:Webブラウザで読み込まれる前に、Webサーバーで実行されるプログラミング言語
– 「ウェブページをWeb 開発者が速やかに作成できるようにすることを主

元記事を表示

PHP導入、MAMPで「The requested URL was not found on this server.」で1時間溶かした話。

タイトル通り、PHPの導入の際、ページが反映されず、1時間と溶かしました。

お急ぎの方は[結論](https://qiita.com/saburo555/items/7db1d62ae9b6237b7441#結論)へ!

# 過程
MAMPをインストールし、起動でき、初期ページも表示されるのに、「The requested URL was not found on this server.」が表示される。

Document rootもhtdocsになっていて、「MAMP/conf/apache/httpd.conf」内のDocumentRootも同じになっていて、間違いがない。

参考
https://qiita.com/vber_program/items/962d32ece552d4ebeacf

エラーログも見るも、以下のサイトのようなエラーはなく、お手上げ状態に。。。

参考
https://teratail.com/questions/288997

# 結論

もう一度コードを見ると、明らかなミスを発見!

“`php:NGコード

元記事を表示

PHPで変数の型によって条件分岐させる方法

PHPでは、変数の型に応じて条件分岐することができます。以下にいくつかの方法を示します。

## is_*関数を使用する
PHPには、変数の型を判定するための「is_*」系の関数が用意されています。例えば、「is_int」関数は整数型かどうかを判定するために使用されます。

“`php
$value = 42;

if (is_int($value)) {
echo “Value is an integer.”;
} else {
echo “Value is not an integer.”;
}
“`

## gettype関数を使用する
「gettype」関数は、変数の型を文字列として取得することができます。この文字列を使用して、条件分岐することができます。

“`php
$value = 42;

switch (gettype($value)) {
case “integer”:
echo “Value is an integer.”;
break;
case “double”:
echo

元記事を表示

PHPのarray_map関数の使い方

## 概要
`array_map` 関数は、配列のすべての要素に一定の処理を行い、新しい配列を生成するために使用されます。次のような形式で使用できます。
“`php
array_map(callable $callback, array $array1 [, array $array2, …]);
“`
* callback: 配列のすべての要素に適用される関数またはコールバック。
* array1, array2, …: 処理対象の配列。

この関数は、指定された配列のすべての要素に、$callback 関数またはコールバックを適用して、新しい配列を返します。配列の要素数が異なる場合、最も小さい配列の要素数に合わせて、他の配列の要素は無視されます。

## 使用例
### 通常の関数
次の例では、数値配列内のすべての数値を2倍する関数を使用して、array_map 関数を使用する方法を示します。

“`php

元記事を表示

PHPで名前空間内でPDOを使う方法

PHPで名前空間内でPDOを使うには、次のように記述します。

“`php
namespace YourNameSpace {
use PDO;
// …

$pdo = new PDO(…);
// …
}
“`
このように、名前空間内でuse構文を使用してPDOクラスをインポートし、その後にPDOオブジェクトを生成することができます。

注意:PDO拡張モジュールがPHPにインストールされていることが前提となります。また、接続文字列(. . .の部分)は適切なものに置き換えてください。

元記事を表示

【サンプル動画あり】選択した画像src の情報をpostして、次ページで表示させる。Jquery

### サンプル動画
![Videotogif.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/478380/af2105b5-e7ec-9647-b3be-e4ff15406b45.gif)

#### 流れ

1:index.php(テーブル選択画面)で、Jqueryでクリックした要素のsrcのパスを取得する

2:1で取得したパスを、

タグの、valueに入れて、postする。

3:form.php で、postされた画像パスを受け取り、表示させる。

#### ソースコード(抜粋)

“`index.php

#


見やすいコードを書くためにPSR-12を見て学ぶ

## はじめに
キャメルケースやケバブケースなど、コードを書くにあたって適切な書き方があるのはなんとなく知っていたが、認識としてある程度のルール化がされていることを知った。
それが`PSR-12`とのこと。

行の長さはどのくらいにしなければいけない、だったり
メソッド名の前に単一のアンダースコアをつけてはいけないなどルールが記されている。
https://www.php-fig.org/psr/psr-12/#44-methods-and-functions%EF%BC%89

こういうのがあるんだぞー。
というのを常に忘れないためにも備忘録として残す。

## 今回参考にした箇所
備忘録だったのでほぼほぼこの記事の役目は終了しましたが、今回実際に何をするために確認したのかも書いておく。

### メソッドを書く場合どのケースで書くべきか

“`

元記事を表示

OTHERカテゴリの最新記事