PHP関連のことを調べてみた2023年02月01日

PHP関連のことを調べてみた2023年02月01日

Laravelでアプリを作成してみた【Blogアプリ】

## phpMyAdmin とは?

– ブラウザ上でMySQLデータベースを管理できるツール
➡︎ 本来はコマンドでMySQLを操作するがMAMPに最初から入っている

## データベース とは?

– データを保管できる場所

## なぜデータベースを使うのか?

– データの管理・整理・検索ができる
– 複数人で同時に利用できる

## データベースを管理するシステム(DBMS)

– データベースの操作及び管理を行うシステム
➡︎ 現在の主流は、『リレーショナルデータベース管理システム(RDBMS)』

※ リレーショナルデータベース管理システム(RDBMS)の中に『MySQL』がある

## SQL言語

– データベースの操作を行うための言語
– データの追加・更新・削除・検索を行う

## SQL文の種類

– データ定義(DDL): 主にテーブル操作
– データ定義(DML): 主にテータ操作
– データ定義(DCL): 主にアクセス制御

## 参考サイト
[【PHP/MySQL入門】MAMPのphpMyAdminでデータベースを使う準備 ~ブログアプ

元記事を表示

エンジニア1年たった頃にようやくPHPとJavaScriptの「this」の挙動の違いを理解できた話

### はじめに

一年たった頃に、ようやくふわっとしていた`this`について理解できた時があったので、その気付いたときの記録と`this`について僕なりの言葉で解説したいと思います。

### 1年目まで勘違いしていた点

言語に関係なく、`this`はブロックを抜けた外のスコープを指していると思っていた。

※今回はPHPのコードを読んでいる際に間違いに気付きました。

### 結論(正解)
:::note warn
`PHP`と`JavaScript`(アロー関数の定義と通常の`function`定義)で違いがあり、ややこしいのでご注意を。
:::

– **PHPの`$this`**
– クラスインスタンス(自分自身)を指している。
– **JavaScriptの`this`**
– アロー関数の場合
– アロー関数は関数定義時(定義場所)の1つ前のコンテキスト(PHPみたいな挙動)
– 通常の`fuction`の場合
– 関数呼び出し元(関数呼び出し時)がコンテキストになる

### 具体例(PHPの$this挙動の

元記事を表示

PHP 8: 新機能を活用してより現代的な開発体験を手に入れよう

## 概要
PHP 8は、2021年11月にリリースされたPHP言語の重要なアップデートです。これは、言語全体のパフォーマンスと使いやすさを向上させることを目的とした新機能や改善が導入されています。以下はPHP 8の主要な新機能のいくつかです:

1.ジャストインタイム(JIT)コンパイル:この機能により、PHPコードをリアルタイムでマシンコードにコンパイルすることで、PHPコードのパフォーマンスが大幅に向上します。

2.ユニオン型:この機能により、開発者は単一の変数に複数の型を指定することができます。

3.マッチ式:switch文の構文としての新しいマッチ式は、複雑な条件ロジックを書くための短く読みやすい方法を提供します。

4.名前付き引数:この機能により、開発者は名前を付けて関数に引数を渡すことができ、コードが読みやすく保守性が向上します。

5.属性:これは、他の言語のアノテーションに似たソースコード内でメタデータを宣言するための新しい構文です。

6.Nullsafe演算子:null値を処理するための新しい演算子で、コードが短くなり、null参照例外が防げます。

7.S

元記事を表示

PHP + VSCode + Docker + Xdebugでコーディングテストor競技プログラミング用の環境構築

# 概要
転職活動の際、コーディングテストを受ける機会があるかと思われます。その際、デバッグしながらアルゴリズムを作成した方が、変数内の動きが分かりやすくなり、アルゴリズムの作成もスムーズになると思ったので作成しました。今回は、その構築手順について簡単に説明します。

# 開発環境
“`sh
Docker version 20.10.17, build 100c701
Docker Compose version v2.7.0
“`

# ディレクリー構造
ディレクトリーの構成は下記の構造となっています。
“`
.
├── .vscode/
│ └── launch.json
├── conf/
│ └── php-xdebug.ini
├── src/
│ └── index.php
├── .gitigrone
├── docker-compose.yml
├── Dockerfile
└── REASME.md
“`

# VScodeの設定
VScodeの拡張機能で、`PHP Dubug`をインストールしておいて下さい。
![説明.png](https://

元記事を表示

Web開発に挑戦! PHP入門

## 概要
PHP (Hypertext Preprocessor) は、Webサイトを作成するために使用されるサーバーサイドスクリプト言語です。

1. 環境構築
XAMPPまたはWAMPを使用して、PHPとWebサーバー(Apache)、データベース(MySQL)をインストールします。
1. スクリプト作成
PHPスクリプトを作成するには、テキストエディター(Sublime Text、Notepad++など)を使用します。
PHPスクリプトは、HTMLコードと同様にWebページに埋め込まれますが、拡張子が「.php」です。
1. PHPの構文
PHPの代表的な構文は、変数の定義、if文、for文、while文、関数などです。
PHPスクリプトは、「」タグで終了します。
1. データベースとの連携
PHPは、MySQLなどのデータベースと連携することができます。
MySQLと連携するための代表的な関数には、mysqli_connect、mysqli_query、mysqli_fetch_assocなどがあります。

これらが、PHPの基本的な内容で

元記事を表示

オブジェクト指向で書こう(独学エンジニア レッスン13より)

タスクばらし
* オブジェクト指向のメリット
* オブジェクト指向とは
* コンストラクタとは
* アクセス権
* 継承
* インターフェイス
* ポリモーフィズム
* 依存オブジェクトの注入
* 静的メソッド

# オブジェクト指向のメリット

なぜ仕様変更に弱いのか?
* 工夫せずに書くとコードは保守しづらくなる
* メインプログラムに責務が集中し、凝集度が低く結合度が高い状態になっている
* メインプログラムに責務が集中 = 凝集度が低く結合度が高い → 変更しようとすると他の箇所も変更しないといけない

仕様変更に対応するには?

* 責務を委譲すると、メインプログラムから責務が取り去られ変更しやすくなる

* メインプログラムはカードを引く処理の詳細を知る必要がない
“`php:Main.php
require_once(‘Player.php’);

// プレイヤー情報を登録する
$player = new Player(‘田中’);
// プレイヤーがカードを引く
$

元記事を表示

PHP Fatal error: Uncaught PDOException: could not find driver in index.php

エラーのためメモ
“`bash
PHP Fatal error: Uncaught PDOException: could not find driver in /home/kudu/PhpstormProjects/project/index.php:1
Stack trace:
#0 /home/kudu/PhpstormProjects/project/index.php(3): PDO->__construct()
#1 {main}
thrown in /home/kudu/PhpstormProjects/project/index.php on line 1
“`

# php-mysqlをインストール

“`bash
sudo apt install -y php-mysql
“`

元記事を表示

PHPとJavaScriptを連携する

# 1.はじめに
 個人環境でジュークボックスサーバーを動かしていて、サーバー(Linux)上のSAMBA領域にあるmp3ファイルをブラウザ(Chrome)で連続再生させるといったことをやっています。ブラウザ上ではChromeのMusicオブジェクトを使い、再生するのと同時に楽曲情報のテキストを表示させています。
 HTMLのFORM文を使うといちいち操作介入が必要になりますが、それだと煩わしいので1曲再生終了したら自動的に次のリクエストをサーバーへ送り、同時に楽曲情報を取得したいところです。再生の方はmusicオブジェクトにURLを渡して後はお任せなのですが、楽曲情報については、別途リクエストしなければなりません。
 これを実現するためブラウザ側ではJavaScriptでサーバー側に用意したAPIからXMLHttpRequestを使い、JSON形式の楽曲データを取得させました(下図)。取得したデータは動的HTMLでブラウザの表示に反映させます。
![PHPAPI(XMLHttpRequest).png](https://qiita-image-store.s3.ap-northeas

元記事を表示

Laravel学習記録①

**PHPフレームワーク「Laravel」について**
**学習した内容を自分の復習用として記録します。**
**エラーや個人的に疑問に思った点なども随時記載していきます**

使用OS:Windows11 バージョン21H2
PHP使用バージョン:PHP8.1.12
Laravel使用バージョン:Laravel Framework 9.48.0

使用書籍:PHPフレームワーク Laravel入門 第2版
      (著:掌田津耶乃氏)

## 1.Laravelを導入する利点とは?

___①最低限のセキュリティが確保される___
___②自己流で書いたコードと比較してメンテナンスが容易である___
___③拡張性が確保されている___

__“`自分のような初心者であればセキュリティを考慮した構築や、後々のメンテナンスを考慮した構築は難しい。“`__

## 2.Laravel開発の手順
“`mermaid
graph TD;
1.プロジェクトの作成–>2.プログラムの作成;
2.プログラムの

元記事を表示

プロジェクト参画時にgit cloneから始める時(ローカルにリモートリポジトリクローン)

備忘録

環境
MAC
php
mysql
ローカル内で動けば良いので、一旦MAMP

git hub のssh接続を有効にする。
MAMPのhtdocsファイル内にてgit clone (githubクローン元のsshコピペ貼る)
該当ファイルに移動 cd
git init
既存コードや、インポートしたものがあれば、そのファイルにコピペ
git aad .
git commit -m”コミットコメント追記”
git push origin main(push先のブランチ名入れる)

その後は、作業ブランチ作るなりして開発に入る。

元記事を表示

【Generator】Laravel の LazyCollection を作ってみよう

# はじめに
先日, Qiita Night 〜PHP〜 という LT で登壇させていただきました.
僕の発表を聞いてくださった皆様,ありがとうございました!

https://increments.connpass.com/event/270421/

アーカイブもあるようなので,見逃してしまった方もぜひご覧ください!
また,登壇資料も公開していますので合わせてご覧ください!