- 1. 【WordPress】WordPress から DB を操作する
- 2. DockerでPHP(Laravel)+ nginx + MySQLのLEMP環境を構築する
- 3. PHP の error_reportingディレクティブ
- 4. MacをMontereyにアップデートしたらAlfredTweetが動かなくなった
- 5. Laravelアプリをgit cloneした後にやったこと
- 6. paiza PHP 指定範囲の大文字化
- 7. TechTrain技術スタック紹介と作り手としての市場に思うこと
- 8. Laravelで用意したファイルを使ってテストする
- 9. 【初心者】Cloud Spanner With Laravelのローカル環境構築
- 10. Chromeのページネーションと同じ動作するページネーションが実装できたっぽい
- 11. 「アプリケーションサーバ??」となったPHPerのお話
- 12. 【pythonメモ】回数指定のfor文(for .. in range)の使い方
- 13. [php] mysqli_fetch_array
- 14. [php] mysqli_fetch_assoc
- 15. {GRAYCODE} ひと言掲示板を作る に挑戦してみる。
- 16. PHP mb_strlen(), strlen()の違い
- 17. 【Laravel】最短で例外処理のcatchに落とすハゲホゲ
- 18. PHPとイスラエル ←便乗
- 19. プログラミング初学者が1ヶ月で得たスキルとコーディング以外のナレッジ
- 20. カラオケお役立ちアプリ制作記(制作中)
【WordPress】WordPress から DB を操作する
今回は WordPress からDB(データベース)にアクセスして UPDATE と INSERT 処理を行う方法をご紹介します。
また UPSERT 処理(UPDATE + INSERT)を行う方法についても合わせてご紹介します。## 環境
WordPress: 4.9.19
PHP:7.0.27
MySQL:5.6.38## DB設計
今回扱うサンプルのテーブルを作成します。
このテーブルでは学生の情報(名前、メールアドレス、学年)を管理することとします。
“`session_id“` は UPDATE 処理を行う際にキーとして用います。“`
CREATE TABLE wp_test (
id INT(11) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT ‘ID’,
name VARCHAR(30) NOT NULL COMMENT ‘名前’,
mail VARCHAR(30) NOT NULL COMMENT ‘メールアドレス’,
grade TINYINT(3) UNSIGNED DEFAUL
DockerでPHP(Laravel)+ nginx + MySQLのLEMP環境を構築する
## 概要
Docker, Docker Compose を使って、`PHP(Laravel) + nginx + MySQL`の`LEMP環境`を構築する記事です。検索するとDockerfileやdocker-compose.ymlの書き方については色んな方が記事を書いてくださっていて、動く環境を作ること自体は難しくありませんでした。
ですが、筆者はひとつコンテナを作っては動作確認していくという過程を経てすごく理解が深まったなと思うので、ファイルの書き方だけでなく動作確認したことやその結果を含めて記事に残しておきたいと思います。
↓ 完成後のリポジトリはこちらです。
https://github.com/hinakonagao/laravel_docker_sample
# 全体像
最終的なディレクトリ構成は以下の通りです。
全コンテナを管理するdocker-compose.ymlがトップレベルにあり、同じくトップレベルにあるdockerディレクトリ配下に各コンテナのDockerfileや設定ファイルを置いています。
“`:tree
docker_sample/
PHP の error_reportingディレクティブ
# error_reporting ディレクティブとは
phpinfo() を実行すると、 error_reporting ディレクティブという設定値が整数値として表示されます。
この error_reporting ディレクティブは、エラー出力レベルを設定するもので、以下のエラーの種類それぞれについて、どのエラーを出力するかを 16ビットのビットマスクで構成し、10進数で表したものとなっています。| 設定値 | 定義済み変数 | 説明 |
| —–: | ——————- | ——————————————————————– |
| 1 | E_ERROR | 重大な実行時エラー。 |
|
MacをMontereyにアップデートしたらAlfredTweetが動かなくなった
# 環境
– Mac: Monterey
– Alfred3# 解決策
1. Alfred4.6にバージョンアップする
1. phpをInstallして動かす## 1.Alfred4.6にバージョンアップする
公式の解決策はこれ。
PowerPack使ってるから買い直さないといけないので却下したので、試していません。>If you install PHP (eg via homebrew ), most PHP-based workflows will continue to work without an issue, as the workflow script objects in Alfred 4.6 have been updated to be aware of alternative bin paths.
PHPをインストールした場合(たとえば、homebrewを介して)、Alfred 4.6のワークフロースクリプトオブジェクトが代替のbinパスを認識するように更新されているため、ほとんどのPHPベースのワークフローは問題なく機能し続けます。
htt
Laravelアプリをgit cloneした後にやったこと
#前提
MacOS バージョン11.2.3
CPU Apple M1—–
git/github
MAMP
VScode以上、インストール済み
“`
% node -v
v14.17.5% npm -v
6.14.14% laravel -v
Laravel Installer 4.2.9% php -v
PHP 8.1.1
“`
他に思い出して気が向けば追記します。#git cloneの方法
まずはgit cloneです
“`
ターミナル
cdコマンドで入れたいファイルに移動
% git clone https//<クローンしたいURL>.gitCloning into ‘〇〇’…
Username for ‘https://github.com’: <自分のgithubのuser名>
Password for ‘https://tsunodayuki0302@github.com’: <パスワード(ターミナルには表示されません)>成功したら↓
remote: Enumerating objects: 2754, done
paiza PHP 指定範囲の大文字化
paizaの問題集を毎日解いているのでそこでの学習内容を書いていこうと思います。
回答とは違う手順だったので参考にするくらいにしてもらえると嬉しいです。####問題
与えられた文字列のなかで指定された範囲を大文字にする。paizaの場合、標準入力からの値の取得をしないといけないのですが今回は下記のようにしました。
“`
$s = “It’s nice to meet you.”; //与えられた文字列
$a = 6; //始まりの番数
$b = 11; //終わりの番数
“`次に文字列の数だけ処理を回したいので、文字数を数えます。
大文字に変更後の文字列を入れるために空の変数を用意します。
文字列を一文字づつの配列にします。“`
$n = mb_strlen($s);// 出力:22
$ans = “”;
$array_s = str_split($s);//文字列を一文字づつ格納
“`次に繰り返し処理を行っていきます。
“`
for($i = 0; $i < $n; $i++)//文字の数だけ繰り返す { if($a - 1 <= $i &&
TechTrain技術スタック紹介と作り手としての市場に思うこと
# はじめに
[TechTrain](https://techbowl.co.jp/techtrain)でエンジニアをしているスーです。
Twitterはこちらで、DMなど気軽にしてもらって大丈夫ですw一緒に働くエンジニアを探している中、今までちゃんとした記事として、ZennのようなプラットフォームにTechTrainの技術スタックを投稿したことがなかったなと思い立ち、この記事を書いています。
# 開発体制
弊社では現在次のような体制で開発しています
1. フルタイム社内エンジニア1名(僕)[何でも屋さん]
2. インターン生4名
フロントエンド: 2名
バックエンド: 2名全員ほぼフルリモートで開発をおこなっています。
(なんならインターン生のうちの一人は1年以上働いてくれているのに一度もオフラインであったことがありませんw)
現在進行中の開発で使用されている技術スタックについてご紹介します。# サービス紹介
U30をメインターゲットとした、エンジニアとしての「実力を一段上に」なってもらう
Laravelで用意したファイルを使ってテストする
## はじめに
CTIのサービスに携わっている為、音声ファイル関連の機能に関わる事が多く自動テストで音声ファイルを扱う機能をカバーしたいと考えていました。
初期実装では、“`UploadedFile::fake()“`を利用して以下のようにダミーデータ作り対応していました。“`php
use Illuminate\Http\UploadedFile;$record_file = UploadedFile::fake()->create(
name: ‘record-file-sample.wav’,
mimeType: ‘audio/x-wav’
);
“`
しかしダミーデータでは、ファイルサイズチェックなどの一部メソッドのテストが上手くいかなかった為(この辺りの調査は必要かもしれない)、自分で用意したテストデータを持つファイルをPOSTする方法を調べたのでまとめておきます。
## 環境
“`
Laravel8系
“`
## 実装方法
### 1, テスト用の音声ファイルを用意する
今回はテスト
【初心者】Cloud Spanner With Laravelのローカル環境構築
# 概要
自分のメモ用にローカルにCloud Spannerを立て、PHP(Laravel)から操作する手順をまとめました。
なるべくそのまま使えるように記載したつもりですが不明な点があれば、コメントいただければと。
Spannerは1ノードでもお高いと聞きますし、とりあえずPHPで検証してみたいっていう方のお役にも立てたら嬉しいです!
※今回の環境構築は、Docker Desktop for Mac上で行っています。# ローカルのSpanner環境の構築
以下ブログの通り、githubからcloneしてきて、`docker-compose up -d`するのみw
ローカル環境用のdocker-composeを公開してくれている方と、wrenchを公開しているメルカリの方に感謝です!![Cloud Spannerのローカル開発環境をdocker-composeでサクッと立ち上げる | フューチャー技術ブログ](https://future-architect.github.io/articles/20210323/)
# Laravel環境構築
今回は普段良く利用してい
Chromeのページネーションと同じ動作するページネーションが実装できたっぽい
####ページネーションを作ったきっかけ
PHPでページネーションを自作せよ!という課題が出ました。
簡単なページネーションのやり方はネットに大量に上がってるし、何か自分で考えた機能を一つ持たせてみたいと思い、参考にできるアイデアを探しがてらChromeのページネーションをポチポチしていると
「Goooooooooogle」という風に「o」がページの数だけ連続して、表示されているページの部分だけ赤くなるのが面白かったので、Chromeのページネーションを実装できるかチャレンジしてみたところ、とりあえずは実装できたっぽいので、記録として記事にしておこうと思いました。##実装
まずページネーションで表示するページ数と1ページあたりのリソース数を定数で持ちます。
“`php
// ページネーションで表示するページ数
const RANGE = 10;// 1ページに表示するリソース数
const ITEM_COUNT = 5;
“`クエリパラメーターからページ数を取得し、ページング対象リソースの件数をSQLを発行し取得します。(SQLの記述は省略しています)
“`
「アプリケーションサーバ??」となったPHPerのお話
# はじめに
業務でアプリケーションサーバについて調べる機会があったので、備忘録としてまとめたいと思います。
バックエンドの言語の中でPHPしか触ったことがないので、アプリケーションサーバについて全く知りませんでした(言い訳)。# アプリケーションサーバ(APサーバ)とは
アプリケーションを実行するためのサーバのことです。
詳細は[こちらの記事](https://kitsune.blog/ap-server-summary)からお願いします。この記事を読むと* Web三層構造システム
* APサーバとWebサーバの違い
* PHPは、なぜAPサーバがなくても動くのかが理解できます。そして、これらを中心に検索すると面白い記事がたくさん出てきます。
### WebサーバとAPサーバの分離について
https://ja.stackoverflow.com/questions/18417/web%e3%82%b5%e3%83%bc%e3%83%90%e3%83%bc%e3%81%a8ap%e3%82%b5%e3%83%bc%e3%83%90%e3%81%ae%e5%88%86%e
【pythonメモ】回数指定のfor文(for .. in range)の使い方
#1.はじめに
様々なプログラミング言語で使われるforループ。
pythonでは回数指定のforが3種類ある。
今更だけど、どうにも使いずらいので自分用のメモとしてまとめてみた。#2.実行環境
OS:windows10
Python 3.8.10(jupyter notebook上で実行)
PHPはpaiza.ioで実行#3.for .. in range
###`パターン1)for 繰り返し変数 in range(N1)`
N1:指定回数
指定回数だけある処理を実行したい場合使える。“`python
for i in range(5):
print(“Loto6”)
“`
“`:出力結果
Loto6
Loto6
Loto6
Loto6
Loto6
“`
ただし繰り返し変数も利用したい場合は、その値は__0~N1-1__となることに注意が必要になる。“`python
for i in range (5):
print(“Loto6トライ:”+str(i)+”回目”)
“`“`:出力結果
Loto6トライ:0回目
Loto6トライ:1回目
[php] mysqli_fetch_array
https://www.php.net/manual/ja/mysqli-result.fetch-array.php
mysqli_result::fetch_array
mysqli_fetch_array結果セットから1行取得し、それを配列として返します。 値を取得した後は、この関数をコールするたびに結果セットの次の行の値を返します 結果セットに対して行がなければ、null を返します。
データを数値添字の 配列に格納することに加えて、この関数は 結果セットのフィールド名をキーとする連想配列にもデータを格納できます。
[php] mysqli_fetch_assoc
https://www.php.net/manual/ja/mysqli-result.fetch-assoc.php
mysqli_result::fetch_assoc
mysqli_fetch_assoc結果セットから1行取得し、それを連想配列として返します。 値を取得した後は、この関数をコールするたびに結果セットの次の行の値を返します。 もう結果セットに行がない場合には null を返します。
{GRAYCODE} ひと言掲示板を作る に挑戦してみる。
リファレンスサイト
mainサイト(お馴染みのサイトの備忘録です)
https://gray-code.com/php/make-the-board-vol1/
その他
https://qiita.com/hayato787/items/64c6ce30b872cee75e11
file関係
https://ysklog.net/php/7450.html
pdo関係(sqlite)
https://slash-mochi.net/?p=904
csv関係(そのままコピペしました)
https://qiita.com/ryo-futebol/items/8fe86267c099fed05594
https://tech.arms-soft.co.jp/entry/2019/10/23/090000
css関係
#メッセージをjsonファイルにして保存一覧表示
##
PHP mb_strlen(), strlen()の違い
現在、転職のために「PHP」を学習しているのでそこで学んだことを書いています。
間違い等もあると思いますがご了承ください。####mb_strlenとstrlenの違い
mb_strlen() = 引数に指定した文字列の長さを取得する。
strlen() = 引数に指定した文字列の長さをバイト数で取得する。
実際にコードを書いてみると下記のような結果になります。“`
$a = “おーい、お茶”;
$b = “abcdef”;echo mb_strlen($a); // 出力:6
echo strlen($a); // 出力:18echo mb_strlen($b); // 出力:6
echo strlen($b); // 出力:6“`
strlen(#array1)が18を出力するのは「エンコーディング」によるものだそうです。(日本語は2バイトだと思っていました。)
エンコーディングについてはこちらのサイトに書いてありましたので下記サイトを参考にしてみてください
【Laravel】最短で例外処理のcatchに落とすハゲホゲ
### 例外処理がちゃんと動くか確認したい
Laravelプロジェクトで開発を進める時に例外発生時に、ログを出したい。Slackに通知したい。メールを送りたい。フラッシュで返したいなど色々なケースがあると思います。
catch側の実装は済んだけど、実際にエラーを発生させて確認したい時どうしましょう。
DBをデッドロックさせますか、環境変数を変えますか、LANケーブル抜きますか。
いやいや、そんなに頑張る必要はないです。### やり方
以下ハゲホゲでめでたしめでたし。“`
try {
$hage = $hoge;
// 処理
} catch (\Exception $e) {
report($e);
// 例外処理
Log::debug(‘hagehoge’);
}
“`
### よくあるミス(?)
エラーは発生しているのに、catchしてくれないぞという時。catchの後のExceptionに
\が抜けていたら、namespaceの問題で以下に直すだけで落ちてくれる可能性が高い。かもしれない。“`
× } catch (Exception e
PHPとイスラエル ←便乗
この記事への便乗です。
– PHPとイスラエル
– https://qiita.com/jkr_2255/items/06f58bef9a9de96b88ba“`
2箇所ほど存在します。
“`3箇所目を紹介。(といっても、もはや昔話ですが)
# calendar モジュール
その昔、C言語文字列リテラルでヘブライ文字をそのまま入れてました。
なお、UTF−8 とかでなく ISO-8859-8 です。“`
/* names for leap (13-month) year */
char *JewishMonthHebNameLeap[14] =
{
“”,
“˙˘¯È”,
“Á˘ÂÔ”,
“ÎÒÏ”,
“Ë·˙”,
“˘·Ë”,
“‡„¯ ‡'”,
“‡„¯ ·'”,
“ÈÒÔ”,
“‡Èȯ”,
“ÒÈÂÔ”,
“˙ÓÂÊ”,
“‡·”,
“‡ÏÂÏ”
};/* names for regular year */
char *JewishMonthHebName[14] =
{
“”,
“˙˘¯È”,
“Á˘
プログラミング初学者が1ヶ月で得たスキルとコーディング以外のナレッジ
# はじめに
・本記事は、プログラミング初学者の私が神戸に来て__取り組んだこと__、そしてその中で__得たこと__をまとめる記事になります。# 取り組んだこと
##### 主に大きく分けて“`4つのカテゴリー“`になります。
>__Potfy.me ( チーム開発 )__
>__Laravel sail ( 個人開発 )__
>__Kobe Engineer’s Lab ( イベント運営 )__
>__Qiita へアウトプット__# 得たこと
### ・ Potfy.me ( チーム開発 )
—
“`Potfy.me では、ユーザー自身のポートフォリオを 「 下書き 」 と 「 公開 」 で保存できる機能を実装しました。また、ポートフォリオの編集画面で 「 下書き 」 「 公開 」 の切り替えをできるようにし、公開タブと下書きタブで表示するポートフォリオの切り替え、ポートフォリオ一覧画面では下書きポートフォリオは非表示の機能も実装しました。“`
公開タブ
![スクリーンショット 2022-01-28 19.32.32.png](https://qiita-
カラオケお役立ちアプリ制作記(制作中)
# 開発環境
– MAMP
– vscode
– Macbook Pro# 利用バージョン
– Laravel Framework 6.20.44
– php 7.4.27#1. プロジェクト作成
プロジェクト作成
`composer create-project –prefer-dist laravel/laravel karaoke_app “6.*”`#2. 認証機能作成
Laravel ui インストール
`composer require laravel/ui:^1.0 –dev`
認証機能周りを生成
`php artisan ui vue –auth`
各種ライブラリをインストールしてビルド
`npm install && npm run dev`
簡易サーバを立ち上げる
`php artisan serve`
認証機能が生成されているか(ポートは環境や設定によって異なるかも)をブラウザで確認
`http://127.0.0.1:8000/`#3. .envの編集
.envファイルを修正“`
APP_NAME=karaoke_app
DB_CO