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

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

UMLを使ってクラス図を書く方法

## 目次
– 概要
– そもそもUMLって何?
– UMLでクラス図を書いてみる
– 最後に

## 概要
最近一気に寒くなってきてまだ衣替えしていなく、半袖半ズボンで寝てるので三連休で衣替えしようと思います?

さて今回のスキルアップのための不定期30分インプット・アウトプット投稿第三段は、「UMLを使ってクラス図を書く方法」ついてやっていこうと思います!
第二弾は、[Dockerを使ってPHPを実行する方法](https://qiita.com/kitamurakunihiko/items/bf2e9998efceff115a0f)について投稿したのでよければ確認してみてください。

 
## そもそもUMLって何?
wikiだと下記のような定義らしいです。
>ソフトウェア工学で用いられる、汎用的かつ開発方面に特化させたモデリング言語である。
システム設計を視覚的に図式化しての標準化されたモデリング手法の提供を目的にしている。
UML(Unified Modeling Language)の略語で呼ばれることが多い。オブジェクト指向分野でよく用いられている。

ということで噛み砕く

元記事を表示

【Docker初歩の初歩】DockerでApache+PHP+MySQLなLAMP環境構築をする(ついでに簡単な掲示板を作って動かす)

# 概要
Dockerを使ってApache+PHP+MySQLな環境構築を行う。ついでにphpMyAdminも使えるようにする。動作確認で簡単な掲示板を作る。対象はDockerって何?触ったことないよ?くらいの人。

# 前提
以下のものがインストールされている必要があります
– Git
– https://git-scm.com/
– Docker
– https://matsuand.github.io/docs.docker.jp.onthefly/get-docker/
– 私はWindows+WSL2な環境なので、Docker Desktop for Windowsを利用しています。

# まずはこいつを見てくれ
https://github.com/miya-38-a/docker-apache-php-mysql

このリポジトリをクローンして、リポジトリのルートディレクトリ配下で以下を叩いてください。
“`
$ docker-compose up
“`

するとなにやら英語がたくさん出てきます(アホみたいな感想)。
初回は結構時間がかかるので

元記事を表示

コードを変更したのにブラウザに反映されない場合の対処法【Chrome】

# キャッシュが問題かも
## 方法1
Ctrl + Shift + R を押してハードリロードしてみてください。
キャッシュがクリアされます。
## 方法2
F12またはCtrl Shift Iでデペロッパーツールを開き、アドレスバー横の再読み込みのボタンを右クリック、キャッシュの消去とハード再読み込みを実行してください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/700063/fa47433b-4116-e1b8-31e8-889c6d2684ea.png)
# 直らない場合
設定→プライバシーとセキュリティ→閲覧履歴データの削除
「キャッシュされた画像とファイル」だけを選択し、全期間で削除してみてください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/700063/88d8b23e-67ea-a99a-5f4e-c0d3572d244c.png)

元記事を表示

CakePHP4のComponent設定方法

# コンポーネントとは
コンポーネントはコントローラー間で共有される処理をまとめたもの。
[コンポーネント – 4.x](https://book.cakephp.org/4/ja/controllers/components.html)

# 設定方法
Cookbookでは2つの設定方法が記載されている。
1つ目はコントローラーの initialize() メソッド内で loadComponent() を使用する方法
2つ目は$components 配列を使用する方法

CakePHP3までは上記2つの方法で設定できたが、CakePHP4からは2つ目の方法で設定できなくなった。
原因はCakePHP4のController.phpが仕様変更により、$components プロパティが削除されたためである。
[CakePHP3 – Controller.php](https://github.com/cakephp/cakephp/blob/3.x/src/Controller/Controller.php)
[CakePHP4 – Controller.php](https://gi

元記事を表示

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/

元記事を表示

OTHERカテゴリの最新記事