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

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

supervisor docker構築 使用方法

# Supervisor構築

## 今回のインフラ構成
### Dockerのコンテナ
– Laravel(phpコンテナ)
– Nginx
– dbサーバ(mysql)

## suervisor導入理由
laravelにはデフォルトで以下のコマンドが存在するが落ちる可能性が高く落ちたときにjobバッチが実行されない危険性があったのでsupervisorを導入してlinux上で監視させ落ちたときに自動で再起動させるように設定
“`
php artisan queue:work
“`

### 実装方法
まずsupervisorを導入したいコンテナのdockerFileにsupervisorインストールさせるコマンドを追記する
今回はphpコンテナを監視させたいのでphpのdockerFileに以下を追記する
“`
RUN apt-get update supervisor
“`

次にsupervisord.conf(設定ファイル)を作成する

“`
[supervisord]
// trueに設定しないと起動時にデーモンモードになってしまい落ちる

元記事を表示

【Laravel】ビューコンポーザとは

# はじめに

半年前くらいにビューコンポーザについて調べたつもりでしたが、見事に忘れました…。
私と共にビューコンポーザについて学んでいきましょう。

# 準備

ビューコンポーザを使用するには、アプリケーションのサービスプロバイダに登録する必要があります。
“`config/app.php

‘providers’ => [
// 他のサービスプロバイダ
App\Providers\FoodServiceProvider::class,
],
“`
# ビューコンポーザとは

**ビューをレンダするときに呼び出す**コールバックまたはクラスメソッド
(今回はクラスメソッドを呼び出すパターンのみ確認していきます。)

## ビューコンポーザを使うと何が嬉しいの?

**ビューを表示させる責務**と、**ビューに表示させるデータを扱う責務**を完全に分けることができます。

# 実際に書いてみる

## ビューコンポーザがない時
“`FoodController.php

元記事を表示

Python,Ruby,PHP,Java,JavaScript,Perlのビット演算の比較

Qiita > プログラミング言語の比較

Python,Ruby,PHP,Java,JavaScript,Perlのビット演算の比較

# Python

https://qiita.com/7shi/items/41d262ca11ea16d85abc

# Ruby

https://qiita.com/jkr_2255/items/8e29dce1999f3f6b69ad

# PHP

https://qiita.com/mpyw/items/ce626976ec4dc07dfec2

# Java

https://qiita.com/Ingward/items/43acda931c8a62c70d2f

# JavaScript

https://qiita.com/41semicolon/items/c1a16f220d4545410ddc

# Perl

https://perlzemi.com/blog/200808061

元記事を表示

WordPressをゲートウェイとして侵入するPHPマルウェアを駆逐し、Findコマンドを使いこなす

WordPressをセキュリティ対策せずに使っていると間も無くマルウェアに侵入されてしまいます。

**症状**
– WordPressサイトが知らないショッピングサイトにリダイレクトされている
– 静的HTMLサイトだったはずが、全てのページリンクがトップページの表示になっている

参考になった記事はこちら
https://qiita.com/Ayutanalects/items/a359df4e4b445229fcf2

## 影響範囲

### 当のWordPressサイトでは

– 不明なショッピングサイトにリダイレクトされている。
– Google サーチコンソールから「商品の構造化データの問題」アラートが届くようになる。
– このサイトはショッピングサイトではないので商品の構造化データはないはずなのに
– WordPress管理画面にアクセスできなくなっている。

### 同一アカウントの別サイト(マルチドメイン)では

– トップページは表示されるが、それ以外のページが表示されない。
– .htaccess が改ざんされていて、全てのリンクが index.

元記事を表示

user登録したものをloginする方法(DB編)

MySQLでユニークの設定をすることができれば、うまくいきます。

①table作成時に必要な場所に 「indexのカラム部分」を「UNIQUE」へ変更する

元記事を表示

login実装中は他の関連ページ入れないようにする方法

login実装中は他の関連ページ入れないようにする方法について学習したので、共有します。

通常、login機能を実装しただけでは関連ページをlocalhost/~で

入力すると関連ページを開くことができます。

これを見れないようにする方法は、リダイレクト機能を使うことによって関連ページを入力すると

loginページに戻るように設定する方法を共有します。

