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

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

プログラミング初心者が書いたバリデーションを日本語に変える方法

はじめに
——-

Laravelにてフォームを作成した際に、必ずといっていいほどバリデーションを実装すると思います。
最初の段階では英語の状態になっていて、個人的には日本語がいいなぁと思い色々と調べてみた結果
割と簡単に日本語のエラーメッセージに直せることが分かったのでメモとして残します。

日本語バリデーションの実装
——–

現在Laravel青本を読みながらフォームを作っておりまして、現在の段階はこんな感じです。
![バリデーション英語.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1478204/bede2baa-5866-a217-59a1-bb51d732eec8.png)
なんだか英語ばっかりで嫌になっちゃいますね。。。
というわけで日本語に早速変えていきます。

まずは“/config/app.php“の中を変えていきます。

“`php:app.php
|———————————————–

元記事を表示

AWS Cloud9 でAmazon Linux 2でLaravelの設定

###Amazon Linux2 ではEPELが使えない
EPELが何かは知りません。調べたら追記します!

とりあえず仕様している教材に

>amazon linuxを使ってください。linux 2ではEPELが使えないので。

みたいに書いてあったけど、

AWSのCloud9でワークスペースを作成する際に、

>Amazon Linux 2 (recommended)

と合ったので、せっかくなら推奨版が使いたいなということで、環境を少しアレンジ。

まああとは自分で調べてEPELが使えればいいだろうという考え。というか推奨版なんだから当然使えるっしょ!の乗りです。

###手動でEPELを有効にする

https://aws.amazon.com/jp/premiumsupport/knowledge-center/ec2-enable-epel/

この通りにやれば大丈夫っぽい。

“`bash
sudo amazon-linux-extras install epel -y
“`

###phpのバージョン確認

“`bash
$ php -v
PHP 7.2.24

元記事を表示

Laravel6.x系cloud9使っての開発

SQLSTATE[HY000] [1049] Unknown database ‘laravel’と出た時の解消法

php artisan cache:clear

を実行し、サーバーを再起動したら治りました。:point_up:

元記事を表示

