PHP

PHPをはじめての出力から、設計・テスト・保守まで体系的に学ぶコースです。

ターミナルで小さなツールを作りながら、型、関数、オブジェクト指向、ファイル、日時、Composer、PHPUnit、データベースを身につけます。Webの仕組みはブラウザ演習で確かめます。

4つの道場では、データの修復や受付システム、まちの道具図書館を制作します。要件の整理、境界の検証、保存失敗からの回復、仕様変更、引継ぎまで取り組みます。目安55時間は説明・実装・試行錯誤・振り返りを含む設計上の見積もりです。

  • PHP

こんな人におすすめ

プログラミング未経験からPHPを体系的に学び、実務につながる土台を作りたい方におすすめです。

  • はじめてプログラミングを学ぶ方
  • 文法だけでなく設計・テスト・保守まで練習したい方
  • LaravelやWordPressを学ぶ前にPHP自体の基礎を固めたい方

PHPで学べること

基礎文法と型、関数、オブジェクト指向と責務分離、ファイル・CSV・JSON・日時、ComposerとPSR-4、PHPUnit、PDOとSQLite、HTTP・フォーム・セッション・CSRF、認可と安全なログ、PHPStan、既存コードの修正、データ移行と引継ぎを学びます。

はじめてのPHPと実行のしくみ

港の灯台の点灯案内を題材に、echo、改行、PHPタグ、コメント、実行と構文エラー、行番号を学びます。

  • echo
  • 改行
  • PHPタグ
  • コメント
  • 実行と構文エラー
  • 行番号
学習内容をみる (4演習)

変数・型・計算 プラス

共同工房の材料見積もりを題材に、代入と更新、int/float、var_dump、四則演算と余り、整数単位の見積もりを学びます。

  • 代入と更新
  • int/float
  • var_dump
  • 四則演算と余り
  • 整数単位の見積もり
学習内容をみる (5演習)

文字列と日本語 プラス

音声ガイドの原稿整形を題材に、引用符、展開、連結、trim、strreplace、strlen/mbstrlen、heredocを学びます。

  • 引用符
  • 展開
  • 連結
  • trim
  • str_replace
  • strlen/mb_strlen
  • heredoc
学習内容をみる (5演習)

条件と入力の境界 プラス

観測デッキの入場案内を題材に、if/elseif、厳密比較、論理演算、falsy、0とfalse、三項演算、キャストと検証の違いを学びます。

  • if/elseif
  • 厳密比較
  • 論理演算
  • falsy
  • 0とfalse
  • 三項演算
  • キャストと検証の違い
学習内容をみる (5演習)

配列とデータの形 プラス

種の交換会の品種台帳を題材に、リストと連想配列、キー、追加更新削除、ネスト、isset/arraykeyexists、null合体、分解を学びます。

  • リストと連想配列
  • キー
  • 追加更新削除
  • ネスト
  • isset/array_key_exists
  • null合体
  • 分解
学習内容をみる (6演習)

繰り返しと集計 プラス

渡り鳥の観測記録を題材に、foreach、for、while、break/continue、件数合計最大値、空集合、参照ループの注意を学びます。

  • foreach
  • for
  • while
  • break/continue
  • 件数合計最大値
  • 空集合
  • 参照ループの注意
学習内容をみる (5演習)

関数で処理を分ける プラス

染め物工房の配合計算を題材に、定義、引数、return、スコープ、早期return、既定値、名前付き/可変長引数、値渡し、計算と出力の分離を学びます。

  • 定義
  • 引数
  • return
  • スコープ
  • 早期return
  • 既定値
  • 名前付き/可変長引数
  • 値渡し
  • 計算と出力の分離
学習内容をみる (6演習)

型宣言と関数の契約 プラス

字幕制作の時間割り当てを題材に、引数/戻り値型、strict_types、呼出側の型変換、nullable/union、型と値域の検証、整数上限を学びます。

  • 引数/戻り値型
  • strict_types
  • 呼出側の型変換
  • nullable/union
  • 型と値域の検証
  • 整数上限
学習内容をみる (5演習)

道場1 漂着物の調査報告を作ろう 道場 プラス

海岸調査の回収・分類レポートを題材に、不揃いな観測データを検証・分類・集計。空入力、境界、未知分類に対応する関数群を自力で実装を学びます。

  • 不揃いな観測データを検証・分類・集計。空入力
  • 境界
  • 未知分類に対応する関数群を自力で実装
