PHP関連のことを調べてみた2021年10月27日

PHP関連のことを調べてみた2021年10月27日

【PHP】PHPのバージョンを更新するべき理由

# はじめに

プロジェクトを進めるにつれて、PHPのバージョンの更新は確実に必要はあると思っていたのですが、なぜバージョンアップが必要なのかを具体的に把握できていなかったので考えてみました。

# 目次

1. [公式サポート期限](#Chapter1)
1. [パフォーマンス向上](#Chapter2)
1. [新文法に対する対応](#Chapter3)
1. [まとめ](#Chapter4)
1. [参考文献](#reference)



# 公式サポート期限とセキュリティの脆弱性
### PHPバージョンとサポート期限一覧
|バージョン|初回リリース|最新リリース|最新リリース日|アクティブサポート|セキュリティサポート|
|——-|———|——–|———–|—————-|—————-|
|8.0|2020/11/26|8.0.9|2021

元記事を表示

備忘録~BootstrapをSassでカスタマイズする方法~

##PHP(7.4)・Bootstrap(v4.5)・Scssphp(Sass)(v1.81) Windows 10 Home

##Bootstrapとは
世界で最も人気なHTML、CSS、JavaScriptのフレームワーク
メリット:①CSSを一から書かなくてよい。
     ②レスポンシブデザインに対応している。
     ③統一感のあるデザインが簡単にできる。

今回はComposerを用いてインストールした。
![Bootstrapインストール.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1773238/cd98bb87-a93a-e114-c3fb-116df58ac97a.png)

するとVendorというフォルダが作成される。
CSSで使うには、Vendor/twbs/bootstrap/dist/cssのフォルダの中の

bootstrap.css:ローカル環境向き
bootstrap.min.css:本番環境向き

この二つのうちどちらかをHTMLに読み込む。

“`

元記事を表示

結局コメントってどんなこと書けばいいのよ?

# コメント、書いてますか?
プログラムを書く時、処理に対する解説などの用途としてコメントを書くことがあると思います。
プログラムの勉強をし始めた時などは、まず実装を行う前にどのような処理を行うかをコメントで書いてから実装した方がいい、プログラムと同じくらいコメントもたくさん書こう!等と教えられた方も多いと思います。(筆者もその一人)
実際のところ、コメントはどれくらいの粒度でどれくらいの量記載するのが正しいのでしょうか?
ここではコメントを書くことの意義や有用性、そして実際にどのように書くべきかを考えていきたいと思います。

# コメントの例
早速ですが、コメントの例を記載しながら考えていきたいと思います。
サンプルについては僕が実際に仕事や本、その他資料で見たり書いたりしたものを例題用に変更したものですので、必ずしも普遍性が担保されているものではないということについてはご留意ください。
サンプルのコードはphpを使用しますが、他の言語でも同様の考えができるかなと。

“`php
/**
* 数量と単価から合計金額を算出する
* @param int $quantity 数量

元記事を表示

【PHP初心者】PHP(MAMP)×Mac(M1)×VScode環境でデバッグ機能を使えるようにする方法

## はじめに

プログラミングをしていると、思う通りの挙動にならない場面がよくありますよね。そんな時に役に立つのがデバッグ機能です。

以前Javaでプログラミングしていたときは「Eclipse」という統合環境を使用していたため、デバッグ機能も簡単に使うことができました。

しかし、現在使っている環境はPHP×VScode。
そのままではデバッグ機能を使うことはできません。

デバッグ機能を搭載すべく参考にできそうな情報を調べたのですが、2021年9月時点ではXampp×Mac(M1)×VScodeの設定記事を見つける事ができませんでした。(Windowsの記事はヒットするんですが…)

Macの場合、MAMPの方が参考にできる記事が多く、デバッグ機能の設定もしやすそうだったので、開発環境をXAMPPからMAMPに移行しました。

ということで前置きが長くなりましたが、本記事は**「PHP(MAMP)×Mac(M1)×VScode環境でデバッグ機能(Xdebug)を使えるようにする」**ための備忘録になります。
※PHPのverは8.0.8です。

## 設定の流れ
### 1

元記事を表示

【PHP】気象庁API から天気予報を取得してみた

#初めに
ダッシュボード作成のために、天気予報をAPIにて取得する。
1年くらい前の気象庁のHPが大幅リニューアルし、非公式ながらAPIが発見された。そのAPIを用い「天気予報」を取得したいと思う。[気象庁 ](https://www.jma.go.jp/jma/index.html)にて使用されているAPIを使用。詳しいことは[気象庁ホームページ防災気象情報のURL構造](https://qiita.com/e_toyoda/items/7a293313a725c4d306c0)を参考に作成した。
⇒PHPを用い、HP等で表示させる用途を想定

※非公式のため、無保証。アップデート等により使用不可になる可能性もあり。
※[政府標準利用規約(PDF)](https://www.kantei.go.jp/jp/singi/it2/densi/kettei/gl2_betten_1.pdf)に準拠して利用すること

##環境
-Windows10
-PHP 8.0.6

##データの詳細
エリアのコード(pathCode) 東京は130000
http://www.jma.go.jp/bo

元記事を表示

【PHP】Yahoo 気象情報API から雨量情報を取得してみた

#初めに
ダッシュボード作成のために、雨量をAPIにて取得する
[YOLP 気象情報API ](https://developer.yahoo.co.jp/webapi/map/openlocalplatform/v1/weather.html)を使用する。
⇒PHPを用い、HP等で表示させる用途を想定

>[リファレンス](https://developer.yahoo.co.jp/webapi/map/openlocalplatform/v1/weather.html)より引用
>指定した緯度経度の雨の強さを取得できるAPIです。
>現在時刻の降水強度実測値から、60分後までの降水強度予測値を取得できます。

##環境
-Windows10
-PHP 8.0.6

##パラメータ
* appid => Yahooデベロッパー登録をし、取得する
* coordinates => 経度,緯度(世界測地系)
* output => 出力形式を指定(json/xml)
* date =>日時を指定(YYYYMMDDHHMI形式)

本コードではparamsにてパラメータをセットしてくださ

元記事を表示

【PHP】月位置(方位角・高度・月齢)計算APIから月齢を取得してみた

#初めに
ダッシュボード作成のために、月齢をAPIにて取得する
[月位置(方位角・高度・月齢)計算API ](https://mgpn.org/api/moon/)を使用すると取得できる。
⇒PHPを用い、HP等で表示させる用途を想定

##環境
-Windows10
-PHP 8.0.6

##パラメータ
lat (float):必須、取得したい場所の緯度、
lng (float): 必須、取得したい場所の経度

本コードではparamsにてパラメータをセットしてください。

# コード
“`PHP:moon_age_api.php
“35.000000”,
“lon” => “135.00000”,
);
$url = $api . ‘&lat=’ . $params[‘lat’] . “&lon=” . $params[“lon”];

$m

元記事を表示

The “XXXXXXX” file could not be downloaded: failed to open stream: Cannot assign reques ted address 対処方法

1.S3のライブラリをappコンテナ内でインストールしようと下記コマンドを実行した所エラーが発生!

“`
/work# composer require league/flysystem-aws-s3-v3
“`

“`
//エラー
The “http://repo.packagist.org/p/phpunit/php-invoker%24d51629773da6aa4144adc03bb9c518ddab3a46018cb3467f76ed7d0b00a3e417.json” file could not be downloaded: failed to open stream: Cannot assign reques ted address
“`

2.下記コマンドでエラーの原因調査!
すると、2箇所エラーらしき箇所を発見!
何かコマンドを実行するよう指示が出ました。

“`
/work# composer diag
Checking composer.json: OK
Checking platform settings: OK
Checking git se

元記事を表示

phpbrew を使って install しようとすると openssl 周りのエラーが起きる

**これは小ネタです**

—-

タイトル通りのトラブルが起きた時の解消法です。
端的に言うと、`openssl@3`をインストールしてるとエラーが起こります。

エラー内容

“`
error: use of undeclared identifier ‘RSA_SSLV23_PADDING’
REGISTER_LONG_CONSTANT(“OPENSSL_SSLV23_PADDING”, RSA_SSLV23_PADDING, CONST_CS|CONST_PERSISTENT);

warning: ‘RSA_new’ is deprecated [-Wdeprecated-declarations]
“`

だいたいこういうエラーが出てしまいます(`openssl@3`をインストールしてると)

そう言う時は、下記コマンドを打ちましょう(PHP8 をインストールする場合)

“`sh
OPENSSL_CFLAGS=”-I/usr/local/opt/openssl@1.1/include” \
OPENSSL_LIBS=”-L/usr/local

元記事を表示

【PHP】Open Weather Map APIから気象情報を取得してみた

#初めに
ダッシュボード作成のために、気象情報をAPIにて取得する
[Open Weather Map API](https://openweathermap.org/api)を使用すると取得できることが判明
⇒PHPを用い、HP等で表示させる用途を想定

##環境
-Windows10
-PHP 8.0.6

##パラメータ
lat (float):必須、取得したい場所の緯度、
lng (float): 必須、取得したい場所の経度
appid:必須、[Open Weather Map API](https://openweathermap.org/api)に登録し、取得してください。
unit:metric 摂氏温度(℃)の取得に固定しています。
lang:ja 日本語に固定しています。

本コードではweather_configにてパラメータをセットしてください。

##コード
“`php:owm_api.php

元記事を表示

【PHP】日出、日没、薄明の時間を取得してみた

#初めに
ダッシュボード作成のために、各種情報を取得する
コメントより、[date_sun_info](date_sun_info)関数にて取得できることが判明
⇒PHPを用い、HP等で表示させる用途を想定

※[Sunset and sunrise times API](https://sunrise-sunset.org/api)を使用予定でした、、

##環境
-Windows10
-PHP 8.0.6

##パラメータ
lat (float): 取得したい場所の緯度、必須
lng (float): 取得したい場所の経度、必須
date (string): YYYY-MM-DDフォーマットにて入力/相対・絶対日時の指定も可能。入力しない場合は現在の時刻を取得する。オプション。
callback (string): Callback function name for JSONP response. Optional.
formatted (integer): 0 か 1 (1 がデフォルト). 0の場合はISO 8601にて出力される。オプション

本コードでは$sunset_c

元記事を表示

phpのupload上限解放

phpやwpを使う際にuploadファイルの上限があることに気がつきました。
この設定をいじれば、上限が解放され、重たいファイルもupすることができるようになります。
Localで開発をしていると気づきにくいところですが、本番反映する時などには重要です。

#### php.iniを設定する
phpの初期設定への変更を促すことができます。

サーバーの中からファイルを探して、
“`upload_max_filesize = 32M
post_max_size = 64M
memory_limit = 128M
“`

この辺りの設定を見直します。
upload_max_filesizeを変更する際に、32M(メガバイト)から128や256などにあげるといいかと思います。

その際には、必ずサーバーの再起動を忘れずにしてください。ただ単に記述するだけだと意味がないので。
再起動せずともできる方法はあるとは思いますが、再起動すれば間違いないと思います。

他には、.htaccessをいじるものもあります。
どの部分をいじったか、忘れないようにしましょうね。

参考:
https:/

元記事を表示

【PHP8.2】call_user_func()と$callable()の矛盾を解消する

PHP8.1もまだリリースされていないというのに、早々とPHP8.2に導入される機能がひとつ決まりました。
導入というか削減ですが。

そんなわけで以下はPHP8.2のRFC、[Deprecate partially supported callables](https://wiki.php.net/rfc/deprecate_partially_supported_callables)の日本語訳です。

# Deprecate partially supported callables

## Introduction

このRFCは、`call_user_func($callable)`でサポートされているが、`$callable()`ではサポートされていない構文を非推奨とします。

## Proposal

以下の構文は、[is_callable](https://www.php.net/manual/ja/function.is-callable)や[call_user_func](https://www.php.net/manual/ja/function.call-use

元記事を表示

Xampp環境で開発したReact x Laravel x mysql のアプリケーションをherokuにデプロイする。

#はじめに
開発したアプリケーションをherokuにデプロイしようと思ったのですが、使用した技術的にもあまり適当な情報がなかったので備忘録としてまとめるついでに誰かの役にたてばなと思います。環境がLinuxですのでMacの方は適宜読み替えてください。様々なサイトを参考にさせてもらっており、参考文献として最後に載せています。

#環境
Ubuntu20.04LTS
React
Laravel(php)
mysql
xampp

#前提
linuxのコマンドが触れる
gitを扱える
デプロイの概念がなんとなく分かる
laravelアプリケーションフォルダ直下をgitで管理している

#herokuの登録とClearDBの設定
こちら[[1]]から登録します。2段階認証みたいなやつはなんか飛ばしちゃいましたが、やっといた方が良い気がする。ログインまで行けたら**Create new app**を選択してアプリケーションの作成をします。名前を入力して、リージョンはアメリカとヨーロッパしかないのでアメリカを選択。**Overview**を押した後に**Configure Add-ons**を押す

元記事を表示

コメント機能 laravel

#マイグレーションファイルの作成

“`
$ php artisan make:migration create_comments_table –create=comments
“`

“`comments_table.php
public function up()
{
Schema::create(‘comments’, function (Blueprint $table) {
$table->increments(‘id’);
$table->unsignedInteger(‘article_id’);
$table->unsignedInteger(‘user_id’);
$table->text(‘content’);
$table->foreign(‘article_id’)->references(‘id’)->on(‘articles’)->onDelete(‘cascade’);
$

元記事を表示

PHPMDの既存ルールセットのうち特定ルールだけ変更

# priorityを変更する

例えば、`rulesets/codesize.xml`のルールを読み込みつつ、特定のルールだけ変更したい。

1. `rulesets/codesize.xml`を読み込み、変更したいルールを除外する
1. 改めて`rulesets/codesize.xml/xxxx`で個別にルールを読み込み、設定を変更する

“`xml:phpmd.xml

元記事を表示

file_get_contents(): SSL operation failed に対処した

APIで月次データを取得しているPHPプログラムがエラーを吐くようになりました。

“`:ログ
file_get_contents(): SSL operation failed with code 1. OpenSSL Error messages:
error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed {“exception”:”[object] (ErrorException(code: 0): file_get_contents(): SSL operation failed with code 1. OpenSSL Error messages:
error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed at /var/www/html/xxx.php:35)
“`

エラーは`file_get_contents()`でAPIを叩いている箇所で起こっています。

元記事を表示

備忘録~ラジオボタンで入力値を残すには~

###ラジオボタンで入力値を残すには
“`

>

“`
valueの後にcheckedを入れることによって初期状態でチェックをいれておくことができる。
それと三項演算子を組み合わせる。

・三項演算子
(比較条件)?’TRUEの場合に返す値’:’FALSEの場合に返す値’

“`
($review[‘status’] === ‘未読’)?’checked’:”
“`
入力された値が未読ならばchecked、そうでなければnull
↓          ↓           ↓
これで未読のラジオボタンにチェックを入れると、次遷移しても初期状態でチェックが入るようになる。
未読のラジオボタンにチェックがは

元記事を表示

PHP8をインストールする(ソースからビルドする)for RockyLinux8.4

##はじめに
PHPは、様々なライブラリがあり大変便利ですが、コンパイル時にはそのライブラリを含めてビルドする必要があります。
PHP8とよく使うであろうライブラリ含めたコンパイルの一式の作業メモです。
処理部分をまとめていますので、必要に応じてコピペすればほぼ無操作で、PHP8が稼働する環境が作れます。

##あらかじめApacheのインストールが必要です
Apacheのインストールに関しては以下を参考にしてあらかじめインストールが必要です。
[Apache2.4をインストールする(ソースからコンパイル) for RockeyLinux 8.4 (systemd対応)](http://qiita.com/shadowhat/items/163ee5fdd56c51100e9e)

##以下のライブラリの事前インストールが必要です。
コンパイルオプションを適宜変更していただければ構いませんが、投稿で以下のライブラリが事前にインストールされている前提になっています。
インストール手順はリンクを参考にしてください。
[OpenSSL1.0](http://qiita.com/shadowh

元記事を表示

【Laravel】PHP環境からWebAPI(Laravel)へPOSTする

## はじめに
PHP製のアプリケーションAからアプリケーションB(PHP7.3・Laravel6.3)のWebAPIに対してPOSTリクエストを送信することを想定します。
異なるアプリケーションからWebAPIを叩く方法を初めて実装したので、実施した内容を整理しようと思います。

## 環境
– PHP
– V 5.6
– V 7.3
– Laravel(6.4)

## クライアント側の実装
クライアント側(リクエスト送信側)ではPHP5.6を使用したアプリケーションです。
こちら側で、Laravel製のアプリケーション(PHP7.3 / Laravel6.4)のWebAPIを叩くメソッドを実装します。
今回、WebAPIを叩くために、PHPの標準機能である「curl」をしようします。

“`php:request.php
$base_url = ‘https://xxx.xxx.xxx.xxx’; // アプリケーションBのドメイン
$destination = ‘api/hoge’; // アプリケーションBのAPIのパ

元記事を表示

OTHERカテゴリの最新記事