Upgrade to Pro — share decks privately, control downloads, hide ads and more …

PHP初心者セッション2026 〜ChatGPTと学ぶ、新時代のPHP入門〜

PHP初心者セッション2026 〜ChatGPTと学ぶ、新時代のPHP入門〜

phpcon2025のセッションです!(タイトル間違えました)

毎年行っており初心者向けのセッションです!内容は毎年アップデートしております。

【対象】 PHP・プログラミング未経験者、デザイナー、途中で挫折した学習者、非エンジニア

【ゴール】 ChatGPTなどAIを“相棒”に自走学習できる。

【概要】

PHPとは ─ Webの大半を支え続ける実態と最新動向をデータで示し、「もう古い」という誤解を払拭。
PHPの環境 ─ ローカル環境からクラウドまで様々な環境での利用を紹介。
AIと連携したPHP基礎 ─ PHPの簡単な基礎からChatGPT などを用いた学習計画・サポート、VsCode,Cursorなどでのコーディングの仕方など。
PHPで動くプログラム ─ 簡単なプログラムをAIを使いつつ、何を考えるべきかを共有します。

セッション後、参加者は「まずは VS Code を開き、ChatGPT に相談しながら最初の PHP スクリプトを動かす」自信と手順を持ち帰れます。

Avatar for Hideo Kashioka

Hideo Kashioka

June 27, 2025
Tweet

More Decks by Hideo Kashioka

Other Decks in Technology

