PHP関連のことを調べてみた2019年12月31日

PHP関連のことを調べてみた2019年12月31日

PHP 逆ポーランド記法

## 逆ポーランド記法とは
– 被演算子の後ろに演算子を表記する演算記法。
– 後置記法(Reverse Polish Notation, RPN)という。
– 10+20 → 10 20 +

## 主な手順
– 式を一つ一つ分割し、演算子以外であればスタックに積む(PUSH)。
– 演算子であればスタックから数字を取り出す(POP)。
– 演算結果をスタックに積む。

“`php

元記事を表示

bashでhealth check

# bashでhealth checkのめも

php-fpmとcrondを監視します

“`bash
#!/bin/bash

while true
do
PHP=`sudo ps ax | grep ‘php-fpm: master’ | grep -v grep | wc -l`
CROND=`sudo ps ax | grep ‘crond’ | grep -v grep | wc -l`
if [ $PHP = 1 ] && [ $CROND = 1 ] ; then
echo “HTTP/1.0 200 Ok” | nc -l 8080
else
echo “HTTP/1.0 500 NG” | nc -l 8080
fi
[ $? != 0 ] && break
done

“`

元記事を表示

?【Laravel】register_shutdown_function()使うときは配列にして$thisも渡す

## 環境
PHP 7.3.10
Laravel 6.5.0

## やりたいこと
関数の実行終了前に任意の関数呼び出すregister_shutdown_function()をLaravelで使いたい
が、こいつを書くと下記の例外が発生する

“`
ErrorException
register_shutdown_function(): Invalid shutdown callback ‘HogeHoge’ passed
“`

どうやらインスタンスメソッドである「$this」を渡さないといけない様子

## やったこと
引数を配列にして$thisと対象の関数名を渡す

“`HogeController.php
/**
* 完了前にコールバックを呼び出したい関数
*
* @param Request $request
*/
public function doSomething(Request $request) {
// 色々処理します
// …

// ❌例外発生パ

元記事を表示

パフォーマンスのために生まれたPHP Excel拡張機能xlswriter 1.3.3がリリースされました!

xlswriterは、Excel 2007+ XLSXファイルからデータを読み取り、複数のシートを挿入し、テキスト、数値、数式、日付、チャート、写真、ハイパーリンクを書き込むために使用できるPHP C拡張です。

以下の機能があります。

###### I.書き込み

100%互換性のあるExcel XLSXファイル
-完全なExcel形式
-セルの結合
-ワークシート名を定義する
-フィルター
-チャート
-データの検証とドロップダウンリスト
-ワークシートPNG​​ / JPEG画像
-大きなファイルを書き込むためのメモリ最適化モード
Linux、FreeBSD、OpenBSD、OS X、Windowsで実行
-32ビットおよび64ビットにコンパイル
-FreeBSDライセンス
-唯一の依存関係はzlibです

######次に、読みます

-データを完全に読み取る
-カーソル読み取りデータ
-データ型による読み取り
-xlsxからCSV

#ベンチマーク

テスト環境:Macbook Pro 13インチ、Intel Core i5、16GB 2133MHz LPDDR3メモリ、1

元記事を表示

PHP,Pythonでの一時的なAWS認証情報の取得

# はじめに

AWSのEC2にアクセスキーを発行するのはアンチパターン。
キーが盗まれて使われることがあるので、キーは発行しないのが一番良い。
EC2にIAMロールっていう一時的なアクセスキーを発行するのが良いパターン。

# Pythonで使う

“`:run.py
import boto3

session = boto3.session.Session(profile_name=’prodaccess’)
credentials = session.get_credentials()

# この値をbotoとかで自由に使って。
print(credentials.access_key)
print(credentials.secret_key)
print(credentials.token)
“`

[boto3を使った一時的なAWS認証情報の取得](https://qiita.com/speg03/items/9ba5a34d721c9f4f90c5)

# PHPで使う

## Laravelで使う

aws-sdk-php-laravelってライブラリがある。

元記事を表示

PHP 変数を文字列中で展開する

# 目的

– 変数に格納された内容を文字列中で展開して表示する方法をまとめる

# 書き方の例

– 下記に変数Aに格納された内容を文字列中で展開して表示する処理を記載する。

“`php
echo “任意の文字列{$変数A}任意の文字列”;
“`

# より具体的な書き方の例

– 下記に変数`name`に格納された内容を文字列中で展開して表示する処理を記載する。

“`php
//変数に内容の格納
$name = “みりを”;

echo “おはようございます{$name}さん”;
“`

元記事を表示

PHP 変数に格納された値の足し算あれこれ

# 目的

– PHPの変数に格納された値の足し算で省略方法をまとめる。

# 変数Aに格納された数値に任意の値を足し、再度変数Aに格納する。

– 通常通り記載すると下記のようになる。

“`php
$変数A = $変数A + 任意の値;
“`

– 省略形を記載する。

“`php
$変数A += 任意の値;
“`

# 変数Aに1を足し、再度変数Aに格納する。

– 通常通り記載すると下記のようになる。

“`php
$変数A = $変数A + 1;
//前述の省略を行った時
$変数A += 1;
“`

– 省略形を記載する。

“`php
$変数A++;
“`

– 前述の省略形の実行と同時に`echo`を実施する際の差異

“`php
//echoした後に+1する
echo $変数A++;

//echoする前に+1する
echo ++$変数A;
“`

元記事を表示

Moodle 3.8 マニュアル – Web ホストを見つけ選択する

[原文](https://docs.moodle.org/38/en/Finding_and_Selecting_A_Web_Host)

# Web ホストを見つけ選択する

内容

[1 目的](#1-目的)
[2 Moodle のインストールを計画すること](#2-moodle-のインストールを計画すること)
[2.1 役割とスタッフをつくること](#21-役割とスタッフをつくること)
[3 あなたは誰ですか? Moodle インスタンスのタイプ](#3-あなたは誰ですか-moodle-インスタンスのタイプ)
[3.1 教室の先生、インストラクター、教授、あるいはコース作成者](#31-教室の先生インストラクター教授あるいはコース作成者)
[3.2(限定的な)Moodle の管理者](#32限定的なmoodle-の管理者)
[3.3 上級の Moodle 管理者](#33-上級の-moodle-管理者)
[3.4 サーバ管理者](#34-サーバ管理者)
[4 ホストのタイプ](#4-ホストのタイプ)
[4.1 MoodleCloud](#41-moodleCloud)
[4.2

元記事を表示

PHP初心者の小さな気付き2019

###はじめに

慣れている人にとっては、「別に」だけど、初心者や業務で全く使わない人が
チャレンジした時に「ゴリゴリに書いているあの処理」の場所にどうやっても行きつかない。
というかH1タグに書いた「hello world」だけしか表示されない。
そんな経験はないだろうか?

そんな間違いやすかった点を幾つかまとめてみた。
さほど年齢も重ねていないのに「仕事に関係ないし、やったことのない事は若いもんに任せて(丸投げして)」という人をチラホラ見かける。
(というか私より年下だよね?みたいな人達もいる)

そんなことを言っていいのは__[人生50年…]という名台詞を残した織田信長だけだ__
と密かにおもっている。
初心者中の初心者の小さな気づきを残そうと思う。

#1.開始タグ

元記事を表示

恐竜図鑑登録ページ1(恐竜図鑑になりたいの〜!の概要)

#恐竜図鑑が作りたい
##1.はじめに(ここに至る経緯)
年内で、とりあえず5本の記事は書きたい。
4本で終わらせるのは、なんとなくキリが悪い。
laravelにも手を出そうとしているのだが、記事をまとめるのに時間がかかりそう。
何かないかと探したところ見つかったのが、恐竜ゲームの動画だった。
そこでこんなタイトルで始めているのだが。。。
__電波なタイトルには若さが必要なので、[この時点で私の年齢は17歳]ということにする。__

__このタイトルは実は割と奥が深い。__

仕事はどこの会社でも必要になっているシステムを創ってますというと聞こえはいいし、
__~~「やってみるとそこまで興味がなかったり」~~__貢献度の高い業務だと認識する。

仕事なので色々割り切ったりしながら取り組んでいる。

そんな私のストレス解消でつい最近までハマっていたゲームがある。
暇になったら再開するつもりだ。

ジュラシックワールドアライブというゲームで、ゲットした恐竜のDNAを合成させて
さらに強い恐竜を作ってバトルするゲームだ。

こんなのが作成できるゲームです。
![IMG-2394_mini.p

元記事を表示

Laravel6.0でphpコンテナに入れない

Laravel6.0にAuth機能を追加したあとphpコンテナに入れなくなりました。
解決するまで道のりをまとめました。

### Laravel6.0にAuthを追加する方法はこちら

[https://qiita.com/yknsmullan/items/0f04f8098f1a87ffece8](https://qiita.com/yknsmullan/items/0f04f8098f1a87ffece8)

#####docker-compose up -dでphpに入れない
“`
sample_mysql_1 docker-entrypoint.sh mysqld Up 0.0.0.0:3306->3306/tcp
sample_nginx_1 nginx -g daemon off; Up 0.0.0.0:80->80/tcp
sample_php_1 sh -c /usr/src/wait-for-it … Exit 1
“`
psでupになっていなければ入れていま

元記事を表示

macOS MojavにPHP-5.6.30をインストール

## 結論
結論を先にいると、Linuxでやるのをオススメです。
どうしでも、macOSでやりたい場合、最後の情報をご参照ください。

## 事件の時系列ログ:
1. 古いPHP-5.6.30システムをメンテナンスしているんですが、ローカルからデプロイしたところ、デプロイツール[dep](https://deployer.org) が2019年12月の下旬に動けなくなりました。
2. `php -v` したら、エラーになりました。
“`dyld: Library not loaded: /usr/local/opt/openssl/lib/libcrypto.1.0.0.dylib“`
3. あれっ、いつのいつの間に、phpがこけた、しかも、openssl関連、そういえば、最近`brew update & brew upgrade`を実行したなあ。これと関係あるかもしれません。
4. `openssl version`したら、`OpenSSL 1.1.1d 10 Sep 2019`、もう1.1になっている、そうか、古いphpが古いopensslを参照しているので、これでエラーか。

元記事を表示

【Laravel5.5】メール送信にホワイトリストチェックをいれるよ

# まえがき
開発環境とかはMailHogをつかって実際に送信しないようにするけど、
ステージングや検証環境みたいな、
 **自分や自社宛のだけは実際に送信したい**
てときにホワイトリストを作って判別することがあります。
で、先日もLaravelを使っててそんな状況になったので、対応のメモです。

## ツール
– XAMPP v3.2.4
– PHP 7.3.8
– Laravel 5.5.45

## メール送信処理

今回は、 `Illuminate\Mail\Mailable` を使ってテンプレートを読み込んで送信する方法で実装しています。

“`php:App\Notifications\InvoicePaid
use App\Mail\InvoicePaid as InvoicePaidMail;

class InvoicePaid extends Notification
{
// 省略

/**
* Get the mail representation of the notification.
*

元記事を表示

【Laravel】バリデーションを利用しよう

#はじめに
今回はバリデーションの使い方について説明します。
バリデーションとは**フォームから入力された値がルールを守れているかチェックすること**です。
ルールを設けることで意図していない形式の入力を防ぐことができます。

#バリデーションの使い方
では、バリデーションの使い方について説明します。
下記のコードで基本的なバリデーションはできます。
フォームから値が送信されるアクション(`post`)内の記述です
入力フォームから`name`,`mail`,`age`の3つの値が送信されます

“`php:app/Http/Controllers/コントローラ
public function post(Request $request)
{
$validate_rule = [
‘name’ = ‘required’,
‘mail’ = ‘email’,
‘age’ = ‘numeric|between:0,150’,
];
$this->validate

元記事を表示

PHPでSpotify APIを使う

# 目次
– はじめに
– GitHubからライブラリを落とす
– Spotifyのダッシュボードからアプリケーションを作成する
– APIに接続する
– 関数を使ってみる
– 補足
– お世話になったサイト

# はじめに
脱プログラミング初心者を目指すがてら、PHPでSpotify APIを使ったWEBアプリを作りました。いろいろ調べながら大変な思いをして作ったので、せっかくだから爪痕を残そうと思って書いてます。自分のようなプログラミング初学者の助けになればと思います。
APIってなんのことだかよくわからないという方、プログラミング始めたての方でもわかるように書いたつもりです。

# GitHubからライブラリを落とす
こちらのライブラリを使ってます。
> [spotify-web-api-php](https://github.com/jwilsson/spotify-web-api-php)

このライブラリの[README](https://github.com/jwilsson/spotify-web-api-php/blob/master/README.md

元記事を表示

【Laravel】自画面遷移時にセレクトボックスの選択値を保持させる

検索画面など、自画面遷移時にセレクトボックスの選択値を保持させる方法です。

## やりたいこと
自画面遷移時にセレクトボックスの選択値を保持させる

* 処理実行→自画面遷移時
* バリデーションエラー時

の2パターンに対応させる

## 環境
* PHP:バージョン7.3.7
* Laravel:バージョン5.8
* OS:Windows10

## 書き方

typesテーブルから取り出した値(ID、NAME)をもとにセレクトボックスを作成する場合の記述は以下の通り。

“` php

OTHERカテゴリの最新記事