Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

14,327 views

Published on

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

Published in: Technology
  • Login to see the comments

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!

×