- 1. MysqlのデータをHTML, PHPで表示する(2. クリック一回でスピーディーにデータ削除,既登録データへの追記)
- 2. フォームのプルダウンで検索結果を保持する方法
- 3. Xdebug の PECL 拡張モジュールを任意の PHP バージョン用にコンパイルする
- 4. 【PHP8.3】PHPの乱数がますます改善される
- 5. GitHub CodespacesにMySQLをインストール
- 6. chatgpt api (OPEN AI)を php で使う
- 7. プログラミング入門
- 8. PHP(基礎文法)に関する自分用メモ
- 9. これまで気にしていなかった命名規則について考えてみる
- 10. Laravelの開発環境をDockerで構築する
- 11. [WIP] PHP で セッションを管理するとは
- 12. laravelでCRUDを理解するためにまたTodoを作った!
- 13. Laravelで複数検索機能を実装する手順
- 14. 縦書きジェネレーターを作りました。
- 15. Laravelで主に使用してきたデバック方法
- 16. PHPのタイプヒンティングはどのくらいコストフリーではないのか
- 17. CURLMOPT_MAX_TOTAL_CONNECTIONS curl_multi_exec の使い方
- 18. 生のPHPでフリマサービスを作る_part3
- 19. ChatGPTにモナドを教えてもらった
- 20. 【Builtin web server】php -S 0.0.0.0:8000をマルチスレッドで並列処理【PHP_CLI_SERVER_WORKERS】
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-pdo 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 による報告プログラミングとは何か? 簡単に言えば、プログラミングはコンピューター上でプログラムを作成するプロセスです。作成されたプログラムは、ソフトウェア、ウェ
PHP(基礎文法)に関する自分用メモ
**XMLの読み込み**
“`php
$xmlTree = simplexml_load_file(‘rss.xml’);
echo $xmlTree->channel->link;
“`
↑のように、タグ形式でchannelがプロパティ、linkが値みたいなかんじでアクセスできる。**ファイルの読み込み・追記**
“`php
$news = file_get_contents(‘data/news.txt’);
echo $news; //画面にテキストの内容が表示される。$news = $news . “
追加のニュースです”;
$success = file_put_contents(‘data/news.txt’, $news); //これでnews.txtの中に追記ができる。readfile(‘data/news.txt’); //いちいち↑のように変数に代入しなくても表示される。
“`
ー------------------------
デフォルト値の引数は、呼び出しの時の引数で上書きされる!
“`p
これまで気にしていなかった命名規則について考えてみる
## はじめに
プログラミングにおいて命名規則というものが存在する。
明確なルールとまではいかないそうだが、ある程度こういう場合はこのように書くなどの法則があるそう
実際にコードを書いていて、変数名だったりクラスの作り方だったりで書き方に迷う場合があったので調べて今の理解なりにまとめてみます。## 命名規則とは
変数名などコンピュータプログラムのソースコード上で開発者が名付ける識別名についての決まりごと。
言語仕様や開発環境などによって定められているものと、ソフトウェア開発を行う組織やチームが内部的に定めるものがある。
その中でよく使われる`スネークケース`や`キャメルケース`、`ケバブケース`について少しまとめていく。### 命名規則がなぜ必要か
クラス名やメソッド名、関数名、定数名、変数名など、プログラム上で定義して扱う対象に名前を付ける機会は多くあるが、
複数人で開発を行う場合などにそれぞれが異なる考え方や基準で名前を付けると、互いのコードの可読性や視認性が損なわれ、開発効率や保守性の悪化につながる。
また名前の衝突や使い回しなどでバグが生じることもある。そこで、名前
Laravelの開発環境をDockerで構築する
## はじめに
最初にディレクトリを作成します。“`
mkdir laravel_app
cd laravel_app
“`### docker-compose.yml の作成
`laravel_app`ディレクトリのルートに`docker-compose.yml`という新しい名前のファイルを作成します。“`
touch docker-compose.yml
“`こちらはコンテナのビルド方法をはじめコンテナにアクセス可能なネットワークやボリュームまで、アプリケーションの設定で作成するコンテナのすべての設定が保持されます。
`docker-compose.yml`に以下を記述します。
“`yaml:docker-compose.yml
version: ‘3’services:
“`## データベースコンテナをビルドする
`docker-compose.yml`で*services*エントリを以下のように更新します。
“`yaml:docker-compose.yml
services:
db:
image: my
[WIP] PHP で セッションを管理するとは
– ウェブページが表示されるまで
– ステートレス
– セッションとは
– Cookie とは
– セッションID,セッション変数,セッションクッキー
– 主なメソッドたち
laravelでCRUDを理解するためにまたTodoを作った!
# LaravelでCRUDするのにやったこと
Laravelを使うための環境設定は別の記事で紹介します。
今回はXampp環境で最小構成のTodoを作成しました。
作成・修正を行ったファイルとその意味について整理します。
## フォルダが多くてきついと思っていた!
**一通り作ると結構すくないもんなんだな。**
使用ファイル
– マイグレーションファイル
– フロント用bladeファイル
– コントローラファイル
– ルーティングファイル:web.php
– modelファイル
– 使う人には.env## マイグレーション:DBテーブルの作成
マイグレーションは、アプリフォルダ内にDBの構成を記録しておくファイルです。
xamppの環境下であればphp artisan migrateコマンドを打てば、DBが自動で作成されるため便利です。
今回は、テーブル名のposts、カラム名(id,title,content,timestamp)のDBを作成します。
database\migrationsフォルダの中にあるよ。
“`p
Laravelで複数検索機能を実装する手順
検索機能の実装にはたくさんのアプローチがあると思いますが、その中でも個人的に理解しやすかった方法があったので備忘録としてまとめています。
## やりたいこと
viewsの一覧画面からgetで検索したい内容を渡し、その検索結果を一覧画面に反映させます## 前提
マイグレーションを作成します。同時にモデルも生成します。“`php:2023_01_21_122803_create_items_table.php
縦書きジェネレーターを作りました。
### 二番煎じ感が強い縦書きジェネレーターですが、作ってみました。
飽きたら削除するかもです。使用した言語等はJavaScript、php、Sqlite3、html、cssになります。
※[html2canvas](https://html2canvas.hertzen.com/)というライブラリを使っています。これがあったので短時間で創ることが
出来ました。ありがとうございます。ソースコードの一部を抜粋します(下記になります)。
動作は下記より確認できます。
https://358tool.com/tategaki-tool/“`javascript
document.getElementById(“tategaki-input”).addEventListener(“input”, function (e) {
document.getElementById(“tategaki”).innerText = this.value;
});
document.getElementById(“btn”).addEventListener(“click”, f
Laravelで主に使用してきたデバック方法
## 前置き
Laravelでの開発をスムーズに進めるために必要な方法になると思います。
実務経験から主に使っているデバック方法を紹介します。## 紹介するデバック
以下3つを紹介します。・dd()
・dump()
・Logファザード(Log::~)dd()とdump()はビューに出力を行い、Logファザードはlogs/laravel.logに出力されます。
## dd()
dd()は、使用した時点で処理を終了させます。
その為、それ以降の処理を行うことはありません。
“`php
$array = [
‘a’ => ‘あ’,
‘i’ => ‘い’
];
dd($array);// ここで処理止まる$a = $array[‘a’];
“`
上記の場合、最後の行の$aの部分の処理は行われません。
?出力結果
![スクリーンショット 2023-01-29 13.16.56のコピー.png](https://qiita-image-store
PHPのタイプヒンティングはどのくらいコストフリーではないのか
# はじめに
CakePHP のコーディング規約を見ていて、気になる一文があったため、実際にどのくらいコストがかかるのかを確認します。
> オブジェクトや配列を期待する引数はタイプヒンティングを指定することができます。しかしながらタイプヒンティングはコストフリーではないので、public メソッドにだけ指定します。
https://book.cakephp.org/4/ja/contributing/cakephp-coding-conventions.html#id12
# 結論
:::note info
タイプヒンティングすることで処理時間が約 110% となる
:::# バージョン
– PHP
– 8.2.1
– Docker Desktop
– 4.16.2# 確認
## 確認したリポジトリ
https://github.com/q23isline/study_php
## 検証プログラム
タイプヒンティングありのメソッドを 100万回実行するプログラム
“`php:src
CURLMOPT_MAX_TOTAL_CONNECTIONS curl_multi_exec の使い方
“`php
生のPHPでフリマサービスを作る_part3
### この記事のシリーズ
– [生のPHPでフリマサービスを作る_part1](https://qiita.com/daichi_hasegawa_stars/items/22f12b7c9aa019781b27)
– [生のPHPでフリマサービスを作る_part2](https://qiita.com/daichi_hasegawa_stars/items/286c5f8ea49ea79e4aa6)## フリマサービス作成の流れ
1.機能を洗い出す
2.画面設計(今回はPHPの深掘りがメインなので割愛します)
3.テーブル設計
4.クラス設計 ← 今回もここ
5.実装## クラス設計
前提として、私自身、勉強中の身なのでこれから作っていくクラス設計が合っているかどうかは未知数です。
ただ、基本は単一責任の原則に従って作っていく。
そうすれば、とりあえずは訳のわからないことにはならないはず。### ユーザー登録機能のクラスを作成
まず、DBへの接続とSQLを実行するクラスを作成する1. Databaseクラスを以下のように作成
※これ、接続情報ベタ書きしてますが、ChatGPTにモナドを教えてもらった
# 教えてもらう前
– モナドという名前は知っている
– Haskellの世界で有名らしい言葉(Haskellの事はよく分からない
– 「HaskellはIO無いけどIOモナドで何とかなるよ!」というモノらしい# 教えてもらった後
[Option型](https://doc.rust-jp.rs/rust-by-example-ja/std/option.html)に`unwrap_or`と`unwrap_or_else`を生やして好きな[振る舞い](https://elixirschool.com/ja/lessons/advanced/behaviours)をセットにしたもの
“`typescript:こんな感じで
class Maybe{
private value: T | null;private constructor(value: T | null) {
this.value = value;
}static some
(value: T): Maybe {
return new Maybe(value【Builtin web server】php -S 0.0.0.0:8000をマルチスレッドで並列処理【PHP_CLI_SERVER_WORKERS】
# PHP_CLI_SERVER_WORKERS=16 php -S localhost:8000
16スレッドで並列処理する場合
“`bash
PHP_CLI_SERVER_WORKERS=16 php -S 0.0.0.0:8000
“`https://man.plustar.jp/php/features.commandline.webserver.html
関連する記事
OTHERカテゴリの最新記事
-
- 2024.09.19
JavaScript関連のことを調べてみた
-
- 2024.09.19
JAVA関連のことを調べてみた
-
- 2024.09.19
iOS関連のことを調べてみた
-
- 2024.09.19
Rails関連のことを調べてみた
-
- 2024.09.19
Python関連のことを調べてみた
-
- 2024.09.19
Lambda関連のことを調べてみた