①sessionにidを持たせる
“`php

if( password_verify($login_pw ,$user[“login_pw”])){
//password_verify指定したハッシュがパスワードにマッチするかどうかを調べます。
//Login成功したら、session_id,name,age,mailを持たせてreg_list.phpへ
$_SESSION[“chk_ssid”] = session_id(); //自分のsession.ID
$_SESSION[“id”] = $user[‘id’]; // idを持たせる

元記事を表示

Codeigniter3で 実行したSQLを確認する方法

# 最初に結論から言うと

データベース設定の **save_query = true** にして
model で `$this->db->last_query()` を実行すれば取れる。

# 解説
## SQLの取得方法

公式のドキュメントには以下のように書いてあります

>$this->db->last_query()
>
> 最後に実行されたクエリを返します (クエリの文字列で、結果ではありません)。例:
>“`
>$str = $this->db->last_query();
>
>// 次のように生成されます: SELECT * FROM sometable….
>“`

## でも出ないんだよ!!!

Modelの中で以下のように実行しても画面に表示される事がありませんでした。

“`php
echo $this->db->last_query();
“`

## どうやったら取得できるようになるの??

### そんなときには・・・

#### application/config/database.php の中身を確認して!

インストールした当初に書

元記事を表示

PHPによる特許情報取得APIのトークン取得

# 特許情報取得APIについて
日本国特許庁が提供するサービス。
特許情報を取得するためのRest-APIです。
本記事では、PHPで特許情報取得APIのトークンを取得する方法について、説明します。
特許情報取得APIについては、他の方がまとめてくれています。

https://qiita.com/kenichiro_ayaki/items/dde737d0d5561c5e4b4c

# PHPでトークンを取得する
特許情報取得 API 利用の手引きには、以下の形式でトークンが取得できるという記載がありますが、PHPでは取得時にエラーが発生しました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2893056/44f4664d-d049-8bf1-d4e2-7019c5f94af0.png)

特許庁 総務部 総務課 情報技術統括室 特許情報企画調査班に問い合わせたところ、PHPやプログラミング言語によっては、Headerに”User-Agent”を追加する必要があるという回答をいた

元記事を表示

Laravelで使えるリレーションを図でまとめてみたよ

# 概要

Laravelのリレーションに関するドキュメントを図でまとめてみました。
たまに何がなんだったか忘れるので忘備録。

## HasOne / BelongsTo
– ユーザー1人対して1つの電話番号が紐づいている
– 紐づくモデルが紐付き先を知っている

“`mermaid
classDiagram
direction LR;

class ユーザー{
id

}

class 電話番号{
id
ユーザーid
携帯番号
固定電話番号
}

ユーザー –> 電話番号:HasOne
電話番号 –> ユーザー:BelongsTo
“`

## HasMany / BelongsTo
– ユーザー1人に対してユーザーの投稿が複数紐づいている
– 紐づくモデルが紐付き先を知っている

“`mermaid
classDiagram
direction LR;

class ユーザー{
id

}

class 投稿{
id
ユーザーid
投稿内容
}

