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

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

PHP 関数の引数あれこれ

# 概要

– 今更ながらPHPの関数の引数についてちゃんとまとめてみた。

# 関数に引数を渡す

– 関数定義時に引数の受け取り処理を記載してあげれば引数を関数の範囲内で使う事ができる。

“`php

元記事を表示

‘Firebase for Laravel’を使ったログイン実装(middleware編)

## 本記事で利用したパッケージ
* Firebase for Laravel

https://github.com/kreait/laravel-firebase#support
上記の設定などは、各自README通りにお願い致します。
主に、`Authentication`を利用しています。
→Authenticationの利用方法(https://firebase-php.readthedocs.io/en/stable/authentication.html)
*自分は、composerを利用しました。

## 本記事の目標
* FirebaseのAuthenticationの情報をLaravelで利用できる
* Firebase x Laravel でログイン機能の実装ができる。
* FirebaseのJWTトークンをフロントのHeaderから受け取り、middleware上でデコード、認証しFirebaseのuidとemailを取得できる。
* 取得したuidとemailが、他のController上で利用できるようにする。(ログイン認証したユーザーだけが動かせるロジッ

元記事を表示

PHP nullsafe演算子について

# 概要

– 実務でnullsafe演算子を使う事があったのでどういうものかまとめておく。

# nullsafe演算子

– nullsafe演算子は下記である。

“`php
?->
“`

– 下記の様なコードがあったとする。

“`php
if (is_null($repository)) {
$result = null;
} else {
$user = $repository->getUser(5);
if (is_null($user)) {
$result = null;
} else {
$result = $user->name;
}
}
“`

– 下記の様な処理になっている。
– `$repository`がnullのときnullを`$result`に格納する。
– `$repository`がnullではないかつ、`$repository->g

元記事を表示

PHPのコア開発者が決定!

