PHP初心者に贈る、まちがえないPHPの始め方・学び方

10,152 views

Published on

PHPカンファレンス関西2015 メイントラック11:30~12:00のセッション資料です。

Published in: Technology
0 Comments
45 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
10,152
On SlideShare
0
From Embeds
0
Number of Embeds
11
Actions
Shares
0
Downloads
35
Comments
0
Likes
45
Embeds 0
No embeds

No notes for slide

PHP初心者に贈る、まちがえないPHPの始め方・学び方

  1. 1. PHP初心者に贈る、まちがえない PHPの始め方・学び方 株式会社ウィズテクノロジー 代表取締役 CEO兼CTO 杉本 展将 2015/5/30
  2. 2. プロフィール 氏名 杉本 展将 (すぎもと ひろゆき) ニックネーム:てんしょう 年齢 0x28歳 出身 南紀白浜 趣味 美味しいモノを食べる、お酒、カメラ、卓球、バイク 略歴 大学卒業後、独立系システム開発会社で開発や社員教育に携わる 数年のフリーランスを経て法人設立 お仕事 株式会社ウィズテクノロジー 代表取締役 CEO兼CTO 2001年~ デジタルハリウッド大阪校 プログラミング系講師 2011年~ デジタルハリウッド大学大学院 客員教授 2015年~ メディアサイエンス研究所 特任教授 杉本研究室 facebook facebook.com/hiroyuki.sugimoto 2
  3. 3. このセッションの目的 3 “時代遅れの情報がウェブ上にあふれている。” “PHP: The Right Way は気軽に読めるクイックリ ファレンスだ“ “PHPを使うための正式なお作法など存在しない ” "いくつかの選択肢を示して、それぞれの違いや使 い道をできる限り紹介する。" http://ja.phptherightway.com/
  4. 4. PHPで学ぶこと 4 標準関数 HTML + CSS + JS 開発環境 HTTP データベース オブジェクト指向 セキュリティ フレームワーク サーバ DI(依存性の注入) デプロイ テンプレート テスト ライブラリ 基本文法 キャッシュ バージョン管理
  5. 5. PHPをはじめる • PHP (最新版5.6) • homebrew, phpbrew(Mac) • バイナリダウンロード(Win) ※ php.netのドキュメント参照 • Webサーバ • ビルトインWebサーバ, Apache, nginx, IIS • 全部入り • XAMPP, MAMP(Mac) • 仮想環境 • VirtualBox + Vagrant 5
  6. 6. コーディングスタイル • プログラムは後から自分や他人が修正する • 決まったフォーマットでプログラムを書く • 標準規約に従う • PSR-4 (オートローダーに関する規約) • PSR-1 (基本的なコーディング規約) • PSR-2 (コーディングスタイルガイド ※PSR-1準拠前提) • フレームワークのコーディング規約 6
  7. 7. コーディングスタイルの具体例 • PSR-1 • PHPコードは「<?php ?>」及び「<?= ?>」タグを使用 • 文字コードはUTF-8, BOM無し • PSR-2 • 改行コードはLF • ファイルの最後に空行 • インデントは4スペース • ifの後ろにスペースを空けて{ → if ($a < 3) { 7
  8. 8. 依存関係の管理 • ライブラリやフレームワークの管理/インストール • PEAR (システム全体) • Composer (ひとつのプロジェクト) 8
  9. 9. データベース • mysql → mysqli • ネイティブドライバ → PDO • SQLインジェクション対策 • バインド変数を使う 9
  10. 10. プログラムが行っていること 10 入力 処理 出力 ・入力を受け取る ・ファイルを読み込む ・データベースを検索する ・計算をする ・表示形式を整える ・ファイルに書き込む ・画面に表示する
  11. 11. 1ファイルで作る場合 11 <?php // さまざまな処理をして、表示内容を変数や配列に代入しておく ?> <html> <head> <title>PHPのプログラム</title> </head> <body> 結果: <?php echo $result; ?> </body> </html>
  12. 12. <Webブラウザ> ロジックとデザインの分離 WebサーバクライアントPC 12 PHP (ロジック) テンプレート (レイアウト) HTML
  13. 13. テンプレート • ロジックとデザインの分離 • 作業を分担できる • コードの再利用 • テンプレートエンジン • Smarty • Twig 13
  14. 14. <Webブラウザ> MVCモデル WebサーバクライアントPC 14 Controller (Model,View の制御) View (レイアウト) HTML Model (ロジック、 データ連携) データ ベース
  15. 15. フレームワーク • コードの書き方や構造が統一 • 学習コストがかかる、慣れると早い • オレオレフレームワーク • CakePHP • Symfony • Laravel • Yii Framework 15
  16. 16. セキュリティ問題 • 機能的に問題ない≠セキュリティに問題ない • クロスサイトスクリプティング • SQLインジェクション • その他、いろいろ • ECサイト クレジットカード情報漏洩事件 (2014.1) • SQLインジェクションの対策漏れ • システム開発会社の責任を認める判決 → 約2262万円の損害賠償! 16
  17. 17. セキュリティ対策 • インターネットで公開前に必ずセキュリティ対策! • パスワードをハッシュ化 • サニタイズ • バリデーション • エラーレポート設定 • 他にもいろいろあるよ! 17
  18. 18. セキュリティ対策をより知りたい • IPA 「安全なウェブサイトの作り方」 • https://www.ipa.go.jp/security/vuln/websecurity.html • 「体系的に学ぶ安全なWebアプリケーションの作り方」 • [著]徳丸浩 ¥3,456 / ¥2,520 • OWASP (Open Web Application Security Project) • http://blog.owaspjapan.org/ 18
  19. 19. テスト • ユニットテスト • 関数やクラスやメソッドの確認 • PHPUnit など • 機能テスト • アプリケーションの動きを確認 • Selenium など 19
  20. 20. 書籍 20
  21. 21. コミュニティ • 関西PHPユーザーズグループ 21 http://www.kphpug.jp facebookグループ
  22. 22. Thank you! 22 Happy PHP Programming Life!

×