PHP関連のことを調べてみた2020年06月01日

PHP関連のことを調べてみた2020年06月01日

containすると全件表示されない。

DBを直接みると見れるデータが関連ターブルをcontainするとfindで取得できない時の解決法。

/src/Model/Table内の「****Table.php」を修正することで解決しました。
bakeを使ってモデルを生成したときに、joinTypeがINNERになっているのでLEFTに書き換え。

$this->belongsTo(‘Authorities’, [
‘foreignKey’ => ‘authority_id’,
‘joinType’ => ‘INNSER’,
]);

↓↓

$this->belongsTo(‘Authorities’, [
‘foreignKey’ => ‘authority_id’,
‘joinType’ => ‘LEFT’,
]);

元記事を表示

PHP Slim3フレームワークのサンプルアプリを作ろう(2-1. アプリケーションの作成・表示)

#はじめに
PHP Slim3フレームワークの勉強のため、
Slim公式のユーザーガイドにある[First Application Walkthrough](https://www.slimframework.com/docs/v3/tutorial/first-app.html#run-your-application-with-phps-webserver)のサンプルアプリを作成します。
まずは、ビルトインWebサーバーで表示させるところまで。

今回は、[skeleton project](https://qiita.com/erik_t/items/23cc9df2154e80aa137e)を使用しないバージョンです。

#前提
下記記事で構築した環境を前提とします。

– Windows10にVagrantをを入れてCentOS7をインストールしよう([1](https://qiita.com/erik_t/items/d7f7abbf7deafa4c6fe4)、[2](https://qiita.com/erik_t/items/909efb63fd389f486ec3)、

元記事を表示

Laravelでメモリリーク??? 実はそんなわけなかったというしょうもない話

タイトルで若干ネタバレしてますが、ほんとしょうもない話です。ただ、おそらく同様のことで悩まれている方が何人かいるようなので、記事にしてみます。最後の方にちょっとした知見もありますが、ほぼ読み物です。

ちなみにSQSキューワーカーでメモリリークが起きるという記事がQiitaにありますが、今回の記事はこの件と直接関係はありません。

参考)
https://qiita.com/sh-ogawa/items/d64cafce2a2646b7abc6

# 単純な処理でなぜか延々と膨れ上がるメモリ使用量

Laravel 6.xでデータベース(今回はMySQLですがこの話に関係はない)に数万行のデータをインポートしようと試みたある日のことでした。CSVファイルから1000行ずつデータを読み出して1行ずつインサートするという~~手抜き~~超簡単なプログラムです([Laravel Excel](https://laravel-excel.com)を使用)。インポートプログラムが完成して数万行あるCSVファイルを食わせてバッチを実行したところ、数千行まで処理が走った瞬間に

“`
PHP Fat

元記事を表示

AWS 上の ALB の HealthChecker に 200 を返す方法

AWS 上の ALB のターゲットの Moodle で HealthChecker に認識させることはできないのは、config.php が読み込んでいる lib/setuplib.php でリダイレクトしているからで、ターゲットでは 303 になりうまくいきません。
config.php の最上部で、以下のように記述すれば、200 を返す事ができます。
コツは、lib/setuplib.php を読み込む前に処理を入れることです。

“`PHP
$http_user_agent = $_SERVER[‘HTTP_USER_AGENT’];
if (strstr($http_user_agent, “ELB-HealthChecker”)) {
echo “ok”;
die;
}
“`

元記事を表示

Laravelでコマンドライン処理を行う

# 前提条件
[eclipseでLaravel開発環境を構築する。デバッグでブレークポイントをつけて止める。(WindowsもVagrantもdockerも)](https://qiita.com/toontoon/items/76fa7f8845b20776077c)
本記事は上記が完了している前提で書かれています
プロジェクトの作成もapacheの設定も上記で行っています

# Commandクラス作成
コマンドラインで
`cd sample`
`php artisan make:command SampleCommand`
xdebugの設定をしているとeclipseが実行していいですかというプロンプトを出すのでOKを押します
eclipseプロジェクトを右クリック→リフレッシュ
/sample/app/Console/Commands/SampleCommand.phpが現れます

# Commandクラス修正
さきほど作成したSampleCommand.phpを下記に修正します

“`SampleCommand.php

元記事を表示

PHPのフレームワーク作ってみました。

# ■PHPフレームワーク(Webシステム用)の概要

久しぶりに?PHPを触る機会があったので、フレームワークを作ってみました。
コンセプトは、

– **スモールスタートできる。**
– **あんまり準備が必要ない。**
– **直感的にわかる。**

です。
なぜフレームワークを作ったかと言うと***LaravelとかCakePHPとか使いづらい、と言うか作りづらい***と思うからです。
車輪の再発明だと言われるかもしれませんが、世の中にたくさんのフレームワークが存在しているわけですし、今更1つくらい増えても問題はないでしょと思います。

ちなみに名前は、安易ですが「***WSI: Web System Infrastructure(Webシステム基盤)***」としています。

## ★Controllerを作るのは面倒
LaravelもCakePHPも、その他のフレームワークもほとんどの場合、Controllerを作成します。
Controllerで処理をした後Viewに制御を渡して、画面を表示します。

プロトタイプなど作成すると、ほとんどの場合、HTMLと紙芝居用のJava

元記事を表示

【PHP(Laravel)】ControllerからViewにデータを渡す2つの方法

## 概要
1. ビューメソッドを使用してデータを渡すビューを指定する。
2. データを渡す。(方法2つ)

## 1.ビューメソッドを使用してビューを指定する
例)articlesコントローラーのindexファイルを指定する

““
return view(‘articles.index’)
““

## 2.データを渡す。(方法2つ)

データが入った変数 $articles をビューに渡す。

1.Withメソッドでデータを渡す。

““
return view(‘articles.index’)->with([‘articles’ => $articles]);
““
2.Compact関数でデータを渡す。

““
return view(‘articles.index’, compact(‘articles’));
““

元記事を表示

PHPで定数define()を使う方法

#定数とは
〇一度宣言すると、後から値を変更できない。(値の変更が可能なのは変数)
〇プログラム内で何度も参照される値で、プログラム実行時に変更する必要のないものに使われる。
〇大文字・小文字どちらでも使用できるが、慣習的に大文字で定義されることが多い。
#定数のルール
####使える文字

– 英数字
– アンダースコア
– 日本語(使用できるが一般的には使用しない)

####定義する際のルール

– 先頭数字はNG
– 大文字と小文字は区別される
– 記号で使用可能なのはアンダースコアのみ
– 定義済みの定数は上書きできない

#定数の種類
〇PHPでは

– difine()
– const

の2種類の定数が使用可能。
#difine()
define(‘定数の名前’,’格納する値’);

“`index.php
// 定数を定義
define(‘MSG01′,’Emailの形式で入力してください’);
define(‘MSG02′,’パスワードが正しくありません’);

echo MSG01; //「Emailの形式で入力してください」が出力されます。
echo MSG0

元記事を表示

phpのcURL、SplFileObjectでsslエラーが出たときに試したいこと

あぁ、休日の一覧データが欲しい。
欲しい、
欲しい、

別のサーバ(内閣府)からcsvで取得してみる。
せっかくなのでcurlとSplFileObjectの2方法で試す。

“`php
$url = ‘https://www8.cao.go.jp/chosei/shukujitsu/syukujitsu.csv’;

# curl
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$data = curl_exec($ch);
curl_close($ch);

# SplFileObject
$file = new NoRewindIterator(new SplFileObject($url));
“`

curlは$dataに設定されない。(errnoは35)
SplFileObjectはエラーが発生。

“`log
PHP Fatal error: Uncaught RuntimeException: SplFileObject::__construct(): SSL oper

元記事を表示

Laravelでメール送信する

# 前提条件
[eclipseでLaravel開発環境を構築する。デバッグでブレークポイントをつけて止める。(WindowsもVagrantもdockerも)](https://qiita.com/toontoon/items/76fa7f8845b20776077c)
本記事は上記が完了している前提で書かれています
プロジェクトの作成もapacheの設定も上記で行っています

# Gmailのアプリパスワード取得
今回はLaravelからGmailを使ってメールを送信しようと思います
そのためにGmailのアプリパスワードを取得します

(1) googleアカウントにアクセス
(2) セキュリティをクリックし2段階認証プロセスをONにする
![a.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/238103/a9989e42-c581-4e99-1579-604c8a0a6104.png)

(3) セキュリティをクリックしアプリパスワードをクリックする
![b.png](https://qiita-

元記事を表示

【WSL2】インストールしたての時に開発環境構築時にハマったこと

WSL2をインストール時にすんなりとうまくいったらなにも問題ないのですが、
エラーが出力して原因を探ったり、一見うまくいったように見えても実は間違っていたりと、
使いこなすのがなかなか大変です。
ハマったことを色々書いていこうと思います。

Ubuntu 18.04.4 LTSを使用しています。

## phpをインストールしてみるとエラーが出力されて、インストールできない

“`
Err:6 http://security.ubuntu.com/ubuntu bionic-updates/main amd64 apache2-bin amd64 2.4.29-1ubuntu4.6
404 Not Found [IP: XX.XXX.XX.XXX 80]
Err:7 http://security.ubuntu.com/ubuntu bionic-updates/main amd64 apache2-utils amd64 2.4.29-1ubuntu4.6
404 Not Found [IP: XX.XXX.XX.XXX 80]
Err:8 http://securit

元記事を表示

さくらVPSでLAMP + WordPress環境を構築する方法まとめ

#さくらVPSでLAMP + WordPress環境を構築する方法まとめ

学習用にさくらVPSでLAMP環境を構築したので、手順をまとめます.

## 目次
* [動作環境](#動作環境)
* [手順](#手順)
* [さくらVPSの申し込み](#さくらVPSの申し込み)
* [SSH接続](#ssh接続)
* [SSH接続のセキュリティ設定](#ssh接続のセキュリティ設定)
* [Apacheのインストール](#apacheのインストール)
* [ドメインの設定](#ドメインの設定)
* [リポジトリの設定](#リポジトリの設定)
* [phpのインストール](#phpのインストール)
* [MySQLのインストール](#mysqlのインストール)
* [SSLの設定](#sslの設定)
* [wordpressのインストール](#wordpressのインストール)
* [終わりに](#終わりに)

# 動作環境
`OS : macOS Mojave 10.14.6`
`VPS OS : centOS `

# 手順

## さくらVPSの申し込み

1.

元記事を表示

PHPと Vue.jsで簡易掲示板を作ろう〜その2( SCSS編)〜

#初めに

前回にの
[PHPと Vue.jsで簡易掲示板を作ろう〜その1(PHP編)〜](https://qiita.com/fijii_rin/items/307d560c591ecbb3c93b)
の続きです。
3つのパートに分けて
1.PHPでとりあえず動く掲示板を作る
2.SCSSで簡単なデザインを作る←今回はここ
3.Vue.jsで少しリッチな動きをつける

#目次
・このパートでの完成イメージ
・HTML部分の変更の記述
・SCSSの記述
・まとめ

##このパートでの完成イメージ

スクリーンショット 2020-05-31 6.45.08.png

・ボタンホバー時

スクリーンショット 2020-05-31 6.43.24.pngPHPで閲覧中のデバイスの画面サイズを返す。

下記サイトサンプルを修正、実行後リダイレクトしデバイスのwidthとheightを取得。
https://stackoverflow.com/questions/23239157/get-browser-width-using-php

““
get_screensize.php