- 1. Laravelでアプリを作成してみた【Blogアプリ】
- 2. エンジニア1年たった頃にようやくPHPとJavaScriptの「this」の挙動の違いを理解できた話
- 3. PHP 8: 新機能を活用してより現代的な開発体験を手に入れよう
- 4. PHP + VSCode + Docker + Xdebugでコーディングテストor競技プログラミング用の環境構築
- 5. Web開発に挑戦! PHP入門
- 6. オブジェクト指向で書こう(独学エンジニア レッスン13より)
- 7. PHP Fatal error: Uncaught PDOException: could not find driver in index.php
- 8. PHPとJavaScriptを連携する
- 9. Laravel学習記録①
- 10. プロジェクト参画時にgit cloneから始める時(ローカルにリモートリポジトリクローン)
- 11. 【Generator】Laravel の LazyCollection を作ってみよう
- 12. 【Laravel】自分で追加したファサードをFeatureテストでモックする方法
- 13. phpで、サラからapiを実装する方法を調べてみる
- 14. MysqlのデータをHTML, PHPで表示する(2. クリック一回でスピーディーにデータ削除,既登録データへの追記)
- 15. フォームのプルダウンで検索結果を保持する方法
- 16. Xdebug の PECL 拡張モジュールを任意の PHP バージョン用にコンパイルする
- 17. 【PHP8.3】PHPの乱数がますます改善される
- 18. GitHub CodespacesにMySQLをインストール
- 19. chatgpt api (OPEN AI)を php で使う
- 20. プログラミング入門
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
ローカル内で動けば良いので、一旦MAMPgit 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/
アーカイブもあるようなので,見逃してしまった方もぜひご覧ください!
また,登壇資料も公開していますので合わせてご覧ください!
【Laravel】自分で追加したファサードをFeatureテストでモックする方法
# 環境
Laravel 8# 結論
以下のマニュアルの通り
デフォルトのファサードと何ら変わらないhttps://readouble.com/laravel/8.x/ja/mocking.html#:~:text=%27process%27)%3B-,%E3%83%95%E3%82%A1%E3%82%B5%E3%83%BC%E3%83%89%E3%81%AE%E3%83%A2%E3%83%83%E3%82%AF,-%E5%BE%93%E6%9D%A5%E3%81%AE%E9%9D%99%E7%9A%84
以下は/users実行時にCacheファサードを利用する場合の例
```php:Test.php
phpで、サラからapiを実装する方法を調べてみる
# RestAPIサンプル
https://ondotori.webstorage.jp/docs/api/reference/api_sample.htmlhttps://forsmile.jp/development/php/1709/
https://www.wakuwakubank.com/posts/430-php-json/
https://chaika.hatenablog.com/entry/2020/07/24/120000
MysqlのデータをHTML, PHPで表示する(2. クリック一回でスピーディーにデータ削除,既登録データへの追記)
先日投稿した在庫管理表に新たに以下機能を追加してみました。
・データ表中のIDの数字をクリックするとそのデータをデータベースから削除("データベースに登録"ボタンの下のテキストエリアにIDを入力して"削除"ボタンを押しても削除可)
・データ表中の売れた日に日付を入力して最右の"売上の記録"ボタンを押すとデータベースにそのデータを登録![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3120035/6fc78d00-04c7-db53-4da4-5e0effa7b8a1.png)
Mysqlのカラムは以下に設定しています。
```
ID: ID
CSSJ: 出售时间(出品日)
SPM: 商品名(商品名)
KC: 库存量(在庫量)
DG: 定价(定価)
CSJ: 出售价(売値)
FSFS: 发送方式(発送方式)
BZFS: 包装方式(包装)
BZF: 包装费(包装費)
YF: 运费(送料)
SXF: 手续费(手数料)
HJ: 合计(合計)
QK: 情况(状況)
XDSJ: 下单时间(売
フォームのプルダウンで検索結果を保持する方法
## プルダウンでの検索結果保持について
テキストフォームみたいに検索の内容をそのまま持ってくる方法は簡単ですが、プルダウンはselectedで検索結果を保持する必要があるので同じ方法とはいかないです。しかし三項演算子を使うことによってそれなりに簡単に実装ができるようです。今回はLaravelで実装した場合の手順になります。検索機能の実装については下記の投稿が参考になれば幸いです。
https://qiita.com/rentarouclass/items/23393b172f564290224f
## 手順
今回サンプルで作ったプルダウンの検索フォームです。ファッションのタイプで検索するフォームの想定です。
```php:show.blade.php
商品管理システム
Xdebug の PECL 拡張モジュールを任意の PHP バージョン用にコンパイルする
## やりたいこと
今パスが通ってるバージョンと異なるバージョンの PHP 用に Xdebug の PECL 拡張モジュールがほしい
が、インストールコマンドを叩くと、すでにインストール済みと出て失敗する。
```bash
$ pecl install xdebug
pecl/xdebug is already installed and is the same as the released version 3.2.0
install failed
```## 前提条件
該当の PHP 本体はインストール済みの想定です。
今回は Homebrew でインストールした 8.1 用にコンパイルしました。
※パスを通しているのは 8.0 でした## Xdebug 本体をダウンロード
以下の URL からほしい Xdebug のバージョンをダウンロードします。
https://pecl.php.net/package/xdebug
今回は記事作成時点で最新の 3.2.0 を使用しました。## コンパイル
ダウンロードした圧縮ファイルを展開して、そ
【PHP8.3】PHPの乱数がますます改善される
PHP8.2で乱数が[大改善](https://qiita.com/rana_kualu/items/ab82a9c6dbd2e7c6edd0)[されました](https://qiita.com/rana_kualu/items/a6a727d7ab379d44eb18)が、早くもPHP8.3で幾つかの機能が追加されることが決まりました。
以下は該当のRFC、[Randomizer Additions](https://wiki.php.net/rfc/randomizer_additions)の紹介です。
# PHP RFC: Randomizer Additions
## Introduction
このRFCでは、ユーザランドでの実装が困難であったり面倒であったりする、幾つかの有用な機能を[\Random\Randomizer](https://www.php.net/manual/ja/class.random-randomizer.php)に追加することを提案します。
識別子、バウチャーコード、整数範囲を超える数値文字列を作るといった用途で、特定の文字を含むランダムな
GitHub CodespacesにMySQLをインストール
```bash
sudo apt update \
&& sudo apt install -y mysql-server \
&& echo "ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY ''" | sudo mysql \
&& service --status-all \
&& mysql -h127.0.0.1 -uroot
```PHPから触るには?
```bash
sudo apt install -y php-mysql
```
chatgpt api (OPEN AI)を php で使う
chatgpt の api と書いてあるのは open aiのAPI
※ 同じGPT3.5系のモデルを使った文章生成AIのこと# アカウントを作成
https://auto-worker.com/blog/?p=6988# .env を設定
キーが外部にもれないよう、.envに。
```env
OPEN_AI_SECRET=sk-xxxfff
```# app.php
```
'open_ai_secret' => env('OPEN_AI_SECRET'),
```# キャッシュのお掃除
```
php artisan config:cache
rm -f bootstrap/cache/config.php
```# 日本語生成
```
$apiUrl = 'https://api.openai.com/v1/completions';// APIに送信するパラメーター
$apiParams = [
'model' => 'text-davinci-003',
'prompt' => '日本の現在の総理大臣は誰ですか?',
'm
プログラミング入門
皆さん、こんにちは!テクノロジーに関する有用な情報を共有しますが、より明確にするためには、プログラミングの世界です。
「プログラミング」と聞いて何を思い浮かべますか?コーディング?それともコンピューティング?まだ間違っています。ふむ、まずは基本から始めればよかった。プログラミングはプログラムです。
プログラムはどのようなものですか?プログラムは、特定の入力と出力を持つ論理シーケンスです。プログラムは、コンピューターが必要に応じて最適に機能できるように、コマンドの集まりの形にすることもできます。システムに統合されたプログラムは、Web アプリケーションや Android などのアプリケーションと呼ばれます。
さて、この議論では、プログラミングという用語を徹底的に復習します。次の説明を見てみましょう。
プログラミングとは?
eunoiamedia による報告プログラミングとは何か? 簡単に言えば、プログラミングはコンピューター上でプログラムを作成するプロセスです。作成されたプログラムは、ソフトウェア、ウェ