ユーザー –> 投稿:HasMany
投稿 –> ユーザー:BelongsTo
“`

## Belon

元記事を表示

Visual Studio CodeのSSHから直接サーバのソースを修正

# 概要
今日はVSCODEのSSHからサーバのソースを直接修正することについてメモしたいと思います。

# 開発環境
SSHで接続が可能なLinuxサーバであればOKです。
今回の説明で使うものはRaspberry piを利用します。

# SSH接続の事前確認
Raspberry PIへSSH接続を確認します。

①サーバへSSHで接続するとログイン画面が表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/162336/6fdb597f-d1a2-b398-db78-ab52775753b6.png)

②ログイン情報を入力すると次のようなコンソールプロンプトが表示されます。
※Raspberry PIへ問題なく接続ができることを確認しました。

~~~bash
Linux raspberrypi 4.14.34-v7+ #1110 SMP Mon Apr 16 15:18:51 BST 2018 armv7l

The programs included with the

元記事を表示

Dockerを使ってPHPを実行する方法

## 目次
* 概要
* そもそもDockerってなに?
* Dockerに関する用語
* Dockerを使ってPHPを実行する
* 最後に

## 概要
プログラミングに触れてからまだ1年も経過していないですが、
先日開催されたPHPConferenceJapan2022にて人生初登壇・初LT(スポンサー枠)をさせていただきました。
子鹿みたいに足が震えていましたが、貴重な経験をさせてもらいました?
また別記事でスライド投稿できればと思います。
 
さて今回はスキルアップのため不定期で30分でインプットしたことを投稿の
第二弾として、Dockerを使ってPHPを実行する方法についてやっていこうと思います!
(Dockerってなに?って状態から始めたのでインプット30分じゃ終わらなかったです)
ちなみに、Macでやります。(M1チップ)

第一弾は[PhpStormの便利機能](https://qiita.com/kitamurakunihiko/items/25a8bd78b5eee9ba4c75)について投稿したのでよければ確認してみてください

元記事を表示

高校の文化祭でWebアプリ作った!

今回は、自分たちが文化祭で作った「Casino Money Manager[^1]」こと、QRコード決済もどきの開発について話します。
はじめて記事を書くので至らない点が多いと思いますが温かい目で見守ってください!
![名市工文化祭の画像](https://www.instagram.com/p/CjJg-ukvXvr/media “Instagram @meishiko1936 文化祭の門の画像”)

:::note alert
本記事の内容は、名古屋市並びに名古屋市立工業高等学校に非公式で公開しているものです。
本記事に関する問い合わせをこれらの機関へ行う行為は**慎んでいただくようお願いいたします**。
:::
[^1]: 名付け親の自分でも名前がダサすぎると思ったので、クラスには「QRコードのやつ」として流通させました。

# 記事を書いたきっかけ:pencil2:
@YumNumm さんの「[高校の文化祭でソフトウェア開発をしたお話](https://qiita.com/YumNumm/items/32ffcced7193e11930d9)」を読んで技術記事を書いてみたくなっ

元記事を表示

#6 未経験エンジニア〜勉強中に起こったエラーはMySQL関連ばっかりでした〜

ご覧いただきありがとうございます。

現在、エンジニアとして就職するべくWebサービスを作成しています。

作成するWebサービスの実施したいことは
1. ユーザーの現在地を取得
1. 現在地によって画面を切り替え
1. その際、APIを使って画面切り替え
1. 2・3で表示する際に登録したデータをもとにさらにカスタム(出来たらいいな)
1. AWSでサーバーアップ

と要件定義をしたうえで9月から勉強しています!

現在10月6日時点で4まで完了。

技術を学び、さらにWebサービスの具体的な実装イメージが固まってきた段階です。

1〜3と4をうまく繋げられるかが自信ないけど・・・一回やってみるか!というような感じです。

そして、技術を勉強していくなかでたくさんのエラーに出会いました。

さらに、そのエラー内容が見事にMySQLばっかりだったので紹介させていただきます。

## お読みいただく対象者
– プログラミングを勉強始めたばかりの方
– 初学者に対して教育を行っている方

## 起こったエラー一覧

長々と書いても読みづらいので、早速エラーの一覧を下記に?

*t

元記事を表示

Laravel Sailをインストールして起動しようとしたらno configuration file provided: not foundで怒られた

# エラー時の状況

Dockerを起動させた後、Laravel Sailをインストールして起動するとエラーが発生しました。

“`
$ curl -s https://laravel.build/sample | bash
$ cd sample
$ ./vendor/bin/sail up -d

no configuration file provided: not found
“`

# エラーの原因の仮説

とりあえずググって見る。
すると、それっぽいものが見つかりました。

https://laracasts.com/index.php/index.php/discuss/channels/laravel/sail-problem-no-configuration-file-provided-not-found

https://stackoverflow.com/questions/73005587/laravel-sail-problem-no-configuration-file-provided-not-found

それと、Laravel Sailをインストー

元記事を表示

CSVを取り込んで作成した一覧ページから詳細ページへのデータPOST送信

### はじめに
今回は、PHPで作成しているCSV一覧を作成後、一覧の一部データを取得した詳細ページを作成することができたのでアウトプットのためにまとめます。

### 試したこと
URLにOpenSSLで暗号化したデータを載せてページ遷移後に復号しようとしていましたが、
あまりうまくいかなかったためOpenSSLではない方法で作成しました。

### 送信ページ
“`