.NET(VB.NET C#) の配列変数 ← JSON → PHP

PHP (Webサーバ)と .NET アプリでデータをやりとりしたい場合、バイナリのやりとりはできません。ですのでデータをテキストに変換し HTTP POST するやりかたになります。

何に変換するかは任意ですが、古くは XML、こんにちは JSON に変換されることが多いようです。

PHPの場合、少なくともPHP7 では標準で JSON エンコード・デコード関数があります。
.NET の場合、いろいろとあるようですが、「JSON.NET」というのがお勧めです。( VS2013, VS2019 で動確)

早速ですが、PHP ← (JSON) → .NET  なサンプルを示します。

“`php
$dat1=json_decode($_POST[‘POSTdat1’]);

//1.配列全体を返す場合
echo json_encode($dat1, JSON_UNESCAPED_UNICODE);

//2.配列の要素を出力する場合
//echo $dat1[0];

“`

“`vb
‘配列をPOST変数として送りたい場合の処理について
‘HTTPのWebリ

元記事を表示

かな検索/漢字検索選択できる候補出現PHPクラス

漢字・かなの部分一致で住所検索ができる PHPクラス、Ajax Javascript です。クラス化しているのでカスタマイズが容易です。外部の API を使うよりPHPクラスを自前で内部で持っておいたほうが便利ではないでしょうか。

また住所検索のみならず他にも流用できます。私は商品の部分一致検索にも利用しています。要するに、
![a.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/964960/82bf1811-2424-5bcc-acfa-87fc8ec64543.png)![b.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/964960/0d257b9f-789b-2516-c6b0-30e5b8621531.png)

このような機能を実装しました。ローカルな住所検索の場合、「ほた」と打つだけで、東区保田窪、中央区保田窪が候補に出てくるわけです。

もしネットショップのように全国区であれば、クラスを使うときに設定す

元記事を表示

【PHP8.1】PHP8.1の新機能

[PHP8.1](https://qiita.com/rana_kualu/items/a6601b49e0591eb42200) / [PHP8.0](https://qiita.com/rana_kualu/items/fe7998fbe773544d5d25) / [PHP7.4](https://qiita.com/rana_kualu/items/50f9f5735321fe995ff5)

2021/07/20、PHP8.1が[フィーチャーフリーズ](https://wiki.php.net/todo/php81)しました。
言語機能に関わるような機能の追加・変更が締め切られたということです。
今後はデバッグを繰り返しながら完成度を高めていき、2021/11/25にPHP8.1.0がリリースされる予定です。

というわけで[PHP8.1で実装されるRFC](https://wiki.php.net/rfc#php_81)を見てみましょう。

# RFC

## [Fibers](https://wiki.php.net/rfc/fibers)

賛成50反対14で受理

元記事を表示

PHP 2つの時刻の差の時分秒を取得する。タイムカードの打刻時刻など

## 概要

PHPの質問に、タイムカード打刻時刻datetimeから「時・分・秒」を求める方法の質問があったので、ぐぐったところ、差の秒数をgmdateに渡すサンプルやDateTime::diff()を使用するサンプルなどが出てきたが、どれも私はイマイチに感じたのでシンプルに書いた

## サンプル

出勤時刻 ‘2022-08-12 17:18:30’
休憩開始 ‘2022-08-12 23:30:00’
休憩終了 ‘2022-08-13 00:35:00’
退勤時刻 ‘2022-08-13 20:20:18’
※退勤時刻は計算の確認のため、
あえて24時間オーバーさせてます。

“`test.php
h = floor($time / 3600);
$obj->m = ($time / 60) % 60;

元記事を表示

PHP脳が故にJavaScriptでarray_pad的関数がなくて泣いてる君へ

# はじめに
こんにちは。SBI証券での投信積立にクレカが使用できるようになったので、対象の三井住友カードを申し込みました。
クレカで積立できるとポイントたまるのでお得です!皆様もぜひ!

さて、今回は、JavaScriptでPHPの`array_pad`をしたいときがあり、生み出したコードを共有します。
コピペで使えるので良ければ使ってくださいませ:pray:

# PHPの`array_pad`関数とは
配列が指定長に満たない場合、指定長まで指定の値で埋めることができる関数です。

リファレンスこちら↓

“`console
$ php –rf array_pad

Function [ function array_pad ] {

– Parameters [3] {
Parameter #0 [ array $array ]
Parameter #1 [ int $length ]
Parameter #2 [ mixed $value ]

元記事を表示

composer のコマンドを勉強してみた

composer は Laravel インストールする時に使った事はあるけれど、特に意識することなく(何も考えずに)使ってました・・・
そんな中、Laravel の carbon パッケージを調べる事があり、ふと「このcarbonってバージョンいくつなんだろう」と疑問に思った事が composer のコマンド使ってみたきっかけです。
備忘録的な意味合いが強いのですが、誰か、何かの役に立てばうれしいです。

###パッケージの一覧を表示する
“`
composer show -i
You are using the deprecated option “installed”. Only installed packages are shown by default now. The –all option can be used to show all packages.
~~~ 略 ~~~
monolog/monolog 2.2.0 Sends your logs to files, sockets, inboxes,

元記事を表示

Laravel8 API Resource Queryの効率化

# Laravel8 API Resource Queryの効率化
Laravel8のリレーションシップのQueryをDebugしてみたところ
レコードごとのQueryを実行していたのでQueryを効率化する方法について調べました。
(前提はUserとPostの1:N関係)
まずはLaravelのLoadigの種類について調査

## Lazy Loading(怠惰な読込み)
LaravelのデフォルトのLoading方式だが、N+1問題を起こすLoading方式

### ※N+1問題とは
https://qiita.com/massaaaaan/items/4eb770f20e636f7a1361#n1%E5%95%8F%E9%A1%8C%E3%81%A8%E3%81%AF

### Lazy LoadingのSQL例

#### Routeの例

“`php:api.php
use App\Http\Resources\PostCollection;
use App\Models\Post;

Route::get(‘/posts’, function () {
ret

元記事を表示

Make Laravel Permission by yourself

# Laravel Guardian

[Laravel Guardian](https://github.com/cuongnd88/lara-guardian) makes it easy to perform permission

[https://github.com/cuongnd88/lara-guardian](https://github.com/cuongnd88/lara-guardian)

1-Install `cuongnd88/lara-repository` using Composer.

“`php
$ composer require cuongnd88/lara-guardian
“`

2-Add the following service provider in `config/app.php`

“`php
[
// …
Cuongnd88\LaraGuardian\Lara

元記事を表示

【AWS】Laravel + Docker + RDS(MySQL) でデプロイした時のDB関連のエラーとその解決

# はじめに
AWS(EC2)にデプロイする際、DB関連のエラーで躓いたため記録として残します。
DB関連にフォーカスしているので、それ以外のインストールの手順は省いています。
# 前提
・今から`migrate`します
・EC2インスタンス作成済み
・sshログインできる

# 条件
“`bash
macOS: “11.2.3 Big Sur”

php artisan -V
# > Laravel Framework 6.20.30

php -v
# > PHP 8.0.8

nginx -v
# > nginx version: nginx/1.12.2

mysql -h エンドポイント -u マスターユーザー名 -p データベース名
Enter password:
# > Server version: 8.0.25

git –version
# > git version 2.32.0
“`

# 1. `php artisan migrate`でエラー
MySQLをインストール

“`terminal:ssh
sudo yum -y install mysq

元記事を表示

Laravelアプリをロリポップへ設置した

laravel6のwebアプリをロリポップ スタンダードプランで動かしたときに結構時間かかったのでメモを残す。

##作業環境
Win10 home
Laravel 6.20
PHP 7.4
MariaDB 10.6

##SSHでロリポップへ接続
ロリポップの管理画面からSSHでの接続情報を入手して入力する。
(Git Bashを使用したが、PowerShellなどでも同じだと思う)

:::note info
ssh (アカウント)@(サーバー) -p(接続ポート)
:::

“`:入力例
ssh abcde-123456789@abc.lolipop.jp -p1234
“`

次にパスワードを聞かれる。
自動生成された30文字くらいの文字列なので間違えないよう慎重に入力する。
(パスワードは入力しても何も表示されないので何文字入力したかもわからない)
正しいパスワードを入力すると下記のように表示される。

:::note info
[(アカウント)@(サーバー番号) ~]$
:::

“`:表示例
[abcde-123456789@abc123 ~]$
“`

##PH

元記事を表示

PHPでLINEログイン実装してみたメモ①〜認可コードが返ってくるまで〜

# 準備

## LINE developersのアカウント作成

まず最初にLINE developersのアカウントを作成します。

https://developers.line.biz/ja/

## プロバイダーとLINEログインチャネル作成

下記概要ページにしたがって「プロバイダー」とLINEログインの「チャネル」を作成します。

[概要](https://developers.line.biz/ja/docs/line-developers-console/overview/)

1. devlopersコンソールにログイン
2. プロバイダー(利用者の情報(LINE IDなど)を取得する開発者・企業・組織のこと)を作成
3. チャネルを作成

今回はLINEログインチャネルを作成します

https://developers.line.biz/ja/docs/line-login/

– 「新規チャネル作成」→「LINEログイン」を選択します。
![LINE_Developers.png](https://qiita-image-store.s3.ap-north

元記事を表示

fuel.php Fuel\Core\Database_Exception [ 42000 (1064) ]:エラー

fuel.phpのエラーはググっても古い記事が多く、苦戦しました。
本日は以下のエラーと格闘。

Fuel\Core\Database_Exception [ 42000 (1064) ]:
SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘group, profile_fields, last_login, login_hash, created_at)

これはデフォルトで用意しなきゃいけないusersテーブルの中の「group」というテーブルが悪さをしてます。
これは予約語です。
なのでバッククウォートで囲ってあげる必要がありますね。

まずは
fuel>packages>auth>classes>auth>login>simpleauth.php

元記事を表示

fuel.phpのFuel\Core\Database_Exception [ 2014 (2014) ]:エラー

このエラーはfuel.phpのバージョンが18.1以降にDBの接続方法が
mysqliの時に起きました。
対処法は簡単

app>config>db.phpの中の以下の[active]の箇所をpdoに変更するだけ。

“`fuel.php
return array(
‘active’ => ‘mysqli’,

‘pdo’ => array(
//ここを変える
‘type’ => ‘pdo’,
                   //接続配列
‘connection’ => array()
//PDOの接続DSN(データソース名)
‘dsn’ => ‘mysql:host = localhost; dbname = db名’,
‘username’ => ‘root’,
‘password’ => ‘root’,
              //永続的に接続するかどうか

元記事を表示

悪徳ひきこもり支援業者一覧アプリケーション

悪徳ひきこもり支援業者一覧アプリケーションを開発しました

一覧表示部分

“`PHP






悪徳ひきこもり業者一覧作成


悪徳ひきこもり業者一覧

結果リスト

元記事を表示

アプリ作成②「じゃんけんゲーム」

【作成の過程】
次に取り組んだのは、昔ゲームセンターで遊んだ「じゃんけんポンっ」のゲーム作成。
目指すイメージは決まっているが、そこまでどういうプロセスをたどるかは、完全にオリジナル。
とりあえず、基本的なアプリ設計過程と同じように、要件定義→設計→実装→テストというウォーターフォール型の行程をたどってみた。
要件定義は、ただじゃんけんで勝敗を決めるゲームを作るというごくごく単純なものなので難しくない。
設計では、機能設計で実装したい機能を列挙して、データベース設計、画面設計とアプリのイメージを細分化・具体化していった。
そして、実装を始めると、この画面があった方がいいとか課題が出てきて、当初の設計の甘さを感じた(笑)
最終的にテストをして、最低限の形にはなったかなという感じ。
まだまだ、デザインがチープだったり、実装したい機能(ルーレット、対戦モード、コイン複数枚がけ…)はあるが、今後の課題ということで、
まずは、オリジナルのアプリを作り、それを形にできたことのうれしさを感じた。

【アプリの概要】
小さい頃にゲームセンターで、わずかなコインを握りしめて白熱した「じゃんけんゲーム」を

元記事を表示

アプリの作成①「メッセージ投稿アプリ」

【作成の過程】
今まで学習した基礎的な知識を基に、オリジナルアプリの作成を始めた。
まずは、PHPの章の学習で使ったUdemy教材をベースにデザインやゲストの実装等アレンジし、「メッセージ投稿アプリ」を作成した。
今までは、動画で提示される課題の通りのものを作っていたが、
少しでもオリジナル要素を加えようとすると、正解がないわけで、どうしたらいいのかいろいろと考え込んでしまったが、
ひとまず形にし、デモデータを搭載した。

【アプリの概要】
複数のユーザーがメッセージを投稿・共有できるアプリ

【主な機能】
・ユーザー登録機能
・ユーザーログイン機能
・画像ファイルアップロード機能
・メッセージ投稿機能
・メッセージ返信機能
・メッセージ一覧表示機能
・メッセージ詳細表示機能
・ページネーション機能

【画面一覧】
・ユーザー登録画面
・ユーザー登録確認画面
・ユーザー登録完了画面
・ログイン画面
・メッセージ投稿・一覧表示画面
・メッセージ詳細画面

【開発環境】
・CSSフレームワーク:Bootstrap
・言語:PHP
・DB:MySQL

【今後搭載したい機能】
・メッセージ修

元記事を表示

PHPとSQLの理解

【PHP,MySQL】
Udemy動画教材の「PHP+MySQL(MariaDB) Webサーバーサイドプログラミング入門」(たにぐちまこと氏)で学習した。
これまでは、デザインを作る要素が強かったHTML,CSSに、PHP,MySQLが加わることで、繰返し、条件分岐やデータベースとの連携など、よりプログラミングらしくなってきて、実現できる世界が広がったし、世の中のWebサイトの仕組みがなんとなくわかってきて、自分でもサービスを作ってみたいと思った。
動画合計12時間の長丁場で、特に初期の知識が空の状態だと、知識がなかなか定着せずに、モチベーションを保つのが難しかったが、行き詰まったら飛ばすなど、工夫しながら進めた。

【動画学習のコツ】
全体的に言えることだが、動画を見ながらコーディングする際重要なのは、ゴール(目的)を明確に認識したうえで取り組むことだと思う。でなければ、ただ写しているだけの「作業」になってしまう。だから、その章・レッスンごとのゴールを確認したうえで、まずは動画を見ないで自分でできるところまで進め、つまづいたところをメモに残し、動画で答え合わせをするという方法がいい

元記事を表示

OTHERカテゴリの最新記事