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

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

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
“`

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

#説明

符号なしINTカラム
コメン

元記事を表示

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のパ

元記事を表示

ワードプレス Jetpack パブリサイズ共有 SNS連携 デフォルトをオフに

#ワードプレス Jetpackプラグイン
##パブリサイズ共有
SNS(Facebook, Twitter)と連携して共有する機能
デフォルト値は、オン(共有)となっている。
このデフォルト値をオフにする方法。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2087247/5445ad91-05e7-a1ad-59fc-99f309603339.png)

次のフィルター関数を追加すれば、デフォルト値の変更が可能。

add_filter( ‘publicize_checkbox_default’, ‘__return_false’ );

テーマのfunctions.phpに追加したり、プラグイン化して追加することが可能ですが、今回は次のプラグインを使用してみた。

###Code Snippets

Code Snippets

元記事を表示

【Heroku】アカウントの登録〜デプロイまで

作成したウェブアプリを公開するため、Herokuにアップすることになったので手順を以下に記載します。

①アカウントの登録

https://signup.heroku.com/jp
から新規登録。画面に従って登録を進める。

②mysqlのアドオンを利用できるようにしたいのでクレジットカードも登録

Manage Account⇨ Billingへと進んでクレジットの登録

③Heroku CLIの登録

Get Started⇨PHPの順に進んで「チュートリアルを始める」をクリック
![スクリーンショット 2021-10-24 5.53.47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/661879/4ec64476-6cf1-c55e-34a8-9c6305c7b826.png)

Heroku CLIをインストーラーからダウンロードするか、以下コマンドラインから登録

“`heroku.bash
$ brew install heroku/brew/heroku

元記事を表示

【エラー解決】Trying to access array offset on value of type null

#はじめに#
 Laravelでちょっとハマったので一応備忘録として。

#Trying to access array offset on value of type null#
Laravelでview composerに値を渡そうとしたときにぶつかりました。

“`AppServiceProvider.php
view()->composer(‘*’, function($view){
$user = \Auth::user();
$post_model = new Post();
$post = $post_model->get_post($user[‘id’]);
$view->with(‘user’,$user)->with(‘post’,$post);
});
“`

我らがGoogle先生によると、
「null型の値で配列オフセットにアクセスしようとしています」
だそうです。
どうやらまだユーザー情報がない状態でget_postメソッドの引数に\$user[‘id’]を渡しているのが原因のようです。
それでは、あらかじめ配列

元記事を表示

自分の身の回りであったことを仲間に伝えたい人に向いています。

https://github.com/JFLABO/tsv/blob/main/djinjson.php

元記事を表示

これはこんな感じでメモするとJSONオブジェクトを生成できるシステム

https://github.com/JFLABO/tsv/blob/main/data/test.txt

元記事を表示

エックスサーバーの「メール転送(エイリアス)確認ツール」を作ってみました

