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

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

composerとは/活用方法

composer = PHPのパッケージ管理システム

大抵の場合は、PHP関数のみではなくフレームワークやライブラリの活用を行う。
その際に、毎回それらをインストールするのは面倒。
composerは使うたびに名前を列挙するだけで呼ぶ出すことができる優れもの。

●⚪︎● 実際の流れ ●⚪︎●

新しいプロジェクトの中で、ログライブラリのmonologを使いたい場合。

1、PHPアプリケーションを作成するディレクトリに、JSONファイルを入れる。

“`
{
“require”: {
“monolog/monolog”: “1.0.*”
}
}
“`
composer.json は、アプリケーションで利用するパッケージ(ライブラリ)を列挙します。 ここに列挙したパッケージが、Composer による管理の対象になる。

2. composer.json に列挙したパッケージをインストール(ダウンロード)してみます。 composer install コマンドを実行する。

“`
composer install
“`

3.すると、ve

元記事を表示

【PHP8】Jupyter と PHP8.0 カーネルのノートブックを Mac やラズパイや Windows の Docker 上で動かす

> PHP8.0 でも Jupyter の Notebook を使いたい。macOS や RaspberryPi や Windows で。
>
> でも、いろいろインストールしてローカルを汚したくない。

そんな遊び心満載なユーザー向けなものが Dockerどこか にないものか。

## TL; DR

> **Jupyter-PHP の PHP8 用修正パッチ**と macOS/Windows10/Raspbian で動く JupyterLab の Dockerfile を作ってみました。
>
> 作り方や経緯、「Jupyter?何それ。typoってない?」と言う方は TS; DR をご覧下さい。

### PHP8 カーネル入り Dockerfile の URL

