---
# System prepended metadata

title: PHP学習カリキュラム

---

# PHP学習カリキュラム
以下学習効果を高めるための進め方です。

・サンプルコードは読むだけでなく実際に書いて動かしてください
・コードはなるべくコピペせずに書いて覚えましょう。基本構文は特に。
・何か不明な点などあればslackに質問ください。質問テンプレートは以下を使用で。

```
【実現したいことは何か】
例）Tera Termで試験環境にログインしたい

【何をしたか】
例）以下のTera Termマクロを実行した
[ファイルのパス]

【どのような状態になったか（エラーの内容など）】
例）エラーメッセージが出る

【解決のために何を調べた（試した）か】
例）エラーメッセージでググったが、原因がわからず。

【現状が見てわかるエラーの画面やソースコードなど）】
※キャプチャを添付、コードを貼り付け


複数ある場合は質問①、② のように分ける
```


## PHP入門
・XAMPP環境構築
https://www.javadrive.jp/xampp/

・PHPインストールと初期設定～PHPサンプルプログラム　まで実施
https://www.javadrive.jp/php/
※PHP、Apache、MYSQLのインストールの部分はXAMPPで一括インストールするので除外
　設定の手順は必要に応じて実施してください。
・PostgreSQLへの接続、SQLiteへの接続 はスキップで（MySQLのみできればOK）

XAMPPについての参考
https://and-engineer.com/articles/YT2oFhAAACIAnsol

-------
### 課題（理解度チェック用）
GitHubに「php」という名前で公開リポジトリを作成してください。
masterブランチを作成後、そこから課題毎に開発用ブランチを作成し、
課題内容を必要に応じてpushしていってください。
課題が完成したらmasterブランチに向けてpull requestを作成し、
Slackに連絡して下さい。

GitHubについての参考
https://techacademy.jp/magazine/6235
https://qiita.com/Ken227/items/822851aaca0fd9b3cf72
ブランチの命名規則について
https://qiita.com/c6tower/items/fe2aa4ecb78bef69928f

### FizzBuzz問題
繰り返し処理まで完了後に実施
以下の仕様を満たすように、phpファイルを作成してください

**仕様**
1から100までの連続した整数を画面に表示していく。ただし、
・もし、その整数が3で割り切れる数なら "Fizz" と表示する。
・もし、その整数が5で割り切れる数なら "Buzz" と表示する。
・上記2つの条件は同時に満たせる。つまり、もし、その整数が3で割り切れ、なおかつ5で割り切れる数なら "FizzBuzz" と表示する。
・それ以外の数は、その数をそのまま表示する。


-------
### ピタゴラス（三平方の定理）プログラムを作ろう
PHPサンプルプログラム＞フォームの処理まで完了後に実施
三平方の定理は、直角三角形の3つの辺について、直角をはさむ2つの辺の長さをそれぞれ a と b、斜辺の長さを c としたとき、以下のような関係が成り立つという公式です。
`cの二乗 = aの二乗 + bの二乗`

以下の仕様を満たすように、phpファイルを作成してください

**仕様**
・GETパラメータを2つ使用（aとb）
・phpではこの2つの辺の長さを取得し、三平方の定理を使って cの二乗 を求める
・平方根のcを求め、以下のように画面に表示する

```
直角をはさむ2辺の長さが 3.0 と 4.0 のとき、 斜辺の長さは 5.0 になります。
```

-------
### タスク管理アプリケーションを作ろう
もしすべての内容が終わったら、応用編としてこちらにトライしてください
PHPサンプルプログラム＞掲示板 まで完了後に実施

以下の仕様を満たすように、phpでWebアプリケーションを作成してください

**仕様**
・タスクを保存するtasksテーブルを作成します。カラムは以下４つ。
　ID
　タスクの内容
　作成日時
　更新日時

・タスクに対する以下7つの機能をすべて実装してください

| 機能 | 概要 | HTTPメソッド |
| -------- | -------- | -------- |
|index |登録済みのリソースを一覧表示する画面 |GET|
|show |リソースの詳細な情報を表示する画面 |GET|
|new |新しいリソースの入力画面（フォーム） |GET|
|create |新規登録処理（INSERT） |POST|
|edit |既存のリソースの編集画面（フォーム） |GET|
|update |変更処理（UPDATE） |POST|
|destroy |削除処理（DELETE） |POST|

・画面は、以下４つが必要になります

    index（タスク一覧）
    show（詳細ページ）
    new（作成ページ）
    edit（編集ページ）

・まずは掲示板をベースに、保存先をDBにするといいでしょう

-------
### 進捗状況記載欄
開始時：その日の進捗目標を記載
退勤までに：実績記載
例：10月25日　PHPインストールと初期設定、PHPプログラムの基本事項、文字列　完了

**---以下、住谷記載---**
**1/5（木）**
・XAMPP環境構築
　⇒完了
・PHPインストールと初期設定
　⇒完了
**1/6（金）**
・PHP入門（PHPプログラムの基本事項～PHPサンプルプログラム）
　⇒完了
・Github課題
　⇒未着手
**1/10（火）**
・Github設定
　⇒完了
・Fizzbuzz問題
　⇒仕掛中：phpファイルはできたが、プルリクエストが分からず確認中
**1/11（水）**
・Fizzbuzz問題：完了したい
　⇒画面で確認してもらい、完了
・ピタゴラス（三平方の定理）プログラム：完了したい
　⇒実装済みだが、小数点まで計算できるように改善する（制限：1ｈ）
**1/12（木）**
・ピタゴラス（三平方の定理）プログラム：改善まで完了したい
　⇒