## 制作のきっかけ
エックスサーバーのメール転送機能でメンバー同報メールを運用していますが、
このメールの転送先が誰だったかな?とわからなくなった時に、
わざわざエックスサーバーの管理ログインから確認するのが面倒であったため。
※そもそもその運用では利用者に簡単に使ってくださいとは開放できないですしね。
※エックスサーバーに転送メールメンバーを返信してくれるAPIなどは無いですよね?
・・・もしありますよ?ということでしたら是非お教えください。。
## エックスサーバーのメール転送設定はどこにあるか?
エックスサーバーへFTPで接続して眺めてみるのと、[エックスサーバー公式のCron設定](https://www.xserver.ne.jp/manual/man_program_cron.php)にサーバ上のローカル位置が記載されているので、それらを参考にしつつ、メール転送の設定は「.alias」ファイルに記載されることが分かりました。
“`/home/[エックスサーバID]/[エックスサーバFQDN]/mail/[メールアカウント]/.alias“`
## さっそく制作
テスト

元記事を表示

【初学者奮闘録】画像の保存/表示をする方法について(Laravel)

#はじめに
この記事は、独学開始から約3ヶ月の実務未経験者が作成したものです。
よって、スキルは非常に未熟なため、決して本記事の内容を鵜呑みにされないよう、ご注意ください。
(未熟な私が記事投稿を行なっている背景については、本文の最後にお伝えします。)

#本日の課題
自作のWebアプリ内で、【画像保存】と【画像表示】するための方法について、解説します。

###対象者
Laravelのインストールを完了している方
自作のアプリに、画像の保存/表示を実装したい方

###環境
PHP 8.0.11
Laravel Framework 8.64.0

###記事を読む前に頭に入れておいてほしいこと
【画像保存】は、DB内には保管せず、public(/storage)ディレクトリに保存していきます。
DBも使用いたしますが、それはあくまでも【パスを通すための文字列を保存する】ためです。
上記の内容を何となく頭に入れて、下記を読み進めてください。
(publicディレクトリは、appディレクトリやresourcesディレクトリ・routesディレクトリと同列に配置されています。)
(stor

元記事を表示

【Laravel】Redisのレプリケーション

## はじめに
Laravelで作ったアプリケーションについて、Webサーバ1台構成から、
負荷分散のためにロードバランサーを導入し、Webサーバ2台構成へ変更しました。

元々WebサーバのキャッシュクライアントでRedisを導入していたのですが、
Webサーバの増設に伴い、追加するWebサーバにもRedisを導入する必要が生じます。

また、Redisに格納されているキャッシュデータはWebサーバ毎に差分が出てはいけないため、
それぞれのWebサーバのRedis同士で同期が取れている必要があります。

今回は、元々あるWebサーバのRedisを新しく追加したWebサーバのRedisへレプリケーションする方法について
紹介します。

便宜上、元々のWebサーバをWeb1号機、追加するWebサーバをWeb2号機としています。
また、RedisのレプリケーションについてはWeb1号機をMaster、Web2号機をSlaveとするMaster-Slave構成にしています。

システム構成の変更は下記の図のようになります。

![20210916_1.png](https://qiita-i

元記事を表示

「WP Offload Media Lite」で開発時と本番時でドメインが異なると挙動がおかしくなる

## WP Offload Media Liteとは
WordPressの画像やビデオ、ドキュメント類をAmazon S3にアップロードして、Amazon CloudFrontなどで配信させることができるWordpressのプラグイン

WP Offload Media Lite for Amazon S3, DigitalOcean Spaces, and Google Cloud Storage

## 問題
ウェブサイトをリニューアルする際などに本番のドメインは使えないためサブドメインなどを作って、開発する要件があった。
開発環境のWordpressで画像つきの記事を登録し、本番環境に移行すると画像が表示されないという現象が起こった。

![スクリーンショット 2021-10-22 14.45.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/542793/99f8d29e-b259-d6dd-ae03-35f151cc6138.png)

本来であれば、このプラグインを使用するとS3に画像がアップロードされ、画像のパスは下記のように出力さ

元記事を表示

AWS-MFA認証のアカウントでAws\S3\S3Clientを利用するには

MFA認証が必要なAWSアカウントに対してWEB用SDKのS3Clientでアクセスする方法です。
AWSリソース間でのアクセスはRoleでの権限設定が推奨されていますが、例えばローカル開発環境からテストでS3にアクセスするとき、AWS_SESSION_TOKENの設定が必要になります。

対策はaws_session_tokenを配列に指定してオブジェクトを生成するだけです。

“`php
$s3 = new S3Client([
‘aws_access_key’ => env(‘AWS_ACCESS_KEY’),
‘aws_secret_key’ => env(‘AWS_SECRET_ACCESS_KEY’),
‘aws_session_token’ => env(‘AWS_SESSION_TOKEN’),
‘region’ => env(‘AWS_DEFAULT_REGION’),
‘version’ => ‘2006-03-01’
]);
“`
session token

元記事を表示

Build your own PHP framework

![1619573470292.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1709868/ff70fa25-16b9-0166-dd9d-e79b5609a989.jpeg)
![1619573470292.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1709868/79bddbee-a242-d6ce-ce88-061a474420f4.jpeg)

Atom Framework: [https://github.com/cuongdinhngo/atom](https://github.com/cuongdinhngo/atom)

Ezycrazy Project is powered by Atom framework: [https://github.com/cuongdinhngo/ezycrazy](https://github.com/cuongdinhngo/ezycrazy)

# 1.F

元記事を表示

OTHERカテゴリの最新記事