Transcript

  1. 自己紹介 • 有限会社アリウープ 代表取締役社長 • Registered Scrum Master(RSM) • Registered

    Product Owner(RPO) • Registered Scrum@Scale Practitioner (RS@SP) • PHPユーザ会の発起人の一人 • PHPカンファレンスでは初回より運営に 参加 • PHPを中心としたWEB開発からスクラ ム導入まで • 最近のお気に入りはDevin
  2. PHPとは A popular general- purpose scripting language that is especially

    suited to web development. Fast, flexible and pragmatic, PHP powers everything from your blog to the most popular websites in the world. http://php.net/より PHPは、Web開発に特に 適した、人気のある汎用ス クリプト言語です。 高速で柔軟、そして実用的 なPHPは、あなたのブログ から世界で最も人気のある Webサイトまで、あらゆる 場所で活躍しています。 ChatGPTによる翻訳
  3. PHPの歴史と進化 1994–1995 PHP Tools(Personal Home Page Tools) → PHP/FI Rasmus

    Lerdorfが個人用Web履歴ツールとして開発し、正式公開。 1997–1998 PHP 3誕生 Zeev Suraski/Andi Gutmansによる再設計。エンジン一新。 2000–2004 PHP 4 + Zend Engine導入 → PHP 5リリース PHP 4で安定性と速度向上、PHP 5でPDO・OOサポート。 2014–2015 PHP 7リリース パフォーマンス飛躍的改善、型宣言・Null合体演算子など導入。 2020–2024 PHP 8 → 8.4 JIT、match式、enum、readonlyクラス、typed constantsなどモダン機能搭載。 参考:https://www.php.net/manual/ja/history.php.php
  4. 開発現場でのPHP 18.2% の開発者がPHPを使用 出典:Stack Overflow Survey 2023 PHPで実行されるサイト Wikipedia:MediaWikiがPHPベース WordPress:全Webの43%以上を支えるCMS

    Slack(Web):一部バックエンドにPHP使用 Mailchimp:メールSaaS、PHPとReact併用 EC-CUBE:日本の商用ECフレームワーク
  5. まぜ今PHPを学ぶのか 1. MVCを通じてWebアプリの構造が理解できる ・ルーティング、リクエスト、ビュー、テンプレート ・“フレームワーク以前”のWebの仕組みを素直に学べる 2. 現行の多くのシステムで使われている ・業務アプリ・CMS・社内ツールなどで依然現役 ・特に中小企業・自治体・医療系の現場では主力技術 3.

    モダン開発との“橋渡し”として適している ・バックエンドにPHP、フロントにReact/Vueを組み合わせた構成が主 流に ・API設計やフォーム処理など、“Webの裏側”をPHPで習得できる 結論: 「PHPは“今の開発”と“これからの開発”をつなぐ、現場的かつ教育的な 橋渡し言語」
  6. docker-compose.yml services: php: image: php:8.4-cli container_name: php-server ports: - '8888:80'

    volumes: - ./phpapps:/home/www-data working_dir: /home/www-data command: php -S 0.0.0.0:80 dockerイメージ 名 公開ポート ボリュームのマウ ト コマンドの実行 ビルトインサーバ
  7. $a = "A" . "B"; $b = 1 + 2;

    足したり結合したり
  8. $a = "A"; $b = "B"; $c = $a .

    $b; 変数値が数字なら演算も可能 変数でも結合
  9. <?php $lavel = "phpcon"; $year = 2020; echo $lavel .

    ($year +5); http://localhost:8888/sample3.php 加算・結合
  10. <?php $names = ["A", "B", "C"]; echo $names[0]; // 出力:

    A 複数の値を格納する 配列
  11. <?php $people = [ [“A”, 30,”東京”], [“B”, 25,”大阪”], [“C”, 28,”沖縄”]];

    echo $people[0][0]; // 出力: A echo $people[1][1]; // 出力: 25 A 30 東京 B 25 大阪 C 28 沖縄 2次元配列
  12. <?php $new ="<a href='test'>Test</a>"; echo $new; <?php $new ="<a href='test'>Test</a>";

    echo htmlspecialchars($new, ENT_QUOTES, ‘UTF-8’); http://localhost:8888/sample6.php 出力はとに かく htmlspecialc hars() http://localhost:8888/sample6bad.php
  13. <?php function hsc(string $str) { return htmlspecialchars($str, ENT_QUOTES, 'UTF-8'); }

    function add1(int $num = 0) { return $num + 1; } echo hsc('<'); echo add1(10); http://localhost:8888/sample8.php
  14. PhpStorm:PHP特化IDEとしての完成度 PHP特化の補完・構文ナビゲーション 型推論/use 自動補完/ファイル間リファクタリングが正確かつ高速 Laravel, Symfony, Blade, Doctrine など主要フレームワーク対応が標準搭載 統合されたデバッグ・テスト環境

    Xdebug対応:ブレークポイント・ステップ実行・変数ウォッチがGUI操作で可能 PHPUnit:コード横でテストが書けて、ワンクリックで実行・可視化 DB・RESTクライアントもIDE内蔵 MySQL・PostgreSQL などに接続してクエリ実行→結果確認までIDE内で完結 REST APIのGET/POSTテストも可能(Postmanいらず) 拡張不要ですぐ現場に入れる完成度 初心者でも“環境構築で迷わない”安心感 大規模開発にも耐える安定性と豊富なリファクタ支援機能 JetBrains AI Assistant: 補完・エラー説明・テストコード生成・コミットメッセージ支援などをIDE内で完結
  15. VS Code:豊富な拡張機能で自由に 無料で利用可能/オープンソース/拡張性が非常に高い 軽量・高速・無料で導入できる開発エディタの定番 豊富な拡張機能で PHP/HTML/JS/AI開発すべてに対応可能 Git連携、ターミナル、デバッグツールも一体化 AIプラグインの導入で高機能化が可能 GitHub Copilot:コード補完、関数生成、自然言語チャット対応(Proは$10〜/

    月) CodeGPT/GeminiなどとAPIにて連携も可能 カスタマイズ性が非常に高い キーバインド/テーマ/フォーマッター/デバッガなど自分好みに設定可能 初学者からプロまで幅広く愛用される柔軟な開発環境 まず導入するなら VS Code + Copilot が鉄板の組み合わせ
  16. Cursor:AIと“会話しながら”開発できる新 時代のエディタ Cursorは VS Code をベースにしたクローンエディタ 拡張機能やショートカットも基本的にVS Codeと同じ感覚で使える .vscode 設定ファイルもそのまま使用可能

    GPT-4(またはGPT-4o)内蔵で、AIとの対話がエディタに統合されている 「この関数をもっと読みやすくして」など自然言語でコードを修正 ファイル単位だけでなく、プロジェクト全体の文脈理解も可能 AIチャット+Git連携機能が強力 差分プレビュー/コミット単位での変更説明/“理由付きリファクタ”が簡単 に 料金プラン Hobby(無料):基本操作と軽度の利用に対応 Pro($20/月):無制限リクエスト+高度なAIモデル(GPT-4o等) “vibe coding”=自然に考えながら書ける開発体験を提供
  17. マニュア ルを読ん でみる fopen — ファイルまたは URL をオープンする whileループは、PHPで最も簡単なタイプのル ープです。

    count — 変数に含まれるすべての要素、 ある いはオブジェクトに含まれる何かの数を数える fclose — オープンされたファイルポインタを クローズする これを踏まえて
  18. サンプルを そのまま動 かしてみる •http://localhost:8888/fget1.php • Warning: fopen(test.csv): Failed to open

    stream: No such file or directory in /home/www-data/fget1.php on line 3 •エラーがでるのでまず読んでみる! •すぐにAIに聞かないw
  19. AIにtest.csvを作ってもらう? 雑なプロンプト例: トラック名、セッション名、開始時間 の3フィールドのcsvファイルを20行程度サンプルで生成して トラックはトラック1-5とkeynote、セッション名はPHPカンファレンスにふさわしいもの 時間の重複はあります ChatGPTおすすめのプロンプト 以下の条件に基づき、CSV形式で20行分のサンプルデータを生成してください。 【カラム構成】 -

    トラック名:次のいずれかから選んでください("Keynote", "トラック1", "トラック2", "トラック3", "トラック4", "トラック5") - セッション名:PHPカンファレンスにふさわしい内容(例:PHPの最新動向、Laravel、セキュリティ、テスト、運用、コミュニティ活動など技術的・実践的テーマ) - 開始時間:10:00〜18:00の間で、同じ時間帯の重複はあっても構いません 【出力形式】 CSV形式で出力してください。カラム名も日本語で記載し、以下の形式で20行分を作成してください。 トラック名,セッション名,開始時間 トラック1,Laravel 11で学ぶサービス設計,11:00 トラック2,PHPと生成AIの未来,11:00 ... 【制約】 - 合計20行 - 開始時間の重複OK - セッション名は全て異なるようにしてください - 日本語のカラム名・データでお願いします
  20. エラーを解析 プロンプト: プログラムを実行したところ ここにエラー文言 と出ました。これはどんなエラーですか。初心者にわかりやす く説明してください プログラムを実行したところ Deprecated: fgetcsv(): the

    $escape parameter must be provided as its default value will change in /home/www- data/fget1.php on line 4 と出ました。これはどんなエラーですか。初心者にわかりやすく説明してください
  21. <?php function hsc(string $str) { return htmlspecialchars($str, ENT_QUOTES); } ?>

    <h1>PHPカンファレンス2025 セッション</h1> 絞り込み:<a href="list.php?room=トラック1">トラック1</a> <a href="list.php?room=トラック2">トラック2</a> <a href="list.php?room=トラック3">トラック3</a> <a href="list.php?room=トラック4">トラック4</a> <a href="list.php?room=トラック5">トラック5</a> <table border=1> <?php if (isset($_GET['room'])) { $room = $_GET['room']; } else { $room = 'トラック1'; } if (file_exists("data.csv") && ($handle = fopen("data.csv", "r")) !== FALSE) { while (($data = fgetcsv($handle, 1000, ",", '"', '')) !== FALSE) { if ($room === $data[0]) { echo "<tr>"; echo "<td>" . hsc($data[0]) . "</td>" . PHP_EOL; echo "<td>" . hsc($data[1]) . "</td>" . PHP_EOL; echo "<td>" . hsc($data[2]) . "</td>" . PHP_EOL; echo "</tr>"; } } fclose($handle); } ?> </table>
  22. PHPで以下の仕様を満たすコードを一つにまとめてください。 - CSVファイル(例: data.csv)を読み込んで、HTMLのテーブルとして表示する - テーブルには3列ある:「トラック」「セッション名」「開始時間」 - 最初の行はCSVのヘッダーとして使い、テーブルのタイトル行にする - 各列のタイトルをクリックすると、その列で昇順/降順のソートができるよう

    にする - ソート状態はURLパラメータで制御する(例:?sort=1&order=desc) - 現在ソート中の列には矢印(↑↓)を表示する - HTMLテーブルにはシンプルなCSSスタイルも含めて、見やすくしてほしい - エスケープ文字の非推奨警告を避けるため、fgetcsvの第6引数("\")も必ず指 定する - コードはそのままコピペして使えるように、完全なPHPファイルとして出力して ほしい 最後に簡単な使い方メモも書いてください(data.csvの例の内容も1つ)。
  23. https://www.techinasia.com/news/github-ceo-manual-coding-remains-key-despite-ai-boom AI生成コードにも“人の手”が欠かせない AI支援が進んでも、生成されたコードを即読み&修正す る手動スキルが重要 完全自動化信仰は危険 AIエージェントの進化があっても、「人が介入し品質を 担保する必要がある」とCEOは語る () “Vibe coding”は本質を伴わない

    自然言語主体の開発は短期的には有効でも、深い技術力 や拡張性を伴わないと警鐘を鳴らす ジュニア×シニアの組み合わせが重要 若手のAI適応力 × ベテランの設計力のバランスが、イノ ベーションの原動力 () Prompt力だけに頼らず、読み書きスキルも必須 AIに指示を出すPromptスキルと、出力を検証・改善する 力の両立が成功の鍵 「AIはアシスタント。でも、最終的に品質を決める のは人間の手と判断力」 23 Jun 2025
  24. ChatGPTに依頼する上での僕なりの注意点 1. 全てを鵜呑みにしてはいけない 2. 学校の授業でプログラミングを行った素人と考える 3. 動作確認は必要 4. セキュリティはなお必要 5.

    壁打ち、確認依頼、アイデア出しなどで活躍 6. 初期状態では情報は最新になっていないのを意識 7. php.netは依然として便利 積極的に利用しましょう。
  25. 学習計画プロンプト: 私はPHPを学習したいと思っています。 【現在のレベル】 [ ] ※例:入門書を読んだけれど難しくて挫折した。HTMLとCSSは少し触ったことがある。 【学習可能な時間(1週間あたり)】 [ ] 時間

    ※例:週に3時間(平日30分×2回+土日に1時間) 【学習期間】 [ ] ヶ月 ※例:3ヶ月 【最終目標】 [ ] ※例:PHPで自分のTODOアプリを自作できるようになりたい(タスクの追加・表示・完了チェックができ るWebアプリ) この条件で、**実現可能な週単位の学習計画**を立ててください。 ・毎週何を学ぶか ・使うべき教材やツール ・途中の中間ゴール ・ChatGPTなどのAI活用法 なども含めて提案してください。