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

PHP関連のことを調べてみた2020年01月28日
目次

CakePHPの始め方(Mac)を理解したい

先日頑張って[CakePHPのインストール](https://qiita.com/nanatsu/items/210b6448cfdc9f2bddab)をしました

次はCakePHP開発の始め方をお勉強します
スーパーしょしんしゃなので当たり前のこともいちいちメモしています

# 環境状況
– Mac OS Catalina 10.15.2
– HomebrewでApache, MySQL, PHPをインストール済み
– Apache(バージョンは後日記述)
– MySQL 8.0
– PHP 7.3
– CakePHP 3.8

# 調べてわかったこと
– フレームワークを使うには**MVCモデル**を理解しないといけない[^1]
– そもそも「PHPでできること」として具体的な処理や機能がいろいろある
– `bake`コマンドというやつで楽できそう

# 基礎知識
整理してたら全部長くなったので切りました

– [PHPについて](https://qiita.com/nanatsu/items/aec7286fc344f3a380b1)
– [MVCモデル

元記事を表示

テスト駆動開発をPHPで写経-第2章

PHPで[テスト駆動開発](https://amzn.to/37nji9B)を写経してみたのでその記録です。
本記事では第2章のみ紹介します。

過去記事
– [「テスト駆動開発をPHPで写経-第1章」を編集 – Qiita](https://qiita.com/drafts/bfab34403afbb02c814a/edit)

# 所感

今回はほぼテキスト通りに行えました

# 実施

Dollarオブジェクトの状態が変わらないことを期待するテストに修正

“`diff
diff –git a/tests/MoneyTest.php b/tests/MoneyTest.php
index b753708..d47dc01 100644
— a/tests/MoneyTest.php
+++ b/tests/MoneyTest.php
@@ -8,7 +8,9 @@ require_once(dirname(__FILE__).”/../src/Dollar.php”);
class MoneyTest extends TestCase {
public fun

元記事を表示

ModelクラスからQueryBuilderクラスを分離させる

#概要
LaravelだとGlobalScopeを作成して、scopeメソッドをModelクラスから分離させることができる。

しかし、Eloquentに依存してしまうため、DBファサード等を使用してQueryBuilderのみを使用する場合に、クエリの分割ができない。

そのため、`Illuminate\Database\Query\Builder` クラスを継承したQueryBuilderクラスを作成し、EloquentからでもQueryBuilderのみでも利用できるようにする。

#実装
## QueryBuilderクラスの作成

`Illuminate\Database\Query\Builder`したクラスを作成する。

“`php

元記事を表示

セッションを確認する

新しいタブを開いてもセッションは同じになるということを今日知りました。
実際にコード書いて確かめてみました。

以下を参考にしました
https://itsakura.com/php_session

##ソース
https://github.com/hinamomo/laravel60-quickstart-basic/commit/9812659ed29a5766362b61778a5d9e04617dca09
この記事用に追加したのは以下2箇所(コントローラ新規作成、ルート追加)です

“`app/Http/Controllers/SessionController.php

元記事を表示

【メール送信自動化】データベース内のメールアドレスを抽出して自動送信

とあるお仕事で「ある条件下のお客様のみ、1日ごとに違うメールを自動配信して欲しい」との依頼があったので、PHPでスクリプトを書いてみました。

以下、それのサンプルです(参考サイトがいくつもあります。あとで追記いたします)。

流れとしては、

①$db -> query(“SQL文”); で必要なデータを検索(WHEREとかを使う)
②while + fetchArrayでメールアドレスを配列化
③配列にしたメールアドレスをforeachで一つずつ送信

です。それだけです。

“`

元記事を表示

Laravel 日付データから年度を取得し配列に入れる

## やってみた

**`date`カラムから年度に変換し、重複を削除、ソートしました。**

“`php:StatusContoller.php
$dates = Status::pluck(‘date’);
foreach ($dates as $date) {
$array[] = $date->subMonthsNoOverflow(3)->format(‘Y’);
}
$years = collect($array)->unique()->sort();

dd($years);
“`

**取得結果**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/308965/5a13a41d-7174-f279-f67c-6410c2aadeb3.png)

**プルダウンに年度を表示させたい場合**

“`php:index.blade.php

OTHERカテゴリの最新記事