– JupyterLab/Jupyter Notebook の PHP8 カーネル入り Dockerfile([JIT](https://ja.wikipedia.org/wiki/%E5%AE%9F%E8%A1%8C%E6%99%82%E3%82%B3%

元記事を表示

PHP 任意精度四則演算クラス

PHPには以前より[BCMath](https://www.php.net/manual/ja/book.bc.php)という任意精度数学関数がありますが、利用できるよう自由に設定することができないケースもあるかと思いますので、そういった場合の代用として作成しました。
BCMathほど多くのことはできませんが、とりあえず桁数制限のない小数を含む四則演算と剰余が使用できます。

###スクリプト###

~~~php:decimalcalc.php

元記事を表示

Slackで投稿内容やファイルを閲覧するページを自作したお話 ①導入編

# 背景

Slackは非常に便利なコミュケーションツールなのですが、無料枠で使っていると閲覧上限1万件&ストレージ制限5GBが大きな制約となります。
自分の所属する団体では150人とかで使うので、1万件の制限があると3ヶ月分ぐらいしか閲覧できません。
(課金しろという話ですが、スタンダードプランにしても10万/月以上かかるので、、)

## 解決策??

ワークスペースを複数で運用したり、ログを取得するGASスプリクトをコピペして運用したりしていました。

参考) [コピペのみ。Slackメッセージログを自動で保存する方法](https://best-cloud.jp/slack-auto-save-message-log/)

### 問題点

ワークスペースを複数で運用すると、メッセージの共有ができないなど、コミュケーションツールとしての良さが失われてしまいます。また、GASスプリクトはログを残しておくという点では良いですが、後で閲覧するには不適です。

## 解決策: ログの取得や閲覧ページを自作する!

既存の方法で解決しないなら自分で作ってしまえ!という発想です。
とりあ

元記事を表示

ローカルでPHP+Composer環境を作ってちょっとテストしたいとき

## 事前準備

– Windows10
– wsl2+Ubuntuをセットアップしておく
– wsl2+Ubuntu上でPHPをインストールする

“`bash
sudo apt update
sudo apt install php7.4
# 必要に応じて各モジュールもインストール(php7.4-zipやphp7.4-xmlなど)
“`

## 手順

– composer取得
– [https://getcomposer.org/download/](https://getcomposer.org/download/)
– composer init実行

“`bash
php composer.phar init
# いろいろ聞かれるが全部Enter or Noを選択
“`
– composerを使って試したいパッケージ等をインストール

“`bash
# 例: MessagePackを試してみる
php composer.phar require rybakit/msgpack
“`

– dump-autoload実行

“`bash

元記事を表示

デザインパターン感想

##Java言語で学ぶデザインパターン

####はじめに
[java言語で学ぶデザインパターン入門](https://www.amazon.co.jp/%E5%A2%97%E8%A3%9C%E6%94%B9%E8%A8%82%E7%89%88Java%E8%A8%80%E8%AA%9E%E3%81%A7%E5%AD%A6%E3%81%B6%E3%83%87%E3%82%B6%E3%82%A4%E3%83%B3%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3%E5%85%A5%E9%96%80-%E7%B5%90%E5%9F%8E-%E6%B5%A9/dp/4797327030)という本で学んだ際に感じたことを書いていきたいと思います。完全に個人的な意見です。書籍に書かれている例などは色んな方がわかりやすく解説しているのでそちらを参考にしてみると理解が深まると思います。

####この本を読んで感じたこと
正直、初心者にとってこの本を読むことは非常に難しいと感じました。自分の場合、cakephpというフレームワークを使用しており、自分でクラスを作るなどしておら

元記事を表示

[PHP]composerダウンロードの流れとLaravelインストール

##composerダウンロードの流れとLaravelインストール

#MacOS
https://getcomposer.org/download/
上記にアクセスし、ページ下の方のManual Downloadから最新バージョンのリンクをクリックしダウンロードする
![989089038158fb8d7206e1467abbdd32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/725167/1b4f0266-3fbf-6a7a-3da0-c25ee565d233.png)
(ここでいうと2.0.7という部分)
#コンソールでもできる(多分)
“`java:ターミナル
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
“`
私はコンソールでしました
#バージョンの設定
“`java:ターミナル
chmod a+x

元記事を表示

Laravel 5.5 Socialiteのインストールでエラーが出た

環境

Laravel バージョン 5.5

Socialiteをインストール

LaravelでSNSログインする際にいろいろやってくれるSocialite。

公式
https://readouble.com/laravel/5.5/ja/socialite.html

composerでインストールします。

~~~:ターミナル
composer require laravel/socialite
~~~

順調に行くかと思われたその時、

~~~
Installation failed, reverting ./composer.json to its original content.
~~~

むむ。
怒られました。

解決方法

現在、Laravel 5.5では 最新バージョンがインスールできないらしい。

ということで、

~~~:ターミナル
composer require laravel/socialite “3.0.*”
~~~

3.0をインストール。

~~~
Package manifest genera

元記事を表示

PHPのcURLがTLS1.2に対応しているか確認する

# はじめに
WebAPIで連携しているサービスから
「TLS1.0とTLS1.1を廃止して、TLS1.2のみ対応します」
と連絡がきたので、WebAPIを呼び出しているphpのcURLがTLS1.2に対応しているか確認したいと思います。

# 環境
CentOS 7
php 5.4.16
cURL 7.29.0

# コード
phpのcURLでYahoo!セキュリティセンターのサイトに接続してみます。

“`php:tls.php

元記事を表示

配列から重複した値を取り除く方法 php &javascript

###どのようなことがしたいか?
[1,4,3,1,3]のような配列から重複した値を取り除いて、[1,4,3]のような配列にしたい。
###結論
####php
array_unique()を使う
####javascript
Setを使う
________
phpでは、array_unique()をいう関数を使うことで配列から重複した値を簡単に取り除くことができます
引数には対象の配列をいれますarray_unique(対象の配列)

““php:qiita.php
$array=[2,3,2,4,3];
$array2=[‘a’,’b’,’c’,’a’];
$array=array_unique($array);
$array2=array_unique($array2);
//$array=[2,3,4] $array2=[‘a’,’b’,’c’]
““
一方javascriptではES2015(ES6)で導入されたSetを使います。これを使うことによって簡単に配列から重複した値を取り除くことができます。

““qiita.js
let array

元記事を表示

お問い合わせフォーム、jsバリデーション【改】

“`javascript:contact.js
window.addEventListener(‘DOMContentLoaded’, () => {
// 「送信」ボタンの要素を取得
const submit = document.querySelector(‘#contact-submit’);

// エラーメッセージと赤枠の削除
function reset(input_infomation, error_message){
const input_info = document.querySelector(input_infomation);
const err_message = document.querySelector(error_message);
err_message.textContent =”;
input_info.classList.remove(‘input-invalid’);
};

// 「お名前」入力欄の空欄チェック関数

元記事を表示

学習を応用し自分で考えたプログラム(随時更新予定)

####今回は、お客様アンケート(仮)を作成 2020/11/27

“`
1) {
echo ‘ご利用ありがとうございました’ . PHP_EOL;
} else {
echo ‘品質向上の為何かアドバイスをいただけないでしょうか’ . PHP_EOL;
}
$Impressions = trim(fgets(STDIN));
//aが1より大きければご利用ありがとうございました!aが1より小さければアドバイスのお願い
//標準入力と、半角スペース削除の処理、if文のみを使用した処理です。
“`

![first_production.gif](https://qiita-image-store.s3.ap-northe

元記事を表示

[PHP]クラスメソッド

#PHPクラスメソッド
##コンストラクタを活用
$countの初期値を0として、コンストラクタ内でクラスプロパティ$countの値に1を足すことで、生成されたインスタンスの数(メニュー数)を数えることができる
![1468306056981.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/725167/ffb3bc07-282a-22e3-c67e-2c01adb21c7c.png)
![1467970306991.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/725167/ba168247-322a-cc8e-f27d-f5468cb271a8.png)
#self
クラスの中で使うとそのクラス自身のことを指し示し、「self::$クラスプロパティ名」のように使う
![1467970318544.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com

元記事を表示

MAMPのPHPのexec()からpython3を簡単実行。

MAMPのpythonはversion2なので、ずっとこの壁にぶつかってたんですが、

“`php
$command = “python test.py”;
exec($command, $output, $return_var);
“`

python→python3でできました。意外と簡単でした。

“`php
$command = “python3 test.py”;
exec($command, $output, $return_var);
“`

元記事を表示

DockerでPHP開発をしている際に、vscodeでの実装変更が反映されない。

#環境
macOS
DockerでPHPを使用
#解決方法
順序1

“`
Docker コンテナの停止・削除
$docker-compose down
“`
順序2

“`
Docker コンテナの起動
$docker-compose up -d
“`
これだけでした汗

#発生状況&原因
#####発生状況
vscodeでいつものようにPHPの勉強をしていた際に、vscodeで新たな実装変更を行いました。ターミナルで動作確認すると実装変更が反映されない状況になってしまいました。

このような状況に、、、汗

“`
ss@saaaMPro src % docker-compose exec app php book_log.php
Could not open input file: book_log.php
“`

なので原因を探るため
ターミナルでのディレクトリの位置が間違っていないか?
ファイル名が間違っていないか?
エラー内容が、入力ファイルが開けないと言っている、、、、なぜ、、(泣)

#####原因

ここでは、server-sideディレクトリのpart2の

元記事を表示

ログイン機能例

“`
setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);

$sql = ‘SELECT name FROM mst_staff WHERE code=? AND password=?’;
$stmt = $dbh->prepare($sql);
$data[]=$staff_code;
$data[]=$staff_pass;
$stmt->execute($data);

$dbh =null;

$rec = $stm

元記事を表示

curlの”-u”オプションで引き渡される認証情報をヘッダーに直接設定したい

先日プロダクトのアップデートを管理しているJenkinsサーバに対して新たにAPIを送るよう実装する機会があり、その際にインフラチームから共有いただいたAPIの呼び出し方法が下記のようなものでした。

“`
curl -k -X GET “https://hogehoge.jp/job
?token=${api_job_token}” -u ${api_user_name}:${api_user_token}
“`

#### “-u”オプションって?
> Specify the user name and password to use for server authentication. Overrides -n, –netrc and –netrc-optional.
If you simply specify the user name, curl will prompt for a password.

参照:https://curl.se/docs/manpage.html#-u

curl先のサーバーで行われる認証に対し、ユーザ名と

元記事を表示

VScodeでPHPを書こうとすると右下に表示されるエラーを解消したい

## 環境
* OS
* Windous10 Home x64

* VScode
* Version 1.51.1

## 表示されたエラーメッセージ
【 phpcs: Request workspace/configuration failed with message: Unable to locate phpcs. Please add phpcs to your global path or use composer dependency manager to install it in your project locally. 】

## ざっくりした意味
「phpcs」を見つけることができなくて、ワークスペースの構成ができていないよ!
phpcsを自力でインストールするか、「Composer」を利用してインストールしてください。

## 解決するためにやったこと
1. Composer をインストールする
[➤Composerインストール先](https://getcomposer.org/download/)

2. コマンドプロンプトを起動

元記事を表示

Webサイトに来る実際の攻撃(不審なアクセス)を公開してみる

グローバルIPアドレスを持つWebサーバーで自分のサイトを運営していますが、脆弱性を狙った不審なアクセスが毎日来ます。一度内容まとめたいと考えていたのですが、同様のことをされている方の記事を見つけ、自分もしてみました。

– [Webサイトに来た攻撃をまとめてみた](https://qiita.com/hot_study_man/items/b12340f932574c9f309d)

実際に来た不正アクセス試行は種類を挙げればきりがありませんが、件数が多いものを紹介したいと思います。有効な対策だと思われることについても言及しています。

ちなみに解析の方法は、ログを一旦DBに入れてSQLで集約しています。

インターネットにWebサーバーを公開すると、こんな攻撃が来る…という参考になればと思います。と考えると、はてなブログやレンタルサーバーはプロバイダーが責任を持ってくれるから安心ではありますね。

##環境

– VPS (Virtual Private Server: 仮想環境のLinuxサーバー)
– WordPress

一応、WAF (Web Application Fi

元記事を表示

MAMPでphpのエラーをターミナルから問題を探す方法

## MAMPでphpエラーが出た際にターミナルでエラーを探す方法

みなさんこんにちは。
今回はMAMP環境でエラーが出た時にエラーがどこから出てきているのかを確かめる方法を紹介します。

また、間違えや指摘等ございましたらコメントよろしくお願い致します。

### 環境
今回僕のパソコンはmacなのでwindowsの方には対応しておりません。

### エラーの確認方法1
初心者の頃(現在も初心者)にエラーが出たらどこを見て、何が問題なのかを見つけることさえできていませんでした。

まず、エラーが出た際にはブラウザのディベロッパーツールを利用して確認してみましょう。プログラムを反映させたいページ(現在エラーが出ていて動いていないページ)で右クリック→検証→consoleを確認してみましょう。

こちらにエラーが出てきます。これは大体利用されていると思うので次の方法も紹介します。

### エラーの確認方法2
ターミナルから確認する方法です。ターミナルは真っ黒の画面になっていて、cuiなので初めは操作やりにくいけど意外と慣れたら使いやすいかもです。

方法としてはま

元記事を表示

OTHERカテゴリの最新記事