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

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

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

元記事を表示

CentOSにおけるPHPのバージョンアップ方法(7.0→7.4)

## 概要
WordPress のバージョンを 4.9 から 6.0 に引き上げた際に PHP のバージョンも 7.0 から 7.4 へ引き上げる必要があったため、その内容を備忘録としてを残します。

## 環境
nginx : 1.12.2
PHP : 7.0.27 (引き上げ前)→7.4.30(引き上げ後)
CentOS : 7.4.1708

## 内容
まずは yum コマンドを使って PHP7.4 の remi リポジトリをインストールします。

“`
$ yum install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
“`

次に必要な PHP バージョンに対応する remi リポジトリがインストールされたことを確認します。

“`
$ ls -l /etc/yum.repos.d/
“`

一覧の中に「remi-php74.repo」があればインストールできています。

次にインストールしたリポジトリの中から 新しいバージョンの PHP を動作させるために必要なモジュールをインストール

元記事を表示

cron で /dev/null つけたら動かない?

### 現象

cron 起動の処理を下記のように出力を抑える設定にしたら、見た目上 動かなくなりました。

“`
* * * * * php /foo/bar/test.php (動く)

* * * * * php /foo/bar/test.php >/dev/null 2>&1 (動かない?)
“`

### 原因

実際は動いていたのですが、プログラム内の二重起動チェックですぐに終了していたからでした。

二重起動チェックの方法は `ps` コマンドを発行して、test.php の行数を数えてました。
通常は、

“`
362165 ? R 0:00 php /foo/bar/test.php
“`

この1行のみ出力されます。これは自分自身であり二重起動していないと判定して処理続行します。
しかし `/dev/null` をつけると、

“`
362162 ? Ss 0:00 /bin/sh -c php /foo/bar/test.php >/dev/null 2>&1
362165 ? R 0:00 php /foo/bar/test.php

元記事を表示

Dockerで構築したLaravelの開発環境にXdebugを導入する

新規プロジェクトにアサインされた際**ソースコードがどのように実行されているか**を迅速に把握することが必要となります。
ソースコードを1から読むことも必要ですが、デバッガを使用しどのように動いているかを把握することで、仕様理解が一気に進みます。

私は今までいくつかの案件で環境構築をさせていただく機会があり、その中でもXdebug導入で何度も躓くことがありました。
そういった経験から得られた知見をまとめ、今後詰まった時の参考にするためまとめます。

# 環境
– php 8
– Laravel 8
– Xdebug v3.1.5
– Visual Studio Code 1.71.2

# Xdebugのバージョンについて
今回はバージョン3をインストールする

Xdebug導入について検索するとバージョン2と3の情報がヒットするが、全く記法が異なるので注意
自分が導入したいバージョンをについて検索すること

バージョンによる記法の違いは以下を参照

https://marketplace.visualstudio.com/items?itemName=xdebug.php-debu

元記事を表示

Twitterツイート管理システム試作

# Twitterツイート管理システム試作
概要等は下記の記載をお読みください。ソースコードは[github](https://github.com/taoka-toshiaki/tweets-system-box1)で公開しております。
尚、今回の管理システムは簡易版です、このシステムにツイッター認証などのシステムを
導入すれば少数で運営には耐えるは可能かと思いますが、用途として個人で使用する目的で開発しました。

※スマホでも操作可能ですがパソコンで管理するように作っています。

# Twitter ツイート管理システム 概要
– まだ試作段階です。
– 商用利用可能です(連絡不要)。
– 主に自身が使用する時に必要としている機能だけを取り入れています。
– 機能
– 即時ツイート機能
– 予約ツイート機能
– 予約ツイート編集機能
– 予約ツイート削除機能
# 動作環境 php7.1 ~ php8.0
# 使用方法
– data/tw-config-v2.phpを設定後、index.phpをブラウザで開き使用する。
– cron

元記事を表示

php.iniを使ってエラー表示方法

php.iniはphpのファイル設定のことを指す。

エラーの表示方法はphpのファイルのデフォルト設定では
デフォルトの設定では「display_errors = Off」となっています。
こちらの記述を編集します。

これを、
「display_errors = On」
にします、

場所は「Applicants > MAMP > bin > php > php7.3.8 > conf」
の順に移動していきます。

ファイル内検索で、「display_errors」を検索すれば、手間が省けます。

デフォルトでは「display_errors = Off」となっているので、
 
設定を「On」に編集してファイルを保存します。

それも表示がうまくいかない場合は、PHPファイルに直接記述していきましょう。
“`javascript
//エラー表示

//エラーしない

“`

となります。

元記事を表示

Laravel8 Jetstream team版でOwner以外にチームメンバーのロール編集権限を持たせる

Laravel8 Jetstreamであれやこれや作っています。
今回はチーム内に管理者を置いて、共同管理ができるようにしたく、まずはロール変更が出きるようにしてみました。

### 条件
– Laravel8
– Jetstream team版導入済み
– 新規ユーザ登録時にチームIDは指定し、ロールはreaderを持たせている

### なんでこれが必用か
JetstreamのチームメンバーのロールはTeam Ownerしか変更できません。
そこで、editorにも編集権限を渡したいと思います。

### 参考にしたサイト

https://jetstream.laravel.com/2.x/features/teams.html#member-management

### ロールの確認

app/providers/JetstreamServiceProvider.php

editorに**update**があることを確認する。

“`php:JetstreamServiceProvider.php
Jetstream::role(‘editor’, ‘

元記事を表示

php
の改行がうまくいかない場合は??

CSSを確認する

元記事を表示

【PHP】元のDateTimeオブジェクトを変更せずに日付のmodifyを行いたい

## 概要
PHPの日付で計算した後の値取得を行うとなると、DateTimeのオブジェクトを作成した後に`modify`関数を呼ぶ方法が挙げられます。[[PHP] 日時の加算・減算をする(modify)](https://php.programmer-reference.com/php-datetime-modify/)の記事に、実装例があります。
ただ、注意点としてDateTimeのmodifyは破壊的なメソッドなので、modifyを呼び出した後に元のオブジェクトの値も変わってしまいます。元のDateTimeオブジェクトを変更せずに日付のmodifyを行いたい場合どうするか、というのを今回メモ書きします。

## 対応方針
modify後は新しいオブジェクトを使用したい場合、元のオブジェクトに変更を加えない`DateTimeImmutable`クラスが用意されているので、これを使えばやりたいことができそうです。DateTimeImmutableの概要については[【PHP】DateTimeクラス・DateTimeImmutableクラスのオブジェクトの違い](https://blog-

元記事を表示

OTHERカテゴリの最新記事