学習内容をみる (5演習)

コールバックと配列操作 プラス

ラジオ番組の選曲キューを題材に、無名関数、use、fn、第一級callable、map/filter、values、usort、キー保持、8.5 pipeを学びます。

  • 無名関数
  • use
  • fn
  • 第一級callable
  • map/filter
  • values
  • usort
  • キー保持
  • 8.5 pipe
学習内容をみる (5演習)

小さなCLIツールを作る プラス

上映会の座席割り当てを題材に、argv、constと定義済み定数、標準入力、EOF、標準出力/標準エラー、終了コード、ヘルプを学びます。

  • argv
  • constと定義済み定数
  • 標準入力
  • EOF
  • 標準出力/標準エラー
  • 終了コード
  • ヘルプ
学習内容をみる (5演習)

エラーを読み、例外を扱う プラス

観測機器の測定値取り込みを題材に、Throwable/Exception/Error、throw、try/catch/finally、警告とfalse、失敗の握りつぶしを避けるを学びます。

  • Throwable/Exception/Error
  • throw
  • try/catch/finally
  • 警告とfalse
  • 失敗の握りつぶしを避ける
学習内容をみる (5演習)

ファイル・CSV・JSON プラス

地域資料館の目録変換を題材に、DIR、入出力、失敗検査、CSVの引用符、JSONTHROWON_ERROR、ファイルパス境界を学びます。

  • __DIR__
  • 入出力
  • 失敗検査
  • CSVの引用符
  • JSON_THROW_ON_ERROR
  • ファイルパス境界
学習内容をみる (5演習)

日時と再現できる処理 プラス

夜間観察会の予約期限を題材に、DateTimeImmutable、Timezone、format、modify、日付検証、時計を引数にする、月末と閏日を学びます。

  • DateTimeImmutable
  • Timezone
  • format
  • modify
  • 日付検証
  • 時計を引数にする
  • 月末と閏日
学習内容をみる (5演習)

道場2 字幕データの修復ツール 道場 プラス

上映作品の字幕タイムライン検査を題材に、CSV入力→不正行報告→時間順の整列→JSON保存。元データを壊さず再実行できるCLIの自作を学びます。

  • CSV入力→不正行報告→時間順の整列→JSON保存。元データを壊さず再実行できるCLIを自作
学習内容をみる (5演習)

クラスと状態の管理 プラス

修理工房の作業票を題材に、クラス、インスタンス、型付きプロパティ、this、コンストラクタ、private、不変条件を学びます。

  • クラス
  • インスタンス
  • 型付きプロパティ
  • this
  • コンストラクタ
  • private
  • 不変条件
学習内容をみる (6演習)

値とオブジェクトの違い プラス

陶芸窯の焼成条件を題材に、オブジェクト識別子、===と==、clone、readonly、プロモーション、値オブジェクトを学びます。

  • オブジェクト識別子
  • ===と==
  • clone
  • readonly
  • プロモーション
  • 値オブジェクト
学習内容をみる (5演習)

実務レベルまで プロ

インターフェースと依存の分離 プロ

修理工房の通知先切り替えを題材に、interface、implements、DI、コンポジション、テストダブル、変更理由による責務分離を学びます。

  • interface
  • implements
  • DI
  • コンポジション
  • テストダブル
  • 変更理由による責務分離
学習内容をみる (5演習)

継承・抽象クラス・トレイト プロ

街歩きツアーのガイド形式を題材に、extends、parent、protected、abstract、final、trait、継承と委譲の判断を学びます。

  • extends
  • parent
  • protected
  • abstract
  • final
  • trait
  • 継承と委譲の判断
学習内容をみる (5演習)

列挙型とモダンなPHP プロ

展示作品の公開審査を題材に、enum/from/tryFrom、matchの網羅、nullsafe、static、属性、property hooks、非対称可視性、NoDiscard、array_first/last、Uriを学びます。

  • enum/from/tryFrom
  • matchの網羅
  • nullsafe
  • static
  • 属性
  • property hooks
  • 非対称可視性
  • NoDiscard
  • array_first/last
  • Uri
学習内容をみる (6演習)

名前空間とComposer プロ

朗読音源の配信パッケージを題材に、namespace/use、PSR-4、autoload、composer.json/lock、install/update、require-dev、scripts、監査を学びます。

  • namespace/use
  • PSR-4
  • autoload
  • composer.json/lock
  • install/update
  • require-dev
  • scripts
  • 監査
