- 1. [Laravel 8] Eloquentを用いたCRUD記述まとめ (Controller, Routing, View)
- 2. 【PHP8】エラー制御演算子の動作に変更が入っている話
- 3. を読みながらトンネリングの仕組みを理解する
- 4. コレクションの様子を見てみよう
- 5. PHPで日付を扱うには
- 6. PHPUnitでAWS SDKのクラスをモックする
- 7. [PHP]連想配列
- 8. laravel アプリを作成してローカルサーバーを起動できるようにする
- 9. Laravel6 でログイン機能を作成してみた。
- 10. 業務用コードの書き方(ver1.0)
- 11. Laravelを調べる:Controller/View追加編
- 12. 【 Laravel 】クエリビルダ と Eloquent ORM の違いを整理!
- 13. PHPのswitch文
- 14. Laravel × Twilioでコールセンターの構築
- 15. 【PHP】世界1わかりやすいPHPの$_GETメソッド
- 16. PHPのwhile文
- 17. PHPのfor文
- 18. PHP8.0.6 / Xdebug3.0.4-8.0/ Eclipse の環境構築
- 19. PHPで拡張子からMIMEタイプを取得する
- 20. PHP文法基礎まとめ1
[Laravel 8] Eloquentを用いたCRUD記述まとめ (Controller, Routing, View)
#はじめに
Controller, Routing, Viewの記述をEloquentベースでまとめました。
(index,show,edit,create,store,update,destroy)
laravel8 を想定しています。# Routing
“`php:web.php
//showのみ
Route::get(‘/post/{id}’, [PostController::class, ‘show’])->name(‘posts.show’);
Route::resource(‘posts’, PostController::class)->only([‘show’]);//全て
Route::resource(‘posts’, PostController::class);//index以外全て
Route::resource(‘posts’, PostController::class)->except([‘index’]);//ログイン中のみ全て
Auth::routes();
Route::middleware([‘auth’])->group(
【PHP8】エラー制御演算子の動作に変更が入っている話
PHP7からPHP8に移行する際の小ネタになります。
set_error_handlerで定義したエラーハンドラ関数でエラー処理を行うために、
PHP7で以下のようなコード書いてました。“`php
error_reporting(E_ALL);set_error_handler(function($errno, $errstr, $errfile, $errline) {
// … 処理// エラー制御演算子『@』付きの場合
if (error_reporting() === 0) {
// エラーが E_WARNING もしくは E_NOTICE の場合
if ($errno === E_WARNING || $errno === E_NOTICE) {
return;
}
}// … 処理
});
“`PHP7系以下では、エラー制御演算子が使われている場合のerror_reporting()の返り値は常に0なので、上記コードは期待通りの動きをしていました。
そのままPHP8に移行したのですが、移行後にエラー制御演
を読みながらトンネリングの仕組みを理解する
を読みながらトンネリングの仕組みを理解する
コレクションの様子を見てみよう
コレクションの様子を見てみよう
PHPで日付を扱うには
#Carbonクラス
Javaなどの言語を使っているとCalenderクラスやDateクラスなど、使う用途によって色々使い分けが必要で日付を扱うことに苦手意識がありました。
ですが、PHPでは日付に関してCarbonクラスさえ理解していれば、問題ありません!> 参考にしたサイト:https://blog.capilano-fw.com/?p=867
色々なサイトを確認しましたが、こちらのサイトが紹介している種類が一番多く、索引としてページ内検索をかけて利用するのに重宝しています。
筆者が実際に使用したメソッドは下記になります
## 日付の取得
“`php:日時の取得
$today = new Carbon(‘today’);
$today = Carbon::today();
$today = Carbon::today(‘Asia/Tokyo’) //タイムゾーン付きの取得
“`同様に`yesterday`と`tomorrow`も使うことができます。
“`php:日付のみ取得したいとき
$today = (new Carbon(‘today’))->toDat
PHPUnitでAWS SDKのクラスをモックする
AWS SDK for PHPのクラスをPHPUnitでモックしようとした所次のようなエラーが発生しました。
“`php
public function testExample()
{
$s3Client = $this->createMock(S3Client::class);
$s3Client->method(‘GetObject’);
}
“`エラー内容
“`
PHPUnit 9.5.4 by Sebastian Bergmann and contributors.Trying to configure method “GetObject” which cannot be configured because it does not exist, has not been specified, is final, or is static
/path/to/test/ExampleTest.php:18Time: 00:00.017, Memory: 14.00 MB
ERRORS!
Tests: 1, Ass
[PHP]連想配列
#はじめに
超基礎的な部分ではありますが、PHPとRubyの微妙な違いを見過ごしたくないので、あえて基礎から丁寧に学んでいきます!今回は、PHPで連想配列について学んだのでアウトプットします。#連想配列
連想配列はインデックス値ではなく、キーと値でデータを管理する仕組みのことです。
これに関しては見た方が早いので、まずは簡単なプログラムを書きます。“`index.php
$index=[
‘name’=>’本田圭介’
‘sports’=>’サッカー’
];echo $index[‘sport’];#サッカー
“`
indexという配列に対して、nameキーには本田圭介、sportsキーにはサッカーが入っています。
取り出す際は、キーを指定してやれば取り出すことが可能です。また、連想配列は以下のように階層構造をとることも可能です。
“`php
$member=[
‘本田’=>[
“sports”=>”サッカー”,
”position”=>”MF”
],
‘香川’=>[
“sports”=>”サッカー”,
”position”
laravel アプリを作成してローカルサーバーを起動できるようにする
# 目的
– 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.8 | Homebrewを用いてこちらの方法で導入→[Mac HomebrewでPHPをインストールする](https://qiita.com/miriwo/items/cd54077aad7e139cf518) |
| Lara
Laravel6 でログイン機能を作成してみた。
Laravelでは簡単に認証が実装できます。私自身、あまり触ったことないですが、短時間で実装することが出来ましたので参考にしていただければ幸いです。
今回作成するのは`Laravel6`の実装方法になりますのでバージョンが違う場合は、上手くかない事がありますので公式ページをご確認下さい。
[こちら](https://readouble.com/laravel/6.x/ja/authentication.html)
#環境– MAMP
– PHP 7.3.24
– Laravel Framework 6.20.27
– npm 6.14.10
– composer#プロジェクト作成
“`
$ composer create-project “laravel/laravel=6.*” –prefer-dist アプリ名
“`“`:.env
DB_DATABASE=任意のデータベース名
DB_USERNAME=root
DB_PASSWORD=root
DB_SOCKET=’/Applications/MAMP/tmp/mysql/mysql.sock’
“`
MAM
業務用コードの書き方(ver1.0)
# はじめに
初心者から中級者になるためには可読性の高いコードを書く、一般的に業務で製品としてつくるコードが書けることが初心者を脱出する第一歩になります。**製品を提供する**、**納品する**、**保守性の良い**、**誰がみてもわかりやすい**、**バグが出にくい**コードを**高速**で書けますか??本章では一般的にできて当たり前なコードを書くお約束と、わかりやすいコードってなんだろう?をお伝えしていきます。# コメントを書くということ
保守性、可読性といった観点でコメントは重要です。自分のためにではなく、次にこのソースコードを触るひとのために書きます。たまにラップ調で*XXを呼び出す*、*YYを返却する*といったコメントを見かけますが、正直そんなの見ればわかりますよね笑 ぱっと見で次の人のために、なにをするためにあるかを書くくらいでもいいのではないでしょうか。コメントは多ければいいというものではありません。
クラスやメソッドにはブロックコメントを書きますよね。なぜなら後からPHPDOCやJAVADOCといった自動で出力することができるし、IDEによってはマウスオーバーでそ
Laravelを調べる:Controller/View追加編
# Laravelを調べる:Controller/View追加編
## 環境
|Name |Version |
|—————|—————————-|
|OS |macOS Catalina (ver 10.15.7)|
|docker desktop | version 3.2.2 |環境構築はこちら↓
https://qiita.com/takeohman/items/2233a3d7f7a627cb8ed5
## Controllerの追加
Controllerの追加には以下のコマンドを実行します。
“`bash
$ php artisan make:controller HogeController
“`実行すると、ディレクトリ: `./app/Http/Controllers` に `HogeController.php`が出力されました。
試しに、`index()` メソッドを追加し
【 Laravel 】クエリビルダ と Eloquent ORM の違いを整理!
#はじめに
Laravel でデータベースを操作するには、
__・DBクラス
・DBクラスのクエリビルダ
・Modelクラスの Eloquent ORM__上記3つのうち、どれかを使用しますが、
__学習中、クエリビルダ と Eloquent ORM の違いがよく分からないままに
使用してしまっていたので自分なりに整理しました!__# 表でざっくり比較
| | クエリビルダ | Eloquent ORM |
|:-:|:-:|:-:|
| __Modelが必要 __ | × | ○ |
| __リレーション定義 __ | × | ○ |
| __タイムスタンプ更新 __ | × | ○ |
| __クエリビルダが使用可能 __ | ○ | ○ |
| __SQLインジェクション対策 __| ○※ | ○※ |
| __記述量__ | __多め__ | __少なめ__ |__※ クエリビルダ も Eloquent ORM も、SQL文を書くことができる Raw メソッドを使用する
場合は、コードを記述する者がSQLインジェクション
PHPのswitch文
#前提
PHPは未経験
PHPの学習を始めたため、アウトプットとして投稿
開発環境はXAMPP#switch文の書き方
““
switch(式){
case(値1):
処理
break;
case(値2):
処理
break;
case(値3):
処理
break;
default:
処理
}
““
まずswitch文では、式の値を評価して後続のcase句の値と照らし合わせ、
一致したcase文の処理を実行する。
default句はcase句に一致する値がなかった場合に実行される。#実際に書いてみた。
“`
“`
実行結果はこうなる
![
Laravel × Twilioでコールセンターの構築
#自己紹介
普段私は、
一番得意な機械学習(深層学習)をしたり、
Python/Django でWebアプリを開発したり、
TypeScript/Vue or React でフロントエンドの開発をしたり、
PHP/Laravel でWebアプリを開発したり、
さまざまなことを行っています。趣味で休みの日にGo言語で色々作成しているのですが、型のある世界は素敵だなと昨今感じています。
今最もやりたいことは、Goで大規模なWebアプリケーションを作成したい。企業案件やご連絡等ございましたらお気軽に下記よりご連絡いただければと思います。
nagamatsu-k@dym.jp# コールセンター作成に至った経緯
コールセンターと契約するにしろ費用が高いし、従業員に電話の受付として配置するのも非効率。ならば`独自のプラットフォームで、柔軟な電話対応ができるようなアプリケーションを作成してみよう`とチャレンジしました。
`開発期間は半日です`
思ったより難しくなかった##開発環境
PHP 7.3.28
Laravel 5.8.38*ソースコード管理はGitHubで行
【PHP】世界1わかりやすいPHPの$_GETメソッド
$_GETメソッドとは、linkや送信ボタンからデータを受け取って、URLに付与できる。
つまりページ替えができるってことだ
“`PHP
サンプル
現在 ページ目です。
1) : ?>
PHPのwhile文#前提
PHPは未経験
PHPの学習を始めたため、アウトプットとして投稿
開発環境はXAMPP#while文の書き方
PHPのwhile文は以下のように書く“`
while(条件式){
処理
}
“`
解説すると指定した条件を満たしている場合に処理を行うという
ただそれだけ・・・#実際に書いてみた
“`
“;
$i ++;
}
?>
“`#実行結果
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1031387/35747549-790c-06d5-8ab5-a8031f39c6e3.png)#解説
カウンターの初期値を0としてその値が10より小さい場合にwhile文の中の処理を実行する。
処理の最後にカウンターの値を1増やす。
処理の内容は、
カウンターの値を出力する。その際に改行も行う。
出力内容は$iの値と改行になるため、
連結演算子「.」を使用して$iと
PHPのfor文
#前提
PHPは未経験
PHPの学習を始めたため、アウトプットとして投稿
開発環境はXAMPP#for文の書き方
PHPのfor文は以下のように書く“`
for(式1; 式2; 式3){
処理
}
“`・式1 - カウンターの初期値
・式2 - for文が実行される条件
・式3 - 処理一回ごとのカウンターの増減幅#実際に書いてみた
“`
“`
上記のコードはカウンターの初期値を0として、
その値が5よりも小さい場合にfor文の中の処理を行い
処理を一回実行する度に1カウントアップをするという内容である。実行結果はこうなる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1031387/d965b69c-c600-aa6c-74a0-995b998f4cd4.png)カウンターが0から4の時
echo $i;
が実行された。
PHP8.0.6 / Xdebug3.0.4-8.0/ Eclipse の環境構築
# はじめに
PHP上級試験とは関係ないのだけど、
なんとか仕事もらってPHPの環境構築することになり、
昔やったことを思い出しながらやった結果、なんとかできたので備忘録としてメモ。# やること
「php eclipse 環境構築」で調べたらたいてい出てくるのと同じ。
0) Xamppをインストール
そもそもなぜEclipseにXamppあるのになぜ当時の自分はXamppを分けてインストールしたのか考えたのだけど、
どうやらEclipseじゃなくて、PHPStormをインストールする記事と読み間違えてたようです。
↑
そこから環境変数PathにXamppを通しておいたりとかして、Eclipseで起動できるかどうかやっていた気がします。
本来は、1)からスタートすればよかっただけなのに。。。1) Eclipseのインストール
https://mergedoc.osdn.jp/
私はEclipse2021>PHPのWindows64ビットをDL。
32ビットか64ビットかはWindowsのバージョンによっても異なるので確認してから
それぞれの環境に合うものをDLすればいいと思う。
PHPで拡張子からMIMEタイプを取得する
mime_content_typeがローカルファイルのみ有効だったため、何か方法が無いかと公式を見ていたら
ユーザ寄稿にこんなコードがありました。>
“`php
Fast generation of uptodate mime types:
>
function generateUpToDateMimeArray($url){
$s=array();
foreach(@explode(“\n”,@file_get_contents($url))as $x)
if(isset($x[0])&&$x[0]!==’#’&&preg_match_all(‘#([^\s]+)#’,$x,$out)&&isset($out[1])&&($c=count($out[1]))>1)
for($i=1;$i<$c;$i
PHP文法基礎まとめ1
#PHP基本文法
PHP初心者向けに基礎内容をまとめました。
###文字の出力・連結
echoを使うことにより、文字を出力することができ、「.」で文字を連結することができます。echoの場合は「,」で連結することもできます。“`php
echo ‘hello world! ‘;
echo ‘hello’.’ world!! ‘;
echo ‘hello’, ‘ world!!!’;
“`“`
hello world! hello world!! hello world!!!
“`
###変数・データ型
PHPの場合、先頭に$をつけて変数を宣言します。変数へデータを格納することにより、以降のソースコードで変数の中身を参照することができます。
変数に適用される、主なデータ型は下記のようになっています。
・文字 ⇒ string型
・数値 ⇒ int型、float型
・真偽値(true / false) ⇒ boolean型“`php
$num = 100;
$str = ‘PHP基礎’;
$bool = true;echo ‘num = ‘. $num . ‘