いつのまにかPHP Foundationの[公式サイト](https://thephp.foundation/)ができていました。

# PHP Foundationとは?

PHPの開発をこれまでのようにボランティア任せにするのではなく、[きちんと給料を出して開発してもらおう](https://qiita.com/rana_kualu/items/eaf97694f25a62f93a7e#php%E8%B2%A1%E5%9B%A3%E8%A8%AD%E7%AB%8B%E3%81%AE%E3%81%8A%E7%9F%A5%E3%82%89%E3%81%9B)という仕組みです。
これによって、開発者離れによるプロジェクトの停滞・衰退を防ぎ、コードの質を保ち、将来の展望を広げるわけです。
このように有償開発者を囲い込む動きは、最近では多くのプロジェクトでみられます。

PHPにおけるこの試みは[Open Collective](https://opencollective.com/phpfoundation)において多大な支持を集め、ひとまずは順調な滑り出しを見せました。
日本からも[多

元記事を表示

GETメソッドとPOSTメソッドの違い

初めに
初学者として勉強を進めていく上で違いをはっきりと理解することが難しかったため、自分の理解を深める為にも記事にしたいと思います。
私と同じ初学者の方でGETとPOSTの違いがよくわからないという方の助けになれば嬉しいです。
GETとPOSTの使い道
GET
指定されたリソースを取り出す際に使う。

具体例

・見たい商品の詳細
・同様のページが何ページにも渡る場合の特定のページ番号
→見たい商品や動画などのWebページのURLを指定することで、HTMLファイルがWebサーバーからブラウザに返されて表示ができる
POST
Webページで入力されたリソースをWebサーバーに送り特有の処理をさせたい際に使う。

具体例

・ログイン画面に入力するメールアドレスやパスワード
・画像

元記事を表示

ER図の書き方

##記事の対象##
・データベースを学び始めた初学者の方
・ER図の書き方があまり理解できていない方

###ER図が必要となる理由###
ER図とは「データベース設計(データモデリング)で使う設計手法」の一つででデータベース設計の基礎になる部分です。ER図がなくともデータベース設計はできますが、規模が大きくなるにつれ設計ミスや、システムの仕様が理解しずらくなります。その際にER図があれば設計ミスを未然に防ぐことができ、またシステムの仕様も理解しやすくなります。
ER図でデータベース構造などを整理することで、システム全体の構成を俯瞰することができ、手戻りを起こす可能性を減少させることができる為ER図が必要になります。

##基本的な用語##
###エンティティ###
データベースを構成するデータのまとまりのことです。エンティティの中にアトリビュート(属性)があります。
###アトリビュート(属性)###
エンティティの中の属性情報のことです。アトリビュートの中で「主キー」や「外部キー」も表現します。主キーとなる項目は、エンティティ上部に書きます。外部キーとなる項目は、項目名の後ろに

元記事を表示

【自分用メモ】 SQLSTATE[42000]: Syntax error or access violation: 1075 Incorrect table definition; there can be only one auto column and it must be defined as a keyの解消

# タイトルにあるエラーを解消した
Laravelでコーヒー豆自家焙煎記録アプリを作成中、マイグレーションでタイトルにあるエラーに遭遇。その問題箇所と解消方法。
#### エラー発生時のマイグレーションファイルが下記
“` yyyy_mm_dd_hhmmss_create_roasts_table.php
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create(‘roasts’, function (Blueprint $table) {
$table->increments(‘id’)->index()->comment(‘焙煎ID’);
$table->string(‘status’, 50)->index()->comment(‘焙煎ステータス’);
$table->integer(‘bland_id’, 11)->u

元記事を表示

見えない文字が隠れているのを発見するコード

# 関数
“`php
function changeUnicode($utf8_str){
//入力をUTF-32に変換
$utf32_str=mb_convert_encoding($utf8_str,’UTF-32′,’UTF-8′);

for($i=0;$i 00003053|こ
[1] => 00003093|ん
[2] => 0000306b|に
[3] => 00003061|ち

元記事を表示

PG見聞録 ~PHP編 正規表現2-2~

気分転換にgithubのプロフィールをなんかカッコイイ感じに編集してみました。
https://github.com/yukio113o
カスタマイズってつい夢中になるしワクワクしますよね。おかげで寝不足です。

参考記事:GitHubプロフィールをクールにカスタマイズ
https://qiita.com/rised/items/f3385b589149dcf34a26

では正規表現の修飾子xや埋め込みフラグについて書いていきます。

x修飾子

正規表現を整形してくれる修飾子です。
空白やコメントを付与できるようになり、可読性が向上します。
メールアドレスを検索する正規表現は

(“/[a-z0-9.!#$%&’*+\/=?^_{|}~-]+@[a-z0-9]+(\.[a-z0-9-]+)*/”

となりますが、最後にxを付与しますと

(“/[a-z0-9.!#$%&’*+\/=?^_{|}~-]+ #local
@ #delimiter
[a-z0-9]+(\.[a-z0-9-]+)*

元記事を表示

topic : About 1 week before the release of PHP 8.2 1st. alpha version

– PHP 8.2 α版が、計画通り 2022/06/09 に行われるようです。ということで(?)これの私的な “Tracking & bookmark ::Qiita”なエントリーです。
– PHP 8.2 GAまでのタイムテーブル
– https://wiki.php.net/todo/php82
– [Christoph M. Becker](https://github.com/cmb69) 氏 による、[externals.io への告知エントリー](https://externals.io/message/117595)

元記事を表示

私(PHPド初級者)が陥った、セッション変数が消える現象の「盲点」

# 結論ファースト
先輩のコードでは大文字で書かれているものは、自分も大文字で書いたほうが良い。
セッション変数は`$_session[‘xxx’]`ではなく`$_SESSION[‘xxx’]`にすべき。

# 細かいストーリー(読み飛ばしてください)

プログラミングの練習のために、簡易的なSNSを作る機会ってありますよね。
そうすると、絶対に「ログイン機能を実装したい」と思うはず。

ログイン機能を実装するうえで初心者が悩むポイントといえば、やはり「セッション」。
**セッション変数を定義したはずなのに、別ページにリダイレクトした瞬間に
Chromeくんから「undefined variableですよ!!」と叱られまくり**、
しばらくドツボにハマっていました。

夕方4時くらいに悩みはじめ、解決したのが夜の10時過ぎ。
~~途中、日曜劇場『マイファミリー』を見て、俳優さんってすごいなあとか感心してましたが、~~
実に6時間くらい、パソコンの前でうんうん唸っていました。

### よく紹介されている「解決策」
– `session_start();`はphpファイルの先頭of先頭に

元記事を表示

WordPressの基礎

# WordPress

[WordPress Codex 日本語版](http://wpdocs.osdn.jp/Main_Page)

# 【最重要】テンプレートタグ・関数

## テンプレートタグ

– ワードプレス固有のphpタグのこと

## wp_head,wp_footer

– それぞれheadの締めタグ、bodeの締めタグの直前に記述しなけらばならない

## 必須

“`php
~~~


~~~



“`

– wordpressのテーマとして認識してもらうために必須のテンプレートタグ

## 分岐、ループ系

“`php




“`

– have_postsはルwordpressクエリで

元記事を表示

カレーは大鍋で作らない。~初心者のためのクラス継承~

こんにちは、文脈です。

人参・じゃがいも・玉ねぎがあればなんでもできますね。

## まとめ

人参・じゃがいも・玉ねぎ
∟ウインナー・コンソメを入れると→ポトフ
∟肉を足す
 ∟カレールウを入れると→カレー
 ∟しょうゆ・酒・しらたきを入れると→肉じゃが

これが「クラスの継承」です。

## ソースコード

人参・じゃがいも・玉ねぎ
これは`Class Konsai`としましょう。

“`
Class Konsai
{

// 洗って皮をむいて適切な大きさに切った根菜
const KONSAI = [‘ninjin’, ‘jagaimo’, ‘tamanegi’];

/**
* 根菜を煮込む
**/
public function cookKonsai(){
$nabe = [‘mizu’]

// 野菜を水が入った鍋に入れる
$nabe = array_merge($nabe, self::KONSAI);

// 野菜が入った鍋を火にかけてアクを取る
$cookedKonsai = $nabe + $heat – $aku;

retur

元記事を表示

オブジェクト指向とは(前編)

オブジェクト指向に関して勉強しており、学んだことをアウトプットしていきたいと思う。
まず、オブジェクトとは「もの」という概念であり、プログラミングの世界では、「プログラミング」するのに、便利な単位だと定義できる。
たとえば、今から下記のようなコードを自分なりに説明してみる。
“`php:lib/oop_poker/Game.php
class Player
{
function __construct(private string $name)
{
}
function getStart()
{
$player = new Player($this->name);
$cards = $player->drawcards();
return $cards;
}
}
“`

“`php:tests/oop_poker/GameTest.php

元記事を表示

たびれぽ福分け取材班

https://tabirepo.square.site/

https://www.shuminoengei.jp/?m=pc&a=page_mo_diary_detail&target_c_diary_id=949263

たびれぽ福分け取材班 たびれぽオンライン 事業再計画
http://www.tabirepo.online/

元記事を表示

ChromebookにPHP開発環境を構築(Xampp)

# 概要
– Chromebookのlinuxコンテナ(crostini)内にphpの開発環境を構築
– 講義用の環境構築なのでXamppを使用(本番用にはdockerでlampを別途準備(本記事には記載なし))
– 少々分かりづらい部分もあったので備忘として作成
– 初心者の方の役に立てば尚良し

前回:[chromebookにNode.js環境構築](https://qiita.com/kamekame85/items/638e44450c7f909d7c1f)

## 前提
– linuxコンテナ作成済み
– VS Codeインストール済み
– あくまで開発用
– linuxコンテナ, VS Codeについては[こちら](https://qiita.com/kamekame85/items/638e44450c7f909d7c1f)を参照ください

## 目次
1. [XAMPPとは](#xamppとは)
1. [linuxコンテナ内にchromiumをインストール](#php開発時のローカル確認用にlinux内にブラウザをインストール)
1. [php開発環境を構築](#php

元記事を表示

GCEにDBを利用したHPを移行する(作成中)

運営していたHPをXFREEからGCE(Google Compute Engine)に移行することにしました。
理由は、
・XFREEでは制限が多い(SQL開発ツールでDB操作ができなかったりする)、
・HPの操作中に止まることがある
・GCEというかクラウドを使っているというのが、なんだかかっこいい
からです。
AWSも考えましたが、どうやっても永久無料で運営していくのが無理なので止めました。
この記事では、移行の際に得た知見をまとめます。

# 環境
“`
$ cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
“`

# ブラウザでWebページを表示する
GCEのインスタンスは作成前提で進めます。

## PHP
PHP7.0をインストールします。
PHP7.0をインストールするためにはRemiリポジトリが必要で、
Remiリポジトリからソフトウェアをインストールするにはepelリポジトリが必要です。
epelリポジトリはインストール済みのため、Remiリポジトリをインストールします。
“`
$ su

元記事を表示

[Laravel6] 簡易的な機能を作ってCRUDの全容を掴む

## 作るもの
– お問い合わせフォーム
– REST(CRUD機能の作成)

## 作成の流れ
– Model → Controller → Route → View

## Read & Create
– Model
1. まずDBのテーブル及びカラム作成から行っていく

  – `php artisan make:model Models/〇〇 (-mc)` -mcとつけることで、マイグレーションとコントローラーファイルも用意してくれる

– 実際のマイグレーションファイルの記述は以下のようになる

“`php
public function up()
{
Schema::create(‘contact_forms’, function (Blueprint $table) {
$table->bigIncrements(‘id’);

元記事を表示

1 : データベースなしでブラウザチャット作ったけど質問ある?

### 2: >>1 なんでデータベースなしでやったの?
#### 金かかるからw
#### 有料系のやつじゃないとクッソ重いしだるいからやて

### 俺、佐藤裕也(`ェ´)ピャー
#### お金がないので今日も、無料のブラウザサーバーを謳歌する
#### というわけでw replitっていうブラウザエディタ使ってんだけど、無料でサーバー使えるんだよねw
#### で、せっかくここまで有料を華麗に回避してきたのに、今更有用のデータベース使うのアホらしいんだよねw
#### じゃあもう自分で擬似データベース作ろうとwっていうわけなんだお

## 仕組みのお話。
#### `POSTでデータを送信 → phpで、ファイルに保存。(txtでもなんでもいいお) → 非同期通信でリアルタイムで表示するためにajaxで表示`
#### みたいな感じだおw 仕組みはEZ

## ソースコードとかとか
#### まあ基本コードって感じかな?これベースにしていくよ。
##### POSTのPHP register的な? 送信先の処理だけどw
“`php:post.php
//日本語が文字化けしな

元記事を表示

amazon linuxでcomposer updateが出来ないエラーの解決法

composer installは出来たのにupdateが出来なくて数日間悩んだので、備忘録的に書いていきます。

:::note info
**環境**
Windows10(Puttyコマンド使用)
PHP7.4.28
Apache2.4.53
:::
:::note info
**前提**
・Apache, PHP, composerのインストールが終わってる
:::

## 問題と試したこと
~~~
composer update
~~~
と実行すると、はじめはこんな感じのエラーが。。

~~~
PHP Warning: Module ‘curl’ already loaded in Unknown on line 0
Loading composer repositories with package information
Info from https://repo.packagist.org: #StandWithUkraine
Updating dependencies
Lock file operations: 0 installs, 10 updates, 0

元記事を表示

OTHERカテゴリの最新記事