- 1. laravelとstripeで決済する
- 2. 【Laravel】Eloquentで1つのカラムの情報を取得
- 3. macを買い替えたり、brewが壊れたりしてbrew自体を最初から入れないしたいときに再度入れておきたいライブラリ等
- 4. 簡単なforeach処理をarray_mapとアロー関数で書き換えて高速化してみる
- 5. 【PHP】【多次元配列】配列を追加していく array_merge() 不要論
- 6. LaravelをインストールしたEC2 に Supervisor を導入する
- 7. スマート(かもしれない)ジュークボックスサーバーを作る
- 8. PHPバージョン変更点をピックアップ(8.x ~ 8.1)
- 9. php 開発環境構築
- 10. laravel mysql sql 速度計測
- 11. PHP function_exists
- 12. htaccessがどうも動かなかったとき・・
- 13. Laravelで他フィールドが特定の値だった場合にバリデーションしたい
- 14. Microsoft Teams上で動くチャットボットの紹介
- 15. Dockerで2つのプロジェクトで参照し合う場合の注意の話
- 16. CRC32の再現方法を求めて
- 17. JavaScriptから使いやすいWebAPIをRPCでお手軽に
- 18. PHPとRepl.itで何でも換算してくれる単位換算機を作ったお話
- 19. 初めての個人開発日記【Laravel】#1
- 20. 【未経験・独学】アパレル卸売ECモールアプリの開発 / マルチログイン【PHP/Laravel/JavaScript/Vue】
laravelとstripeで決済する
今までコピペコピぺで凌いできたので整理する
まずはプロジェクトを任意のディレクトリに作成
“`
composer create-project laravel/laravel stripetest “8.*” –prefer-dist
“`
(これでできない場合、プロジェクト作成の段階でバージョンに原因があったり、使っているサーバーのPHPのバージョン、composerのパス等調べてみてください。)続いてプロジェクト内に入ります。
“`
cd stripetest
“`
そしてstripeのパッケージが要ります。casierというパッケージをインストールしましょう。
“`
composer require laravel/cashier
“`ところがどっこいエラーが出ることも
“`
Your requirements could not be resolved to an installable set of packages.Problem 1
– Root composer.json requires laravel/cashier ^
【Laravel】Eloquentで1つのカラムの情報を取得
# はじめに
Eloquentで1つのカラムの情報を取得する方法について調べた際にいくつかの方法が出てきたので、取得した結果をまとめてみました。# selectを使って取得
**取得方法**
“`
$name_data = CategoryModel::select(‘name’)->get();
“`**結果**
“`
[{“name”:”氏名”},{“name”:”電話番号”},{“name”:”性別”},{“name”:”郵便番号”},{“name”:”市区町村以下”},{“name”:”都道府県”},{“name”:”テスト”},{“name”:”生年月日”}]
“`# getを使って取得
**取得方法**
“`
$name_data = CategoryModel::where(‘chain_id’, $request[‘chain_id’])
->get([‘name’])
“`**結果**
“`
[{“name”:”氏名”},{“name”:”電話番号”},{“name”:”性別”},{“name”:”郵便番号”
macを買い替えたり、brewが壊れたりしてbrew自体を最初から入れないしたいときに再度入れておきたいライブラリ等
## brew
個人のPC汚したくないからコンテナ内でinstallすればいいじゃないかという話は置いといて、phpやcomposerやyarnやnodeなどのライブラリの導入管理をするためのツール。nodeを管理するための`n`も`brew`で導入できる。
macユーザー必須のパッケージ管理ツール。https://brew.sh/index_ja
“`bash
% /bin/bash -c “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)”
“`バージョン等確認。
“`
% brew info
54 kegs, 19,016 files, 695MB
% brew -v
Homebrew 3.6.10
Homebrew/homebrew-core (git revision b3600170839; last commit 2022-11-11)
Homebrew/homebrew-cask (git revision a7fa89f029; la
簡単なforeach処理をarray_mapとアロー関数で書き換えて高速化してみる
この記事は、PHP8以降のユーザー向けです。
なぜなら、PHP7以前の場合は、array_mapよりもforeachのほうがパフォーマンスで有利だからです。PHP8のJITコンパイラの実装により、array_mapのcallableが最適化されるようになりました。そのため、PHP8以降では、適宜array_mapを利用したほうが高速なようです。
特にアロー関数を使った場合は、通常のcallableを呼び出すよりも更に高速です。そこで、本稿では今までforeachで実装されていた処理をarray_mapとアロー関数を用いて高速化する手法を紹介したいと思います。
※個人的見解が含まれていますので、間違いがあればご指摘ください。
# 1.簡単なforeachを書き換え
まずは以下のようなforeach文を書き換えてみましょう。“`php
【PHP】【多次元配列】配列を追加していく array_merge() 不要論
# コード
“`PHP
‘田中’, ‘japanese’ => 83, ‘math’ => 57, ‘science’ => 43, ‘social’ => 72, ‘english’ => 78],
[‘name’ => ‘渡部’, ‘japanese’ => 62, ‘math’ => 88, ‘science’ => 70, ‘social’ => 66, ‘english’ => 38],
[‘name’ => ‘品川’, ‘japanese’ => 23, ‘math’ => 33, ‘science’ => 53, ‘social’ => 17, ‘english’ => 7],
[‘name’ => ‘滝谷’, ‘japanese’ => 93, ‘math’ => 89, ‘science’ => 79, ‘social’ => 96, ‘english’ => 91],
[‘name’ => ‘川原田’,’japanese’ => 55, ‘math’
LaravelをインストールしたEC2 に Supervisor を導入する
# はじめに
LaravelのSupervisorを使用してworkerプロセスを管理するため、Ec2にSupervisorを導入する流れをまとめました。# 初期構築
EC2 Laravelは、下記記事で構築済み。
https://qiita.com/hirai-11/items/ea6cfe997c254375e811
ルートディレクトリは、`/var/www/html`です。
`/var/www/html`配下に laravel の public や storage があります。# Supervisorをインストール
まず、epelをインストール後、supervisorをインストールします。
“`terminal
$ sudo amazon-linux-extras install -y epel$ sudo yum –enablerepo=epel install -y supervisor
$ supervisord -v
3.4.0
“`
`/etc/supervisord.d`配下に管理プロセスファイルを新規作成します。“`terminal
スマート(かもしれない)ジュークボックスサーバーを作る
# 1.はじめに
googleAssistantにある`SOUNDBAR`デバイスとして振る舞うサービスを作り、音声指示によって送られてくる具体的なコマンドもだいたい把握できました。他にも操作指示はあると思うのですが、喋りつかれるので最低限の「再生」「停止」「セットリストの変更」ができれば個人的には十分です。それぞれの指示で送られてくるコマンドについては「[OK、グーグル。ジュークボックス、プレイ](https://qiita.com/SSaitou/items/7da8ead299fad0f002fb)」にまとめています。
あとはそれらのコマンドに応じた振る舞いをするサーバーを作成するのみとなります。また、今回は全体の概要説明に留めて個々の具体的な作りは稿を改めようと考えています。
# 2.全体の造り
簡単に全体の造りを説明しておきます。
![googleAssistantButlerSystem.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2696131/2471efd3-3617-2dfc
PHPバージョン変更点をピックアップ(8.x ~ 8.1)
7.4以前のまとめは[こちらです](https://qiita.com/RyutaKojima/items/d9a968ab6a1721736938)
# [PHP 7.4.x から PHP 8.0.x への移行](https://www.php.net/manual/ja/migration80.php)
[新機能](https://www.php.net/manual/ja/migration80.new-features.php)
– [名前付き引数](https://www.php.net/manual/ja/functions.arguments.php#functions.named-arguments) のサポートが追加されました。
“`
myFunction(paramName: $value);
array_foobar(array: $value);// 以下の書き方はサポートされていません
function_name($variableStoringParamName: $value);
“`
php 開発環境構築
“`
apache インストール
https://mebee.info/2020/04/17/post-9589/
ダウンロード>解凍php インストール
https://webkaru.net/php/windows-php-instal/
ダウンロード>解凍
phpl.ini 編集
extension_dir = “c:/php/ext”
display_errors = Onhttpd.ori.conf 編集
ServerName localhost:80
LoadModule php_module c:/php/php8apache2_4.dll
PHPINIDir “c:\php”
AddHandler php-script .php
AddType application/x-httpd-php .php
Composer
laravel mysql sql 速度計測
# 速度を計測しちゃおう
phpやsqlで処理時間を計測したいときがある。
そんなときはサクッと!“`hoge.php
$start = hrtime(true); // 計測開始時間
// ここに計測したい処理を書く
// 計測したい処理を書くここまで$end = hrtime(true); // 計測終了時間
$nano_sec = $end – $start;
$sec = $nano_sec / 1000000000;
echo ‘処理時間:’. $sec .’秒’ . ‘
‘;
die;
“`以上
PHP function_exists
# 概要
– PHPの`function_exists()`関数を簡単にまとめる。
# 内容
– `function_exists()`関数は引数に取った関数が組み込み関数、ユーザー定義関数のいずれかで定義済みかを確認する。
– 定義済みの場合trueを、定義されていない場合falseを返す。
– 例1(下記は「関数は存在しません」と出力される。)“`php
htaccessがどうも動かなかったとき・・
Dockerでphp:8.1-apache-bullseyeのイメージに
Laravel+Jetstreamで環境構築していたら
/login /registerのページが404 not foundで動かない・・何度入れ直してもだめだったので、htaccessかな?って思うようになって
でも、微妙にhtaccessは動作していて、??だったが
ふとapache moduleを確認していたら“`
# apache2ctl -M
Loaded Modules:
core_module (static)
so_module (static)
watchdog_module (static)
http_module (static)
log_config_module (static)
logio_module (static)
version_module (static)
unixd_module (static)
access_compat_module (shared)
alias_module (shared)
auth_basic_module (s
Laravelで他フィールドが特定の値だった場合にバリデーションしたい
## やりたいこと
以下のリクエストパラメータがあるとする
|site_kinds(サイト種別)|site_url(サイトURL)|
|—|—|
|例:yahoo,google,bing|例:google.co.jp/abc,yahoo.co.jp/def |
|必須項目、yahoo,google,bingのどれかであることをバリデーション|googleだった場合のみURLが重複登録されていないことを確認|## 環境
Laravel 9.x## Laravelでデフォルトで用意しているメソッドを使ってみる
公式:https://readouble.com/laravel/9.x/ja/validation.html
「他のフィールドが特定の値と一致した場合」にできそうなバリデーションは何個かある
– 空かどうか
– nullかどうか
– requiredにする
– validate,validatedから除外するvalidate,validatedから除外するを採用
“`php
// site_urlsというテーブルには「site_url,site_
Microsoft Teams上で動くチャットボットの紹介
# Microsoft Teams上で動くチャットボットについて
製品の概要については以下のページからご確認ください。
https://www.mahty-solutions.com/holabot
https://prtimes.jp/main/html/rd/p/000000001.000103237.html今回はMicrosoft Teamsの開発に当たり、技術的な側面からまとめてみました。
## チャットボットの機能について
製品の概要については添付したURLにも記載がありますが、大きく分けると
①Q&A機能
②M365と連携した機能
になります。
今回は技術的な側面から紹介をさせて頂くため、
以下の流れで順番に紹介をしていきます。・各機能で共通して使用している技術的
・Q&A機能
・M365と連携した機能## 各機能で共通して使用している技術について
チャットボットの本体はAzure Bot Serviceを使用し、チャットボットの動作自体はBot Framework(C#)で実装をしています。
イメージは下の図のような感じになります。![imag
Dockerで2つのプロジェクトで参照し合う場合の注意の話
開発環境としてDockerって結構使いますよね。
今回は開発プロジェクトが別の開発プロジェクトにアクセスするときに発生しました不具合とその対応を書いておきたいと思います。
正直、この問題は難しくて一日悩んでいました。
答えはシンプルでしたw# 開発環境
はじめに開発環境を書いておきます。今回はPHPStormを使いまして以下のプロジェクトを作成しています
– Webページのプロジェクト(port : 8000)
– Web API開発プロジェクト(port : 8001)それぞれの動作確認はHTTP Requestとブラウザにて確認していました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2481837/2aae960c-9481-0c50-a382-9d75a722f67c.png)
# 不具合
はじめに開発スケジュールを書き出します1. Webページプロジェクトの開発 ( リリースしたWeb APIを利用 )
2. 今回、Web APIプロジェクトの追加機
CRC32の再現方法を求めて
## 巡回冗長検査
[巡回冗長検査(Wikipedia)](https://ja.wikipedia.org/wiki/%E5%B7%A1%E5%9B%9E%E5%86%97%E9%95%B7%E6%A4%9C%E6%9F%BB)
ファイルの完全性検査などにはSHA256やMD5が使われますが、短いテキストのようなデータの場合、SHA256やMD5は結果が長すぎて使いにくいことがあります。
その点、CRC32は結果が32bitで、16進数表記でも8文字で済むため、元のテキストの代替として使うのに簡便です。
しかし、CRC32と一口に言っても実はいくつかの方式があり、異なる値を算出します。
## CRC32の種類
前掲のWikipediaのページを見ても、32bitのCRCには(厳密にはCRCでないAdler32も含めて)
– CRC-32Adler (厳密にはCRCではないがよく混同される)
– CRC-32
– CRC-32C
– CRC-32Kの4種類が掲載されています。CRC-32Adlerは計算方法が全く異なりますが、それ以外の3つは、Wikipedia記事中で
JavaScriptから使いやすいWebAPIをRPCでお手軽に
JavaScriptから使いやすいWebAPIを考える回。
WebAPIといえばRESTが有名ですが、今回はRPCを実装してみます。## 基本的な使い方
“rpc.js“はローカル関数を実行するような感覚で、サーバ側の関数を実行できます。
“`js:基本的な使い方
import API from ‘./rpc.js’const result = await API.plus(1, 2) // 関数名plusと引数[1,2]が送信される
“`ここでplusメソッドは幻で、定義はありません。
裏で**関数名**と**引数**がHTTP送信されて、サーバ側で同名の関数が実行され、結果が返ってくる仕組み。基本的にGET送信ですが、**関数名の最初が大文字**の場合はPOST送信になります。
“`js:POST送信
const result = await API.Save(data) // POST送信
“`以上がJavaScriptからWebAPIにアクセスする最善の書き方だと思います。
サーバ側も関数定義+αで済むので、全体を通してシンプルで分かり
PHPとRepl.itで何でも換算してくれる単位換算機を作ったお話
# はじめに
はじめまして。**Fuse**です。
普段はゲームを作っているものですが、ここ最近ある悩みが浮上しました。
それは様々な単位について。武器の名前を考えるときにインチとフィートがとっさに変換できなかったりと
単位に関する悩みが絶えませんでした。
今回はその悩みを解決するために、**どんな単位も登録すれば変換するWebアプリを製作しました。**
# 完成品
実物へのリンクhttps://conversionthemall.frmkdj.repl.co/
動画
#PHP 学習のためにどんな単位も登録すれば換算してくれるWebアプリを作りました。 pic.twitter.com/lOT55190QV
— Fuse@GC甲子園2022参戦! (@metelove2000) November 5, 2022
# 制作環境
+ 使用言語 PHP v7.4.21
+ ホスティング先兼IDE Repl.it
# 構成ファイルの簡単な説明
+ index.php
最初に開かれるphpファイルは一番上の階層に配置しなければならないらしい。
![mono.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2957248/49e97e
初めての個人開発日記【Laravel】#1
# 作りたいWebアプリ
**”休日の予定を与えてくれるサービス”** を作っていきたいと思っています。大学では授業の組み方によっては丸一日授業が全くない日が週に1、2回ほどあり、結構暇なことが多いのですが、せっかくの休日なのにネトフリやYoutubeをみたりしているとあっという間に1日が過ぎてしまいその日を無駄にしてしまった気分になることがたまにあります。
みなさんもせっかくの休日なのに予定が無くなにをしようか考えているといつの間にかもう夕方になってしまっていたり、ネットサーフィンで1日を無駄にしてしまった経験があるのではないでしょうか?
そんな経験から休日の予定を勝手に与えてくれるサービスがあればいいなと思い今回のサービスを考えました。
# 実装する予定の機能
箇条書きで欲しい機能を書き出してみました。
– ルーレットでやることが決まる
– ルーレットの目がミッションになっている
– ミッション例
– 美術館に行く
– 映画を見に行く
– 行ったことのないカフェに行くetc…
– Twitterへの投稿機能
– 投稿するとポイントゲ
【未経験・独学】アパレル卸売ECモールアプリの開発 / マルチログイン【PHP/Laravel/JavaScript/Vue】
# はじめに
独学でポートフォリオを作成しました。(Laravel/Vue.js)
github:https://github.com/ShintaroKurata/job-board本記事では、学習したことを振り返ります。
## 自己紹介25歳
学習期間:2022年6月〜9月
前職:営業→Webディレクター
## アプリについて
### 概要
今回、PHP(Laravel)のポートフォリオとしてマルチログインで実装されるECモールを作リました。
実際には購入機能はないので、カート機能までの実装です。
### サービス画面
#### バイヤーダッシュボード
![buyer-dashboard-sample.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/255872/9cde288a-b44c-644a-9e9a-7285aa9b7809.png)
バイヤーはこの画面から、自分のプロフィールなどを更新できます。#### バイヤープロフィール
![buyer-profile-sample.p