人材絞り込み表示

元記事を表示

Pythonとphp間でRSA暗号

# 実行環境
– `MacOS 12.6`
– `Python 3.10.6`
– `PHP8.1`

# モジュールのインストール
Python側でrsaモジュールを使うのでインストールします
“`shell
pip install rsa
“`

# PEMファイル(鍵)の準備
PEMファイルを生成します
生成したいディレクトリで実行してください
“`shell
openssl genrsa 2048 > private_key.pem
openssl rsa -in private_key.pem -pubout -out public_key.pem
“`
実行するとこんな感じのファイルができます
“`:private_key.pem
—–BEGIN RSA PRIVATE KEY—–
MIIEogIBAAKCAQEA8DoEBfIPUiTOBEivztYvcXVhZONbnbP8rihRFyRkaxBd9QVR
DG66TFefuMpbhLDTjD…p6qeqxzh2kBiTIfQDSQNakN8/mARLaLPlFN5Ly2QlTa
7aXFjs/

元記事を表示

29歳でWEBアプリケーションエンジニアに転職した話

株式会社GoQSystemでバックエンドとインフラを担当しています、@RH0909です。

https://goq.co.jp?qiita

私は実務未経験から独学でWEBアプリケーションエンジニアに転職(GoQSystemに入社)しました。
どうやって・なぜエンジニアになったのか、なってどうだったか、エンジニアである上で大切だと感じていることを話していきたいと思います。
エンジニアへのキャリアチェンジを考えている・挑戦している人の参考になれば幸いです。
GoQSystemについても興味を持ってもらえると嬉しいです。

## エンジニアになる前
20台前半はバイトとクライミングや登山などに明け暮れて、アメリカに留学したり、自由気ままに生活し、24歳手前で初めて俗に言う社会人になりました。
自動車部品製造会社で営業とプロジェクトマネジメント業務を約4年、経営を勉強したいと考えて飲食店を経営し、29歳目前にしてエンジニアを目指すことにしました。

## プログラミングとの出会い
きっかけは些細なことでした。上述している飲食店を立ち上げるにあたり店舗のホームページを作ろうと思いましたが、外注

元記事を表示

JavaScriptで昔懐かしのスネークゲームを作ってみたよ。

# はじめに

JavaScriptの復習もかねて、スネークゲームを作ってみたよ。
ついでにPHPでWebAPIを実装して非同期処理にも挑戦してみた。

# ゲーム画面

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/298004/af56e764-21ad-7c6e-c958-90929fa3ac76.png)

# ゲーム本体

https://imoimo.xyz/games/snake_game

# ソース

https://github.com/imoimo2009/snake_game

元記事を表示

EC2にPHP8.0をセットアップする

以前、EC2にPHP7.4をインストールする方法を投稿しましたが、今回はPHP8.0をインストールする方法のメモです。
EC2のインスタンスを立ち上げてからの手順をまとめておこうと思います。
(`Amazon Linux 2` へのインストール方法です。)

# インスタンスのアップデート
`yum update`を実行し、インスタンスをアップデートします。

“`common_lisp
$ sudo yum update
“`

# リポジトリの確認
以下のコマンドを実行し、リポジトリの状態を確認します。

“`common_lisp
$sudo amazon-linux-extras

0 ansible2 available \
[ =2.4.2 =2.4.6 =2.8 =stable ]
2 httpd_modules available [ =1.0 =stable ]
3 memcached1.5 available \

元記事を表示

【PHPUnit】PHPUnit実行時、filter_input()からの戻り値がNullになるので組み込み関数でもMockを作ってテストする。

## な、なんだってー!?
PHP-CLIのSAPIだとfilter_input()を実行しても値がnullになりテストができない・・・

“`php
$_GET[‘key’] = ‘value’
var_dump($_GET[‘key’]);
// string(5) “value”

var_dump(filter_input(INPUT_GET, ‘key’));
// null
“`

というわけで組み込み関数でもMockを作ってテストしてみます。
この方法は他の組み込み関数でも使えるはずなので、ぜひ使ってみてください。

サンプルのコードはこんな感じ。

“`php:TargetService.php

元記事を表示

OTHERカテゴリの最新記事