- 1. 【Laravel】同ページに2つのフォームとバリデーションエラーメッセージの表示欄がそれぞれある場合、エラーメッセージをそれぞれ分ける
- 2. PHP バリデーション 備忘録
- 3. Laravel 6.x環境でparatestを使ってテストを実行した話
- 4. PHPでの開発を始めるので、概要をまとめてみた
- 5. MacでLaravelの環境を構築した
- 6. PHPのコンストラクタはprivateにできる
- 7. WindowsでXAMPPにPHP8.0.0β2をインストールする
- 8. 郵便番号ハイフンあり、なしどちらでも補完できるように対応(PHP)
- 9. Laravel MailCatcherでメールを受け取る
- 10. 【PHP・AWS】AWS Cognitoを通してS3にアップロードする方法
- 11. ElasticBeanstalkにLaravelアプリケーションをリリースするときのebextension設定
- 12. WordPressのパーマリンクにindex.phpが表示される
- 13. PHP+MySQLでポートフォリオ作成
- 14. PHPStormとdocker上のxdebugとの連携に詰まったら。トラブルシューティング
- 15. 久しぶりにmac向けXAMPPをインストールしたら一味違っていた件
- 16. 【初心者開発日誌】PHPで楽天APIを使ってみたい #1
- 17. 【初心者開発日誌】PHPで楽天APIを使ってみたい #0
- 18. 【Laravel実践】リクエストパラメータ名をスネークケースに変換する方法
- 19. CodeIgniter3 から Laravel へ。文化の異なるフレームワークへ飛び込む上で,ハードルになりそうなパッケージ管理システムの概要を解説
- 20. [PHP基礎体力向上]競プロ(AOJ-ICPC)の基礎問題をPHPで解いていこう!
【Laravel】同ページに2つのフォームとバリデーションエラーメッセージの表示欄がそれぞれある場合、エラーメッセージをそれぞれ分ける
## 1行で
– bladeのエラーメッセージ表示部分のifの条件を変える
## 概要
**同ページにユーザー設定とパスワード設定がそれぞれ独立して存在する**というパターンで実装する。
ひとつのsubmitで2つのformが更新されるというパターンではない。formとsubmitがそれぞれ同じページに1つずつある。## エラーメッセージ表示
通常、バリデーションによるエラーメッセージはこのような記述で書いて表示する。
“`php:edit.blade.php
@if ($errors->any())@foreach ($errors->() as $error)
- {{ $error }}
@endforeach
@endif
“`これが同ページに2つあると、例えばユーザー設定のエラーがかかると、例えばパスワード設定のform内に書いていたとしても、そちらにも表示される。逆もまた然
PHP バリデーション 備忘録
##はじめに
PHPのバリデーションの備忘録。(自分用)
駆け出しエンジニアなので、何かアドバイス、ご意見ありましたら
よろしくお願いいたします。##様々な正規表現
・半角数字チェック
“`PHP:validation.php
if( $i[“char_type”] === “tel” && !preg_match(“/^[0-9]{2,4}-[0-9]{2,4}-[0-9]{3,4}$/”,
$i[“value”])){
//省略
}
“`・半角数字・ハイフンチェック
“`PHP:validation.php
if( $i[“char_type”] === “number_hyphen” && !preg_match(“/^[0-9-]+$/”, $i[“value”]))
{
//省略
}
“`・半角英数チェック
“`PHP:validation.php
if( $i[“char_type”] === “eisu” && !preg_match(“/^[a-zA-Z0-9]+$/”,$i[“value”]))
{
//省略
}
“`・ひらがなチ
Laravel 6.x環境でparatestを使ってテストを実行した話
## はじめに
paratestを導入してみたかった & 導入したので備忘録。
ほぼ [Laravelで並列テストを導入するための道のり](https://qiita.com/niisan-tokyo/items/2fbfd30037f94661366d) を参考にさせていただきました。
## 環境
– PHP
“`
PHP 7.4.3 (cli) (built: Feb 20 2020 21:53:46) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.3, Copyright (c), by Zend Technologies
with Xdebug v2.9.6, Copyright (c) 2002-2020, by Derick Rethans
“`– [Laravel Framework 6.18.35](https://github.com/laravel/frame
PHPでの開発を始めるので、概要をまとめてみた
# PHPとは
Webアプリ開発ができる# 役割
– HTMLを作ること
– データを管理すること# ローカル開発環境
サーバーにアップせずにPHPが書き換えたHTMLを確認するために必要な作業
必要なインストール
– PHP
– Webサーバー上記はインストールがかなり難しい。
なので、インストールをアシストしてくれる、XAMPPやMAMPを使う。
# MAMPとは
Macintosh、Apache、MySQL、PHPを省略してつなげた名前。
簡単にWeb開発環境を立ち上げられるようにするために必要なソフトウェアをパッケージ化したもの。
XAMPPとほぼ一緒。開発元が違う。
RubyやPythonを使う人向け。
# コードの書き方
“`php
// 最初に で囲う。
// 変数
MacでLaravelの環境を構築した
# はじめに
最近研究室でMacを購入してもらったので、MacにLaravelの環境構築をしました。Laravelは最近本を参考にしながら勉強をしており、まだまだ初学者ではありますが、頑張ってます。レベルで言うとCRUD機能を作れるようになったくらいですね。この記事は備忘録程度でまとめておきます。# brewのインストール
Laravelをインストールする前にMacを買ったらすぐに`brew`をインストールしましょう。すでにインストールしている方は飛ばしてもOKです。
brewのインストール手順は以下のサイトに詳しく手順が載っているので、そちらを参考にしながら行ってください。
https://brew.sh/index_ja# composerのインストール
brewのインストールができたら、次はLaravelをダウンロードするために必要なパッケージ管理システムである`composer`をダウンロードしましょう。“`
$ brew install composer
“`インストールが終わったら、しっかりインストールできているか確認しましょう。
“`
$ brew
PHPのコンストラクタはprivateにできる
「PHPにおいてコンストラクタのアクセス権は`public`である必要がある」とする記事をいくつか見かけたのですが、**これは誤りです。**
(例)https://laraweb.net/surrounding/1472/他の言語のことは知りませんが、少なくともPHPは、[コンストラクタ](https://www.php.net/manual/ja/language.oop5.decon.php)を`private`や`protected`に設定することができます。
# コンストラクタがprivateになるとどうなるか
**クラスの外から`new`できなくなります。**
以下のコードはFatalエラーになります。“`php
WindowsでXAMPPにPHP8.0.0β2をインストールする
先日[PHP8.0.0α1でJITを試したとき](https://qiita.com/rana_kualu/items/73c346b3feadfa3a5b21)はPHP8をXAMPP経由で起動することができなかったのですが、今回動かすことができたので、その方法の共有です。
今回試したのはPHP8.0.0β2です。# XAMPPインストール
まずローカルのXAMPPを削除。
[公式サイト](https://www.apachefriends.org/jp/index.html)からWindows向けXAMPPの最新版をダウンロードしてインストール。
既にPHP7.4.x版が入っているようなら、そのままでもいけると思います。# PHP8.0.0インストール
[Windows版ダウンロードページ](https://windows.php.net/qa/)から`VS16 x64 Thread Safe`をダウンロード。
適当に解凍。
`path\to\xampp\php`ディレクトリにだばぁ!と上書き。
`php.ini-development`を既存の`php.ini`に上書
郵便番号ハイフンあり、なしどちらでも補完できるように対応(PHP)
Webページで入力した郵便番号をDBに保存する場合の備忘録 ※PHPの場合
ハイフンあり、なしどちらでも補完できるように対応“`
// 調査用文字列としてハイフンを変数に入れる
$pattern = ‘-‘;// 入力文字列(郵便番号)にハイフンが含まれているか
$pos = strpos($p_data[‘inZipCode’], $pattern);// ハイフンが無かったらハイフンを挿入する場合
if ($pos === false) {
$chgZipCode = substr_replace($p_data[‘inZipCode’], $pattern, 3, 0);
// ハイフンがあったらハイフンを削除する場合
} else {
$chgZipCode = str_replace($pattern, ”, $p_data[‘inZipCode’]);
}
“`SQL検索時に入力された値と変換された値をor検索すればOK
上記のコードをそのまま使ってうまくいかない!というのはナシね。
参考にする場合はちゃんと読み解いてください。
Laravel MailCatcherでメールを受け取る
# 目的
– Laravelから送信したMailCatcherで受け取る方法をまとめる。
# 実施環境
– ハードウェア環境
| 項目 | 情報 |
| — | — |
| 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の環境構築を行う](https://qiita.com/miriwo/items
【PHP・AWS】AWS Cognitoを通してS3にアップロードする方法
# はじめに
PHPでAWS Cgnito認証を通してAWS認証情報を所得してS3を使用する記事が少なかったので、自分の備忘録としても記事に残したいと思います。
※あると程度AWSやCognitoを知っている程でいきます?# 環境
下記のものをcomposerでインストールしておきます。“`
aws/aws-sdk-php: 3.26.3
pmill/aws-cognito: ^0.2.11
“`
PHPのバージョンは 7.4.1 です。
## Cognito
### ユーザプールの作成
![スクリーンショット 2020-08-27 23.42.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/649661/e6038939-29ce-1ea6-825f-0d26b2643498.png)
適当にプール名を入れて、「ステップに従って設定する」を選択しましょう。![スクリーンショット 2020-08-29 13.27.06.png](https://qiita-image-store.s
ElasticBeanstalkにLaravelアプリケーションをリリースするときのebextension設定
Laravelをプロダクションでリリースするときには、configキャッシュやrouteキャッシュをすると、より効率的に実行されてアプリケーションのレスポンスが向上します。
ElasticBeanstalkにリリースする場合は、`.ebextensions/*`に.configファイルを置くことで、リリース時のコマンドを追加することが出来ます。
“`yaml:.ebextensions/laravel_cache.config
container_commands:
01-cache_config:
command: “php artisan config:cache”
02-cache_route:
command: “php artisan route:cache”
03-cache_view:
command: “php artisan view:cache”
“`以上で、config、route、viewのキャッシュをアプリケーションをアップロードした後に生成することが出来ます。`container_commands`はApach
WordPressのパーマリンクにindex.phpが表示される
久しぶりにWordPressを触ったら、パーマリンクがおかしくなる問題が。。。
##状況
WordPressで、URLにindex.phpを噛んじゃう。
こんな感じ↓https://sample/index.php/投稿記事名/
理想(本当)は
固定ページを表示させる時に、https://sample/固定ページ/
で、表示されるはずなのにできず、
https://sample/index.php/固定ページ/
だと表示される、謎。。。
##環境
MacBook Catalina
MAMP
PHP 7.4.2
WordPress 5.5.5(5.4.2も試した)##解決方法
原因が全く分からず、苦労しました。。。
(そもそも、いつから発現してるのか、不明。)
(PCの不良でジーニアスバーに連れてっているので、それが原因かなぁとも)単純に、MAMPの設定の話でした。
MAMPのhttpd.confの中
“`httpd.conf
Options Indexes FollowSymLinks
Allow
PHP+MySQLでポートフォリオ作成
#記事の概要#
私が作成したポートフォリオを紹介します。#背景#
現在、30歳、プログラミング未経験からエンジニアを目指し勉強しています。
フロントエンドエンジニアを目指していますが、バックの知識も少しは必要だということで、勉強中のPHPでポートフォリオを作成しました。#目的#
・PHPを用いたWebアプリケーション開発経験を積む
・フルスクラッチ開発によってWebアプリの基本的な構成、動作を知る
・Web系企業さんの即戦力になれる技術を身につける(そこまでは厳しかった)#スペック#
**言語**
PHP 7.4.6**DBMS**
MySQL 8.0.21**開発環境**
MacOS Catalina 10.15.6
MAMP#主な内容#
— ポートフォリオ用 (@AO88IvXNah
PHPStormとdocker上のxdebugとの連携に詰まったら。トラブルシューティング
# これはなに
PHPStormとdocker上のxdebugを連携したいケースで、
「なんで繋がんないんだよ!!」ってなったので、
ヒントになることを書きます。## Xdebugとは?
> Xdebugとは高機能なPHPのデバッグツールです。 PHPのデバッグでおなじみの「var_dump」を見やすくしてくれたり、ボトムネックになっている処理を見つけたり、ステップ実行できたりします。 その他のデバッグツールとしてはZendDebuggerがあります。
[Xdebugを使い倒す5つのTIPS | スマホサイト・アプリをつくろう。](http://www.plusmb.jp/2009/06/26/3923.html)
より。# ログを有効化する
xdebug.iniやphp.iniに設定を追加しましょう。
追加したらnginxやapacheの再起動が必要です。“`
xdebug.remote_log=/tmp/xdebug.log
“`/tmp/xdebug.logにログが表示されますので、
出力されたエラー内容を見て、原因を特定しましょう。
ググれば関連する情報
久しぶりにmac向けXAMPPをインストールしたら一味違っていた件
# 結論
1. VMになっていた
2. `http://localhost~`じゃなく`http://{IPアドレス}~`でアクセスする# XAMPPのインストールをする
[XAMPP](https://www.apachefriends.org/jp/index.html)
2020/08/30時点のバージョンは7.4.9
![スクリーンショット 2020-08-30 16.05.11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/699952/a64f1e2a-a0f6-5938-0c28-7b5ff26f06cf.png)
#### finderにできるはずのXAMPPフォルダがなくなっていることに気づく
# とりあえずXAMPPをスタートさせてみた
するとなんだかローカルIPアドレスが割り振られたように見える
![スクリーンショット 2020-08-30 16.12.26.png](https://qiita-image-store.s3.ap-northeast-1.ama
【初心者開発日誌】PHPで楽天APIを使ってみたい #1
昨日までの開発内容をまとめて書きます。
#PHPのインストール
実は先月、4年間愛用していたMBPが壊れてしまい、今月から初めてwindowsを使っています。
プログラミングの環境も全く整っていないのでまずはここからになりました。
macはPHPのインストールが不要であるため初めてのインストール。
パスを通さないとコマンドラインでPHPを実行できないことすら知りませんでした。“`bash
>php -v
‘php’ は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
“`
パスが通っていないのでこの表示になり驚くところからスタート。
パスを通す際、エクスプローラーに「パスのコピー」というボタンがあるのに気づくまで何度も誤字を出しました。参考にしたサイト:
[【Windows編】今すぐ簡単にできる!PHPのダウンロード方法](url ‘https://techacademy.jp/magazine/11489’)#Gitプロジェクトの作成
勉強用の開発なのでついでにGitも使ってみることにしました。
ローカルとGi
【初心者開発日誌】PHPで楽天APIを使ってみたい #0
外部API連携をやってみたい初心者の開発日誌です。
かなり初歩的な内容になると思います。
記録として記事を残し、あとで見て笑い飛ばせるようになればと思います。#経緯
私はいま大学3年生で、将来漠然とエンジニアになりたいと思っています。
ですが自分がやりたい分野がどこなのかいまいちわかっていません。
そこでとある人にもらったアドバイスが、「webサービスを1から自力で作ってみて一番楽しかった工程が向いているのではないか」というものでした。
また、先日ある短期インターンに参加したのですが、内容が「APIを用いた開発をしてみよう!」で、APIを使ったことのない私はわけもわからず状態になってしまいました。この悔しさから自力で作るwebサービスには必ずAPIを組み込もうと決めました。実は数日前から開発を進めているのですが、なかなか思うようにいかず勉強の毎日です。そこで開発日誌を残せばあとあと面白いのではないか?と思い開発日誌を書くに至りました。
#目標
最近料理にはまっているので、楽天レシピ系APIを使ってレシピ検索サイトを作ることを目標にしました。カテゴリ検索ができるようにする
【Laravel実践】リクエストパラメータ名をスネークケースに変換する方法
# Version
– Laravel 5.7
– PHP 7.2.31# 前提
LaravelでAPIを開発する際、キャメルケースとして書かれたリクエストパラメータ名をスネークケースに変換したい、という要望を想定します。たとえば、SPA開発においてReact.jsやVue.jsにより非同期通信でLaravelのAPIにリクエストを送信する際、フロント側としてはキャメルケースで統一したいがバックエンド側としてはスネークケースで統一したい、というケースです。Laravel側で簡単に変換する方法をググったのですが、ベストプラクティス的な方法が出てこなかったのでここに共有します。
# 早速、変換してみよう。
結論だけ述べると、以下の方法で実現できます。`$request->all()`でリクエストパラメータを受け取り、リクエストパラメータ名(`$key`)に大文字が含まれる場合にスネークケースに変換・挿入、`offsetUnset()`で元のプロパティ名を消す、ということをやっています。
“`php
foreach ($request->all() as $key => $
CodeIgniter3 から Laravel へ。文化の異なるフレームワークへ飛び込む上で,ハードルになりそうなパッケージ管理システムの概要を解説
# 概要
今回は,より高度な(実用的な)仕様の例題を設定し,CodeIgniter と Laravel のコードを対比させていきたいと思います。
具体的には,CSS と JS を組み込んだページを作成したいと思いますが,具体的なコードの紹介は次回の記事にゆだね,今回は,もっと基本となる**「パッケージ管理システム」**について触れます。
あまり一気に難しくならないよう,極力配慮したいと思いますが,前回よりは,ハードルがぐーんと高くなり,おじさんの言語化能力で,どこまで的確に表現できるか,冷や汗をかきそうです(プレッシャーの重圧感)。
マサカリ歓迎案件です(いろいろ教えてください)。
# Laravel で登場する,2つのパッケージ管理システム
どのタイミングで話すべきか迷ったのですが,いずれ書かねばならないことなので,今のタイミングにします。
「軽量であること」を強みとする CodeIgniter は,フレームワークと言うより,フォルダ構造を決めただけの,ファイルの集合体に近いですね(そんな言い方をしてしまうと,世の中のすべてのフレームワークが,「ファイルの集合体」と言え
[PHP基礎体力向上]競プロ(AOJ-ICPC)の基礎問題をPHPで解いていこう!
# この記事の対象読者
– paizaでランクアップを目指す(Aランクくらいまで)の未経験/駆け出しエンジニア
– ドットインストールや入門書籍でPHPを学んだが、まだ”手に馴染んでいない”初学者# この記事を書いた目的
書籍やドットインストール等のオンライン学習教材でプログラミング言語を学んだ初学者がいきなりWebサイトを作るのは中々ハードルが高いです。
そういった初学者にオススメしたいのが簡単なプログラミング問題を解いて練習することです。
この練習を通して「サービスの企画に力を分散させることなく、純粋にコーディング能力を鍛える」ことが出来ます。これは後々Webサービスを開発する上でも絶対に役立つ基礎力になるはずです。
これは未経験からソフトウェア開発職にキャリアチェンジしたい方にもオススメのやり方です。
例えば[paiza](https://paiza.jp/)というコーディングテストを受けて就職活動が出来るサービスではAランクくらいまで取れればかなりの数の企業に”エントリーシートなしで”面接することが出来ます。またpaiza以外の媒体で面接した企業の方にも「pa