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

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

MySQLではなく、MySQLi

MySQLiとは「MySQL improved extension」の略で、PHPからMySQL/MariaDBデータベースを操作するためのインターフェースを提供する、PHPの拡張機能です。
MySQLとの違いは、オブジェクト指向の記述に対応したことです。
なのでMySQLiを使うにはまずオブジェクト(インスタンス)を生成し、メソッドを使ってSQLの実行をする形になります。

元記事を表示

Laravel Log singleログとdailyログを同時に出力する

# 目的

– Laravelのログ出力にて二種のログを同時出力する方法をまとめる

# 実施環境

– MacのローカルにLaravelの環境を構築して実施する。環境構築手順の記事はリンクを後述する。
– ハードウェア環境

| 項目 | 情報 |
| — | — |
| OS | macOS Catalina(10.15.5) |
| ハードウェア | MacBook Pro (13-inch, 2020, Four Thunderbolt 3 ports) |
| プロセッサ | 2 GHz クアッドコアIntel Core i5 |
| メモリ | 32 GB 3733 MHz LPDDR4 |
| グラフィックス | Intel Iris Plus Graphics 1536 MB |

– ソフトウェア環境

| 項目 | 情報 | 備考 |
| — | — | — |
| PHP バージョン | 7.4.3 | Homwbrewを用いて導入 |
| Laravel バージョン | 7.0.8 | commposerを用いてこちらの方法で導入→[Mac

元記事を表示

[PHP] Zoom APIを利用してミーティングを作成する

#今回の題
友人がZoomのAPIを使って何か作りたいというので勉強してまとめてみました。
この記事ではJWTという認証方法でミーティングを作成するところまで行います。
主に私自身のアウトプットが目的ですが、いつか誰かの参考になれば幸いです。
まだ利用途中なので適宜、加筆していきます。

#APIキーの取得

以下にアクセスし、サインアップしてください。
[Zoomマーケットプレイス](https://marketplace.zoom.us/)

サインアップしたら、画面右上の「Develop」と書かれたドロップダウンから「Build App」を選択して以下のようなページにいきます。

![スクリーンショット 2020-07-01 23.41.25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/546124/561cd706-1db8-7ee0-ded4-4a6f32f71653.png)

画像の赤枠で囲んだ部分をクリックすると、これから作成するアプリの名前を求められるので以下のように適当に埋めておき

元記事を表示

まだまだ丸め誤差と闘わないといけない件について

Difficulty 24の問題でコケてしまった悲しみ。

[AtCoder Beginner Contest 165のB問題](https://atcoder.jp/contests/abc165/tasks/abc165_b)、問題名「1%」は、高橋くんが100円持っていて、銀行に預けると年利1%(複利)の利子がつくのですが、ある金額X円に達するには何年かかるか答えよ、という問題です。

自分で作った回答コードはこちら。

“`PHP
$money) {
$money += intval($money * ($risoku / 100));
$ans++;
}
printf(“%d”, $ans);
“`

結果、不正解となったコードですが、どこが間違っているか分かりますでしょうか?

利子を変数にして1%じゃなくても答えが出せるんだぜ的にしてしまったのが悪かった

元記事を表示

【Laravel】配列のバリデーション

フォームのフィールドが配列の場合のバリデーションについてのメモです。
###ドット記法
配列に対してバリデーションを行うためにはドット記法を使い、`.`で配列の階層を表します。また`*`で配列内すべてを表します。

“`php
//photos[profile]フィールドを指定
$validator = Validator::make($request->all(), [
‘photos.profile’ => ‘required|image’,
]);

//keywordフィールドすべてを指定
$validator = Validator::make($request->all(), [
‘keyword.*’ => ‘required|max:20’,
]);
“`
####エラーメッセージの取得

“`
Illuminate\Support\ViewErrorBag {
#bags: array:1 [
“default” => Illuminate\Support\MessageBag {
#messages: array:2 [

元記事を表示

PHPでMySQLのデータ操作その2

# PHPでMySQLのデータ操作その2

PHPでMySQLを操作する方法を備忘録も兼ねてまとめました。
今回は検索編。
[前回](https://qiita.com/bs_user/items/ae9a9c2e350d0eeb7d78)から引き続きまずこのようなデータがあるとします。

|id|name|age|position|
|:—————–|——————:|:——————:|:——————:|
| 選手id|選手名|選手の年齢|選手のポジション|

“`.sql
— futsal_teamというデータベース(がなければ)作成。IF NOT EXISTSで判断。
CREATE DATABASE IF NOT EXISTS futsal_team DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
— GRANT文で権限をユーザーに付与、ユーザーはfutsal_team内の全てのテーブルを操作できる。
GRANT ALL PRI

元記事を表示

PHPでMySQLのデータ操作その1

# PHPでMySQLのデータ操作その1

PHPでMySQLを操作する方法を備忘録も兼ねてまとめました。
まずこのようなデータを作成、用意します。
架空のフットサルチームがあるとします。

|id|name|age|position|
|:—————–|——————:|:——————:|:——————:|
| 選手id|選手名|選手の年齢|選手のポジション|

“`.sql
— futsal_teamというデータベース(がなければ)作成。IF NOT EXISTSで判断。
CREATE DATABASE IF NOT EXISTS futsal_team DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
— GRANT文で権限をユーザーに付与、ユーザーはfutsal_team内の全てのテーブルを操作できる。
GRANT ALL PRIVILEGES ON *.* TO ‘bs_user’@’localhost’ IDENTIFIED

元記事を表示

フォルダ設計、XAMPを使ったドメイン(バーチャルホスト設定)

口コミサイトをPHPで作っていたら、「フォルダ設計」が必要らしいが、どこに作ればいいのかさっぱりわからなかった。ググったら、hogehoge.com、XAMPでオリジナルドメインを取得、DB接続というキーワードが出てきた。。。。わかったら随時更新予定。

参考記事
https://qiita.com/eryuus1/items/9300e6d56729799bae5d

MAMPのバーチャルホスト設定:開発用のドメイン登録とhosts設定

元記事を表示

PHP で yield のKeyの文字混在を解消したい

### yield の Keyの全角半角混在が気持ち悪い…..。

“`php:混在するyieldサンプル
yield ‘piyo:全角だぜ’ => [[‘hoge’ => Piyo::piyo];
yield ‘fuga:半角だぜ’ => [[‘hoge’ => ’12:34:56′]];
yield ‘ここにはコロン入らない前提:ガッツだぜ’ => [[‘hoge’ => ‘awesome’]];
yield ‘パワフル:魂’ => [[‘hoge’ => ‘awesome’]];
“`

* Keyの中の区切り文字を、全角コロンに統一したい!

### yield のKeyの特定文字(半角コロン)を特定文字(全角コロン)に置き換えだ

**奥義!`Ctrl + R` ( in PHPStorm )**
![RK000310.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/239314/697b0f81-92c4-0c77-fd2c-bdba5acdb07a.jpeg)

“`text:

元記事を表示

PHP PhalconでAuto Increment付与のMigrationが動かない対応

# はじめに
PhalconにおいてMigrationで新テーブルをCreateする場合は普通に定義すればAuto Incrementは簡単につけられます。
本記事は、既存テーブルのKeyカラムにAuto IncrementをAlterで後から付けたかったが動かなかったので、その対応をしたという話です

# 最初は
普通に列変更でいけると思っていたので最初、`up()`に新、`down()`に旧を`morphTable()`で書けばいいやとしてみました。

“`php
public function up()
{
$this->morphTable(‘table_name’, [
‘columns’ => [
new Column(
‘id’,
[
‘type’ => Column::TYPE_INTEGER,
‘notNull’ => true,
‘au

元記事を表示

Laravel Logを出力してみる 簡易版

# 目的

– Laravelでのログの出力方法のコントローラ記載部分のみを抜粋して記載する。
– もう少し詳しく知りたい方はこちら→[Laravel Logを出力してみる](https://qiita.com/miriwo/items/8d1c7c3a87cc670f6157)

# 実施環境

– MacのローカルにLaravelの環境を構築して実施する。環境構築手順の記事はリンクを後述する。
– ハードウェア環境

| 項目 | 情報 |
| — | — |
| OS | macOS Catalina(10.15.5) |
| ハードウェア | MacBook Pro (13-inch, 2020, Four Thunderbolt 3 ports) |
| プロセッサ | 2 GHz クアッドコアIntel Core i5 |
| メモリ | 32 GB 3733 MHz LPDDR4 |
| グラフィックス | Intel Iris Plus Graphics 1536 MB |

– ソフトウェア環境

| 項目 | 情報 | 備考 |
| — | — |

元記事を表示

【PHP】時間取得

タイムスタンプから時効への返還とか`time()`とか`strtotime()`とかの役割をすぐ忘れるので、備忘録。

#date(タイムスタンプ→日時)
日付の文字列を返してくれる。
タイムスタンプを文字列の日時に直してくれる。
##現在時刻取得

“`php5
print date(‘Y/m/d’);//20xx/x/x/
“`
##タイムスタンプを文字列に変換する

“`php5
$timeStamp=time();
print date(‘Y/m/d h:i:s’,$timeStamp);
“`
#strtotime(日時→タイムスタンプ)
英文形式の日付を Unix タイムスタンプに変換する。
日付をタイムスタンプ
##例

“`php5
echo strtotime(“now”), “\n”;
echo strtotime(“10 September 2000”), “\n”;
echo strtotime(“+1 day”), “\n”;
echo strtotime(“+1 week”), “\n”;
echo strtotime(“+1 week 2 da

元記事を表示

php データベースからデータ読み込み

#概要
phpでデータベースからデータを読み込みする記述

※個人学習用メモ・記録

“`php:sql.php
prepare($sql);
$statement->execute(); // => sqlを実行している

//ここで配列にsqlを押し込んでる
$results = [];
while ($row = $statement->fetch(PDO::FETCH_ASSOC)) {
$results[] = $row;
}

$statement = null;
$

元記事を表示

LaravelでMISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk.が出た

## 発生したエラー
“`
MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk.
“`

## 環境
Laravel 5.6
PHP 7.1
ローカル環境です。

## 何が起きたか
ローカルで開発中に、redisのエラーが発生したようです。
詳細な原因は不明で、決済処理か何かをローカルで実施して失敗後に発生した。

## エラーハンドリングされたコード

`/vendor/predis/predis/src/Client.php`

“`php5
/**
* Handles -ERR responses returned by Redis.
*
* @param CommandInterface $command Redis command that generated the error.
* @param ErrorResponseInterface $response In

元記事を表示

PHP のバージョン確認

PHPのバージョン確認

“`
php -v
“`

“`
php -version
“`

元記事を表示

【Auth0】LaravelでAuth0を使って認証する:IDトークン編【Laravel】

今回はSPAを作成する際に使用するJWT形式のIDトークンを検証をする方法について記事にしました。

### 関連記事
[Validating JWTs with Auth0-PHP](https://auth0.com/docs/libraries/auth0-php/jwt-validation)
[【Auth0】LaravelでAuth0を使って認証する:アクセストークン編【Laravel】](https://qiita.com/akkino_D-En/items/7c772aeb09b64bb62a7d)

# 環境
PHP: 7.2.5
laravel: 7.0
auth0/auth0-php: 7.2

# Auth0の設定

まずはAuth0にフリートライアルで登録して、APIを作成しましょう。
そうしたら`APIs`タブを開き、`CREATE API`から新規Auth0 APIを作成します。

![https___qiita-image-store.s3.ap-northeast-1.amazonaws.com_0_391127_ba0dde3b-fa26-f2ec-7

元記事を表示

Laravel ログを出力してみる

# 目的

– Laravelでのログの出力方法をまとめる

# 実施環境

– MacのローカルにLaravelの環境を構築して実施する。環境構築手順の記事はリンクを後述する。
– ハードウェア環境

| 項目 | 情報 |
| — | — |
| OS | macOS Catalina(10.15.5) |
| ハードウェア | MacBook Pro (13-inch, 2020, Four Thunderbolt 3 ports) |
| プロセッサ | 2 GHz クアッドコアIntel Core i5 |
| メモリ | 32 GB 3733 MHz LPDDR4 |
| グラフィックス | Intel Iris Plus Graphics 1536 MB |

– ソフトウェア環境

| 項目 | 情報 | 備考 |
| — | — | — |
| PHP バージョン | 7.4.3 | Homwbrewを用いて導入 |
| Laravel バージョン | 7.0.8 | commposerを用いてこちらの方法で導入→[Mac Laravelの環境構築

元記事を表示

artisanコマンドの自作で引数付きのSeederを作成する

# あらすじ
Laravelにはseederがありテスト時などにサンプルデータを気軽に作ることができます。
ただartisanコマンドを用いて呼び出すのですが、この時にshellscriptのように作成するデータ数などを引数として与えられたらなあ…と思っていました。
そんなところartisanのコマンド自作で行けそうといアドバイスをいただいたので、コマンド作成の練習もかねて作成してみることにしました。

## 通常のSeeder
今回は例として、Laravelのプロジェクトに最初からついてくるUserテーブルのSeederをもとに作っていきます。似た構造のレコードを複数追加するのでFactoryを記述して(されていて)、

“`Userfactory.php
define(User::c

元記事を表示

nikic/PHP-Parser を使ってPHPコードをパースして出来る事とサンプル

# nikic/PHP-Parser
https://github.com/nikic/PHP-Parser
PHPをASTとしてパースし、サクッとコード変換ツールを作成するのに便利なライブラリの紹介とサンプルです

# 対象読者
* PHPのコードをツールで機械的に安全に一斉変換したい
* preg_match/preg_replaceだと、不安が残る
* Rectorが動かなかった
* PHP-Parserで変換処理を書こうと思ってる矢先の人

といういるのかいないのか分からない超限定的な状況の方 (自分)

# 書くこと
* 使おうと思った経緯
* 変換したい内容と、実現するコードのサンプル

# 書かないこと
* 導入方法や、機能の紹介
* 懇切丁寧なドキュメントがあるので、そちらを参考にして下さい。

# 経緯
CakePHP1.3からCakePHP3系にバージョンアップをしたい中で、[Rector](https://github.com/rectorphp/rector)という便利なツールを使いたかったのですが、そちらが変換対象コードの名前空間によるautoload

元記事を表示

【Laravel】laravel new のあとにやること

# 環境
– macOS
– PHP7.4
– Laravel7.x
– SQLite3

# やること
新しくアプリケーションを作成する時、laravel new [アプリ名]を実行した後にすることをまとめました
あくまで筆者の場合なので、参考程度に読んでみてください

– git周辺
– アプリ名、タイムゾーン、言語の設定
– データベースの設定
– メールの設定
– Auth機能の導入
– 日本語化

# git周辺
はじめに、BitbucketやGitHubのリポジトリを作っておきます
以下のコマンドを実行して、リポジトリの初期化、BitbucketやGitHubへの接続を行います
ちなみに筆者は執筆現在Bitbucketを使っています

“`zsh
# LaravelAppディレクトリに移動
% git init
% git add -A
% git commit -m “Initialize repository”
% git remote add origin [BitbucketやGitHubのリポジトリ名]
% git push -u origin master
`

元記事を表示

OTHERカテゴリの最新記事