学習内容をみる (6演習)

PHPUnitで自分のコードを守る プロ

配送用緩衝材のサイズ判定を題材に、TestCase、assertSame、例外検証、境界値、データプロバイダ、setUpとフェイク、リファクタリングを学びます。

  • TestCase
  • assertSame
  • 例外検証
  • 境界値
  • データプロバイダ
  • setUpとフェイク
  • リファクタリング
学習内容をみる (6演習)

道場3 展示会の搬入受付を設計する 道場 プロ

展示物の搬入と保管場所の割り当てを題材に、容量・壊れ物・受付状態の制約。責務分割、依存注入、仕様変更と回帰テストを実践を学びます。

  • 容量・壊れ物・受付状態の制約。責務分割
  • 依存注入
  • 仕様変更と回帰テストを実践
学習内容をみる (5演習)

反復可能なデータと標準API プロ

録音アーカイブの長い索引を題材に、iterable、Generator/yield、遅延処理、SPL、正規表現、ストリーム解放を学びます。

  • iterable
  • Generator/yield
  • 遅延処理
  • SPL
  • 正規表現
  • ストリーム解放
学習内容をみる (5演習)

PDOとデータベース プロ

共同菜園の区画台帳を題材に、SQL基礎、SQLite/PDO、CRUD、プレースホルダ、fetch、制約、トランザクション、SQL方言差を学びます。

  • SQL基礎
  • SQLite/PDO
  • CRUD
  • プレースホルダ
  • fetch
  • 制約
  • トランザクション
  • SQL方言差
学習内容をみる (6演習)

永続化とテストの設計 プロ

地域発電所の検針データを題材に、Repository境界、単体/統合テスト、fixture、二重登録防止、ロールバック、実DBとfakeの役割を学びます。

  • Repository境界
  • 単体/統合テスト
  • fixture
  • 二重登録防止
  • ロールバック
  • 実DBとfakeの役割
学習内容をみる (5演習)

HTTPとPHPの接点 プロ

星空観察会の空き枠照会を題材に、HTTP要求/応答、リクエスト単位の実行、HTML最小限、GET、出力エスケープ、ステータス、ロジックと表示の分離を学びます。

  • HTTP要求/応答
  • リクエスト単位の実行
  • HTML最小限
  • GET
  • 出力エスケープ
  • ステータス
  • ロジックと表示の分離
学習内容をみる (5演習)

フォームと状態変更 プロ

公開録音への参加申込を題材に、POST、入力の形と値の検証、PRG、headerと出力順、セッション/クッキー、CSRFの最小例を学びます。

  • POST
  • 入力の形と値の検証
  • PRG
  • headerと出力順
  • セッション/クッキー
  • CSRFの最小例
学習内容をみる (5演習)

実務コードの読み方と境界 プロ

音声資料室の利用者情報を題材に、password_hash/verify、認証と認可、秘密情報とログ、API失敗/タイムアウトの分類を学びます。

  • password_hash/verify
  • 認証と認可
  • 秘密情報とログ
  • API失敗/タイムアウト
学習内容をみる (5演習)

静的解析と保守 プロ

古い寄贈品管理ツールの改善を題材に、PHPDoc/array shape、PHPStan、型エラー修正、コーディング規約、依存の更新、deprecated、テストを保ったリファクタを学びます。

  • PHPDoc/array shape
  • PHPStan
  • 型エラー修正
  • コーディング規約
  • 依存の更新
  • deprecated
  • テストを保ったリファクタ
学習内容をみる (5演習)

総合制作の準備と設計レビュー プロ

まちの道具図書館の要件整理を題材に、状態遷移、不変条件、責務の境界、受入例とテスト計画、開発ツールの設定、READMEを学びます。

  • 状態遷移
  • 不変条件
  • 責務の境界
  • 受入例
  • テスト計画
  • 開発ツールの設定
  • README
学習内容をみる (5演習)

道場4 まちの道具図書館を完成させよう 道場 プロ

まちの道具図書館の貸出・返却・整備を題材に、CLI、期限と整備状態、予約待ち、SQLite永続化、トランザクション、PHPUnit、障害回復、変更要求、引き継ぎを学びます。

  • CLI
  • 期限と整備状態
  • 予約待ち
  • SQLite永続化
  • トランザクション
  • PHPUnit
  • 障害回復
  • 変更要求
  • 引き継ぎ
学習内容をみる (9演習)