【2023最新】「php」のおすすめ本!人気ランキング

この記事では、「php」のおすすめ本をランキング形式で紹介していきます。インターネット上の口コミや評判をベースに集計し独自のスコアでランク付けしています。

いきなりはじめるPHP~ワクワク・ドキドキの入門教室

谷藤 賢一
リックテレコム
おすすめ度
100
紹介文
プログラミングは全く初めての人、他の入門書で挫折しちゃった人、つまづく所はみんな同じです。そこを徹底分析したメソッドで、全員ゴールに辿り着ける入門教室が秋葉原にあります。1日でWeb画面と簡単なDBまで作れるようになるとってもユニークな速習コース。その方法を1冊に凝縮した本書なら、いきなりの初心者でも、無理せず楽しくPHPとMySQLのエッセンスを習得できます。 1 なるほど!心の準備編-何から始めたらいいの?(とっても大切な心の準備! 挫折の落とし穴を跳び越えよう! ほか) 2 がんばろう!パソコン設定編-らくらく壁を跳び越えよう!(タダでサーバーを手に入れよう! タダでテキストエディタを手に入れよう! ほか) 3 ワクワク!プログラミング編-プログラミングは楽しい!(30分で覚えるHTML! 初めてのPHPを体験しよう! ほか) 4 ドキドキ!データベース編-あなたにもデータベースができる!(データベースはこうなってる! データベースの文字化け対策! ほか)

気づけばプロ並みPHP 改訂版--ゼロから作れる人になる!

谷藤 賢一
リックテレコム
おすすめ度
71
紹介文
プロローグ この本の狙いと読者 この本の特徴と使い方 ■Chap. 1 いろいろ準備編 1-1 とっても大切な心の準備! 1-2 タダでサーバーを手に入れよう! 1-3 タダでテキストエディタを手に入れよう! 1-4 Windows OSのこの機能はOFFにしよう! 1-5 最大の壁!文字化けを防ごう! ■Chap. 2 お店のスタッフは誰? 2-1 データベースを作成しよう! 2-2 スタッフを追加する画面を作ろう! 2-3 スタッフ情報の入力チェック画面を作ろう! 2-4 情報の追加を完了させる画面を作ろう! 2-5 スタッフ一覧画面を作ろう! 2-6 スタッフ情報の修正画面を作ろう! 2-7 好きな画面に分岐ジャンプさせよう! 2-8 スタッフの削除画面と参照画面を作ろう! ■Chap. 3 お店に商品を並べよう! 3-1 商品を追加する画面を作ろう! 3-2 ほかの画面を一気に作っちゃおう! 3-3 ワクワク♪ 商品の画像を追加しましょう! ■Chap. 4 関係者以外立ち入り禁止! 4-1 ログイン画面を作ろう! 4-2 ユーザー認証の仕組みを作ろう! 4-3 ログアウト画面を作ろう! ■Chap. 5 遊びでスキルアップ! 5-1 季節の野菜サイトを作ろう! 5-2 あの星は! 5-3 学生に戻ろう! 5-4 プログラミングの楽しさの真髄! 5-5 遊びで身に付けた技術を使って! ■Chap. 6 憧れのショッピングカートを作ろう! 6-1 まずは商品を表示しよう! 6-2 「カートに入れる」機能を作ろう! 6-3 カートの中身を見る画面を作ろう! 6-4 カートを空にする画面を作ろう! 6-5 商品の購入数を変える機能を追加しよう! 6-6 カートから商品を削除する機能を作ろう! 6-7 大切なお客様のために! ■Chap. 7 注文を受け付けよう! 7-1 注文フォームの画面を作ろう! 7-2 注文チェックの画面を作ろう! 7-3 注文登録の画面を作ろう! 7-4 注文情報をデータベースに追加しよう! 7-5 もっと安全にしよう! ■Chap. 8 Excelで注文管理したい! 8-1 注文データを日付けで選べるようにしよう! 8-2 注文データをダウンロードしよう! ■Chap. 9 お客様に会員になってもらおう! 9-1 会員登録の画面を作ろう! 9-2 会員ログインの仕組みを作ろう! 9-3 会員だけの特典「かんたん注文」の仕組みを作ろう! あとがき 改訂版あとがき 参考文献 ファイル索引 ほか ◆◆通販サイトのスクラッチ開発にチャレンジ!◆◆ 秋葉原の小さな教室で、笑いながら1日でプログラムを組んで帰る、 そんなIT講座があります。毎回教室で起こるドラマから生まれた超入門書は、 大好評を得て、多くの初心者をPHPの世界にお連れすることができました。 * * その続編である中級編を大幅改訂したのが本書です! 昨今ではWordPressやCakePHP等が普及した結果、 ゼロからシステムを組めるプログラマーが減りつつあります。 あなたは不安ではありませんか? 大丈夫です。1回、ゼロから作ってみればいいのですよ。 恐れることはありません。 PHPの入門書を卒業した方や、多少プログラミング経験のある方なら、 本書を通じて本格的なシステム開発の世界に入って行けます。 ショッピングサイトの構築を楽しく進める中で、 システム開発に必要な力が自然に身に付くように、 練りに練ったストーリーを組んであるからです。 さぁ、行ってみましょう!

WordPressユーザーのためのPHP入門 はじめから、ていねいに。[第3版] 〈WordPress 5.x/Gutenberg対応〉

水野 史土
エムディエヌコーポレーション
おすすめ度
70

よくわかるPHPの教科書 【PHP7対応版】

たにぐちまこと
マイナビ出版
おすすめ度
69
紹介文
やさしい解説に定評のあるベストセラーがPHP7に対応 やさしい解説に定評のあるベストセラーがPHP7に対応 これからプログラミングを始めたい。 Webアプリケーションを作ってみたい。 PHPを学ぼうとしたけれど、挫折したことがある。 そんな人にぴったりの入門書です。 やさしい言葉で分かりやすく書かれているので、プログラミングの用語やコードに拒否感がある人でも、すいすい読み進めることができます。プログラミングの本を読むのが気が進まない人にとっても、「この本だけは最後まで読めた」と言っていただける1冊です。 具体的には、学習者が「少しずつ理解」して「挫折しない」ように、説明の内容や難易度を工夫しました。また、項目ごとにしっかり手ごたえが得られる実習にすることで、「学ぶ楽しさ」を積み重ねながら進められるように配慮しています。 また本書の特徴として、PHPを初めて学ぶ人でも読みやすい入門書であると同時に、仕事で使うような実用に近いプログラムまで学習することができる点があります。「この本を読んで、実際にWebアプリケーションを作ってみた」という嬉しい反響もいただいています。 Chapter1では、コンピュータすら使いません。身近な文具を使って、プログラムの考え方を学びます。 Chapter2ではPHPの勉強をするための準備をします。ご自分のコンピュータにXAMPP/MAMPをインストールして、PHPを動かす環境を作ります。 Chapter3からは実際にプログラムを作りながら、学んでいきます。Part3ではPHPの文法の基本、Chapter4ではデータベース(MySQL/MariaDB)の基本を学んでいきます。短いプログラムを作りながら、プログラムを作るための考え方を鍛えます。 Chapter5からは、それまでの内容を組み合わせて、仕事ですぐにでも使える実用的なアプリケーションを制作していきます。Chapter5では、メモの管理ができるWebアプリケーションを作ります。Webブラウザから、メモの作成、表示、変更、削除ができるように機能を作ります。 Chapter6では、Twitterのようなひとこと掲示板を作ります。Chapter5で学んだ、データの作成、表示、変更、削除の機能に加え、会員登録やログインの機能を備えたアプリケーションを作ります。 入門から始めて実用レベルでの知識とスキルを身に付けるのにぴったりな1冊です。 Chapter 1 プログラミング入門 Chapter 1-1 身近な文具を使ってプログラムを考えてみよう Chapter 1-2 賢いロボットを作ろう Chapter 2 PHPを使う準備をしよう Chapter 2-1 パソコンにPHP動作環境を作る Chapter 2-2 用語を確認しよう Chapter3 PHPの基本を学ぼう Chapter 3-1 画面に文章を表示する Chapter 3-2 計算結果を表示する Chapter 3-3 画面に現在の時刻を表示する Chapter 3-4 オブジェクトを使って現在の時刻を表示する Chapter 3-5 変数を使って、計算結果を保管する Chapter 3-6 1から365までの数字を表示する Chapter 3-7 1年後までのカレンダーを作成する Chapter 3-8 曜日を日本語で表示する - 配列 Chapter 3-9 英単語と日本語の対応表を作る - 連想配列 Chapter 3-10 9時よりも前の時間の場合に、警告を表示する - if 構文 Chapter 3-11 小数を整数に切り上げる・切り下げる - ceil、floor、round Chapter 3-12 書式を整える - sprintf Chapter 3-13 ファイルに内容を書き込む - file_put_contents Chapter 3-14 ファイルの読み込み - file_get_contents Chapter 3-15 XMLの情報を読み込む - simplexml_load_file Chapter 3-16 JSONを読み込む Chapter 3-17 フォームに入力した内容を取得する Chapter 3-18 チェックボックス、ラジオボタン、リストボックス(ドロップダウンリスト)の値を取得する Chapter 3-19 複数選択可能なチェックボックス、リストボックスの値を取得する Chapter 3-20 半角数字に直して、数字であるかをチェックする Chapter 3-21 郵便番号を正規表現を使ってチェックする Chapter 3-22 別のページにジャンプする Chapter 3-23 一行ごとにテーブルセルの色を変える - 剰余算 Chapter 3-24 Cookieに値を保存する Chapter 3-25 セッションに値を保存する Chapter 3-26 電子メールを送信する Chapter 3-27 2つのトップページにランダムで誘導する - rand Chapter 3-28 ファイルアップロードを受信する Chapter4 データべースの基本を学ぼう Chapter 4-1 データベースについて Chapter 4-2 MySQLを使ってみよう Chapter 4-3 データベースを使ってみよう Chapter 4-4 データベースを理解しよう Chapter 4-5 SQLを使ってみよう Chapter 4-6 テーブルを作るSQL - CREATE Chapter 4-7 データを挿入するSQL - INSERT Chapter 4-8 データを変更するSQL - UPDATE Chapter 4-9 データを削除するSQL - DELETE Chapter 4-10 データの検索SQL - SELECT Chapter 4-11 プライマリーキー - DBで一番大切なキー Chapter 4-12 オートインクリメント - さらに便利な自動採番 Chapter 4-13 テーブルの構造を変更しよう Chapter 4-14 条件を指定しよう - WHERE Chapter 4-15 ORDER BY - データの並び替えで、ランキングも思いのまま Chapter 4-16 DATETIME型とTIMESTAMP型 Chapter 4-17 COUNT、 SUM、 MAX、 MIN - 計算・集計お手の物 Chapter 4-18 データベースの真骨頂、リレーション Chapter 4-19 GROUP BY - 複雑な集計 Chapter 4-20 LEFT JOIN、RIGHT JOIN - 外部結合 Chapter 4-21 DISTINCT、BETWEEN、IN、LIMIT - その他の便利なSQL Chapter 4-22 バックアップとリストア Chapter5 PHP+DBで本格的なWebシステムを作ろう Chapter 5-1 プロジェクトの準備 Chapter 5-2 PDO - MySQLに接続する Chapter 5-3 query - SELECT SQLを実行する Chapter 5-4 フォームからの情報を保存する Chapter 5-5 データの一覧・詳細画面を作る Chapter 5-6 接続プログラムを共通プログラムにする Chapter 5-7 件数の多いレコードを、ページを分ける「ページング」 Chapter 5-8 メモを変更する、編集画面 Chapter 5-9 いらないデータを削除する、削除機能 Chapter6 「Twitter風ひとこと掲示板」を作ろう Chapter 6-1 データベースを設計する Chapter 6-2 データベースを作る Chapter 6-3 会員登録用の画面を作る Chapter 6-4 会員登録用のプログラムを作る Chapter 6-5 周辺の画面と処理を作る Chapter 6-6 ログインの仕組みを作成する Chapter 6-7 投稿画面を作る Chapter 6-8 返信機能をつける Chapter 6-9 個別画面を作る Chapter 6-10 プログラムをすっきりさせる Chapter 6-11 URLにリンクを設置する Chapter 6-12 投稿を削除できるようにする Chapter 6-13 ページングを設置する Chapter 6-14 ログアウトを設置する

誰もがあきらめずにすむPHP超入門

西沢 夢路
SBクリエイティブ
おすすめ度
68
紹介文
難しいことはぜんぶ後回しにして、とにかく体験してみよう! 作って覚えるPHP入門書! Webアプリケーションを作るのによく使われるPHP。Webアプリにはかかせませんが、プログラム初心者がいきなりやるにはそれなりのハードルがあります。 本書はPHPをとりあえず誰でも動かせるようになるということ! を最大の目的とした「超」入門者向けの解説書です。 はじめてPHPを学ぶ! という方におすすめの解説書です。

PHPの絵本

(株)アンク
翔泳社
おすすめ度
67
紹介文
イラストだからかんたん。掲示板やアンケートページがすぐ作れる。Webアプリ作りをらくらく理解。 PHPをはじめる前に 第1章 基本的なプログラム 第2章 変数と配列 第3章 演算子 第4章 制御文 第5章 関数 第6章 文字列操作 第7章 インターネットとの連携 第8章 データの管理 付録

確かな力が身につくPHP「超」入門 (Informatics & IDEA)

松浦 健一郎
SBクリエイティブ
おすすめ度
66
紹介文
使える技術が、手に入る 「JavaScript」「Python」に続く、「確かな力が身につく」シリーズ第3弾。Webや携帯アプリで需要の高い「PHP」を解説。 Webエンジニア、フロントエンドエンジニアなど、コマースサイトの制作に携わる人を対象に、PHPの基礎構文からしっかりと解説していきます。 コマースサイトに必須のショッピングカートやログイン処理の作成から、商品管理などを行うデータベースの設定・制御法まで、Web開発の現場で求められる知識をサンプルで体験しながら学ぶことが可能です。 ■Part1 PHPで学ぶこと 1-1 PHPはどのような場面で使われているのか 1-2 PHPはどうやって動かすのか 1-3 他の言語と何が違うのか 1-4 では、何を学べばいいのか 1-5 サンプルデータのダウンロード ■Part2 環境構築と動作確認 2-1 PHPの言語環境のインストール 2-2 「Welcome」と表示する:テキストの出力 2-3 エラーが出た場合はどうするの? ■Part3 最初のPHPプログラミング 3-1 ページにメッセージを表示する 3-2 変数とリクエストパラメータの使い方 3-3 データ型と演算子 ■Part4 制御構文とコントロール 4-1 条件分岐(if)とチェックボックス 4-2 条件分岐(switch)とラジオボタン 4-3 条件分岐とドロップダウン 4-4 繰り返し(while、 for) 4-5 配列、繰り返し(for) 4-6 連想配列、繰り返し(foreach) ■Part5 関数 5-1 サイトに訪問してきた日時をメッセージとして表示する 5-2 広告画像をランダムに選んで表示する 5-3 正規表現関数 5-4 マルチバイト文字関数 5-5 ファイル出力 5-6 ファイル入力 5-7 ファイルのアップロード 5-8 メール送信 ■Part6 データベース 6-1 データベースとは 6-2 商品一覧テーブルの作成:データベースの作成 6-3 商品の表示:レコードの取得 6-4 商品の検索:レコードの検索 6-5 商品の編集:レコードの更新 ■Part7 サイト構築に使えるコード 7-1 入力した文字列を商品名に含む商品の一覧を表示する:商品検索 7-2 選択した商品の詳細情報を表示する:商品詳細表示 7-3 「カートに入れる」を実行した商品を、カートに追加する:カートに商品を追加 7-4 カート内の商品一覧を表示する:カートの表示 7-5 カート表示において「削除」を選択した商品をカートから削除する:カートから商品を削除 7-6 カート表示において「購入」を選択したとき、ログイン後ならば購入画面に進む:購入手続き 7-7 価格や送付先の確認画面を表示し、「確定」を選択すると、データベースに注文情報を登録する:購入画面 7-8 過去の購入履歴を表示する:購入履歴 7-9 指定した商品をお気に入りに登録する:お気に入りに登録 7-10 お気に入りから指定した商品を削除する:お気に入りから削除 7-11 ある商品と一緒に購入されている商品の一覧を表示する:お勧め商品 7-12 ログインする:セッション、データベースの検索 7-13 ログイン名とパスワードを登録する:セッション、データベースの更新 ■Part8 公開 8-1 サーバでアプリケーションを公開する 8-2 サーバの構築とPHPのアップロード ■Part9 ライブラリやフレームワーク 9-1 ライブラリ紹介 9-2 フレームワーク紹介

1週間でPHPの基礎が学べる本 (1週間シリーズ)

亀田 健司
インプレス
おすすめ度
65
紹介文
PHPってなんだろう?と思っているあなたでも、1週間でPHPLがちょっとだけ使えるようになれる! PHPでWEBプログラミングを始めてみたいのだけど、どんな本を読んで勉強しても分からない…理解できない…。そんな方にオススメの1冊!本書を読み進めながら、一緒にサンプルプログラムを入力してみることで、プログラミングの基礎とPHPの基礎が分かるようになり、ちょっとだけプログラムが書けるようになります。途中で読むことを挫折しないよう、ゆるいペースでナビゲートします!

独習PHP 第3版

山田 祥寛
翔泳社
おすすめ度
64
紹介文
PHPプログラミングの標準教科書『独習PHP』が、最新のPHP7に対応して登場! PHP7の基本構文から、クラス、DB連携、セキュリティ対策まで、しっかり習得! PHPプログラミングの標準教科書『独習PHP』が、最新のPHP7に対応。PHPでWebページ/アプリケーションを開発する際に必要な基礎的な知識、PHPの基本構文から、クラス、データベース連携、セキュリティまで、詳細かつ丁寧に解説します。 解説→例題→練習問題(理解度チェック)という3つのステップで、PHPによるWebアプリ開発の基礎・基本テクニックをしっかり習得できます。 実際にサンプルコードを入力し、動作を確かめながら学習することで、いっそう理解が深まります。「PHPを一から学びたい・しっかり基礎固めをしたい」「PHPでWebアプリを作りたい」という方におすすめの1冊です。 第1章 イントロダクション 第2章 PHPの基本 第3章 演算子 第4章 制御構文 第5章 組み込み関数 第6章 ユーザ定義関数 第7章 標準クラスライブラリ 第8章 リクエスト情報 第9章 データベース連携 第10章 オブジェクト指向構文 第11章 セキュリティ対策

最初に「読む」PHP

クジラ飛行机
ソシム
おすすめ度
64
紹介文
読んで楽しいPHPプログラミング解説書。基本的な部分にしぼってしっかり丁寧に解説。ポイントが理解しやすいように、イラストや図版で動作の流れを説明している。 01 PHPについて学ぼう(PHPでできること プログラミングとは何だろう?) 02 開発環境を準備しよう(開発環境を整えよう XAMPPをインストールしよう(Windows編 Mac OS X編) ほか) 03 PHPの基本を覚えよう(PHPことはじめ ユーザーと対話しよう ほか) 04 PHPのいろいろな機能を使ってみよう(日付や時間の処理について ファイル処理について ほか) 05 データベースとの連携を学ぼう(データベースについて PHPからSQLを使う)

よくわかるPHPの教科書 【PHP5.5対応版】

たにぐち まこと
マイナビ
おすすめ度
63
紹介文
1 プログラム入門(身近な文具を使ってプログラムを考えてみよう 賢いロボットを作ろう) 2 PHPの準備(レンタルサーバーを利用して環境を作る パソコンにPHP動作環境を作る ほか) 3 PHPの基本(データの取得と表示 制御 ほか) 4 データベースの基本(導入 SQLの基本 ほか) 5 実用的なプログラムの制作(PHP+DBで本格的なWebシステムを作る 「Twitter風ひとこと掲示板」を作成する ほか)

イラストでよくわかるPHP はじめてのWebプログラミング入門

岡本 雄樹
インプレス
おすすめ度
62
紹介文
Webプログラミングのはじめの一歩。フォームや掲示板の作成を通して、PHPの基礎を習得しよう。 1章 はじめてのWebプログラミング 2章 プログラミングのキホン 3章 占いアプリを作成しよう 4章 フォームと連携させよう 5章 掲示板アプリを作成しよう 付録 開発に役立つ補足情報

確かな力が身につくPHP「超」入門 第2版

松浦健一郎 司ゆき
SBクリエイティブ
おすすめ度
61
紹介文
やさしい説明で確かな力が身につく!トコトン親切な入門書 PHPの基礎から、コマースサイトの作成に必要な知識まで、しっかりと解説します。 ショッピングカートやログイン処理の作成から、商品管理などを行うデータベースの設定・制御法まで、Web開発の現場で求められる知識をサンプルで体験しながら学べます。 目次 Chapter1 イントロダクション Chapter2 環境構築と動作確認 Chapter3 最初のPHPプログラミング Chapter4 制御構造とコントロール Chapter5 関数を使いこなす Chapter6 データベースの基本と操作 Chapter7 実用的なスクリプト Chapter8 Webアプリケーションとして公開する Chapter1 イントロダクション Chapter2 環境構築と動作確認 Chapter3 最初のPHPプログラミング Chapter4 制御構造とコントロール Chapter5 関数を使いこなす Chapter6 データベースの基本と操作 Chapter7 実用的なスクリプト Chapter8 Webアプリケーションとして公開する

PHPフレームワークLaravel入門 第2版

津耶乃, 掌田
秀和システム
おすすめ度
61
紹介文
 2017年刊行後大好評の『PHPフレームワークLaravel入門』が2019年9月リリースのバージョン6に対応した改訂版! PHPフレームワークのロングセラー定番解説書が、新バージョン対応で改訂! 本書は、Laravelのインストールから、フレームワークの中心になるModel-View-Controller(MVC)の使い方、開発に役立つ各種機能をわかりやすく解説した入門書です。新しいディレクティブ(@csrf/@error)、バリデーションルール(増補解説+自作)、Bootstrapによるぺジネーションリンク、Auth(Laravel/uiパッケージ)の使い方などの項目を追加しました! Chapter 1 Laravelを準備する  1-1 PHPフレームワークとLaravel   PHP開発の問題点   フレームワークの導入   Laravelの特徴   Laravelのサイト   Composerについて   Laravelをインストールする   Laravelのバージョンについて  1-2 Laravelを使ってみる   Laravel開発の手順   プロジェクトの作成   アプリケーションを実行する   XAMPPにデプロイする   指定のアドレスで公開する Chapter 2 ルーティングとコントローラ  2-1 ルーティング   アプリケーションの構成   「app」フォルダについて   ルーティングと「routes」フォルダ   ルート情報の記述   トップページのルート情報   ルート情報を追加する   HTMLを出力する   ヒアドキュメントを使う   ルートパラメータの利用   必須パラメータと任意パラメータ  2-2 コントローラの利用   MVCとコントローラ   コントローラの作成   HelloController.phpをチェックする   アクションを追加する   ルートパラメータの利用   複数アクションの利用   シングルアクションコントローラ   リクエストとレスポンス   RequestおよびResponse Chapter 3 ビューとテンプレート  3-1 PHPテンプレートの利用   ビューについて   PHPテンプレートを作る   ルートの設定でテンプレートを表示する   コントローラでテンプレートを使う   値をテンプレートに渡す   ルートパラメータをテンプレートに渡す   クエリー文字列の利用  3-2 Bladeテンプレートを使う   Bladeを使う   フォームを利用する   CSRF対策について   アクションの用意   POSTのルート設定  3-3 Bladeの構文   値の表示   @ifディレクティブ   特殊なディレクティブ   繰り返しのディレクティブ   @break と @continue   $loopによるループ変数   @phpディレクティブについて  3-4 レイアウトの作成   レイアウトの定義と継承   @sectionと@yield   ベースレイアウトを作成する   継承レイアウトの作成   コンポーネントについて   コンポーネントを作成する   サブビューについて   @eachによるコレクションビュー  3-5 サービスとビューコンポーザ   ビューコンポーザとは?   サービスとサービスプロバイダ   HelloServiceProviderを作成する   クロージャでコンポーザ処理を作る   サービスプロバイダの登録   ビューコンポーザを利用する   ビューコンポーザクラスの作成 Chapter 4 リクエスト・レスポンスを補完する  4-1 ミドルウェアの利用   ミドルウェアとは?   ミドルウェアを作成する   HelloMiddlewareクラス   HelloMiddlewareを修正する   ミドルウェアの実行   ビューとコントローラの修正   リクエストとレスポンスの流れ   レスポンスを操作する   グローバルミドルウェア   ミドルウェアのグループ登録  4-2 バリデーション   ユーザー入力時の問題   バリデーションを利用する   バリデーションの基本処理   エラーメッセージと値の保持   フィールドごとにエラーを表示   @errorディレクティブを使う   バリデーションの検証ルール  4-3 バリデーションをカスタマイズする   フォームリクエストについて   フォームリクエストの作成   HelloRequestクラスの基本コード   メッセージのカスタマイズ   バリデータを作成する   クエリー文字列にバリデータを適用する   エラーメッセージのカスタマイズ   条件に応じてルールを追加する   オリジナルバリデータの作成   HelloValidatorを作成する   HelloValidatorのルールを使用する   Validator::extendを利用する   バリデーションルールを作る   Myruleを使ってみる  4-4 その他のリクエスト・レスポンス処理   CSRF対策とVerifyCsrfToken   クッキーを読み書きする   リダイレクトについて Chapter 5 データベースの利用  5-1 データベースを準備する   モデルとデータベース   Laravelのアプローチ   SQLiteデータベースを準備する   DB Browser for SQLiteの導入   DB Browserのインストール   DB Browserを起動する   データベースファイルを作る   テーブルを作成する   SQL利用の場合   ダミーのレコードを追加する   DB利用のための手続き   SQLiteの設定   MySQL/PostgreSQLの設定   .envの環境変数について  5-2 DBクラスの利用   DBクラスとは?   パラメータ結合の利用   DB::insertによるレコード作成   DB::updateによる更新   DB::deleteによる削除   SQLクエリがすべて?  5-3 クエリビルダ   クエリビルダとは?   DB::tableとget   指定したIDのレコードを得る   演算記号を指定した検索   whereとorWhere   whereRawによる条件検索   並び順を指定する「orderBy」   offsetとlimit   insertによるレコード追加   updateによるレコード更新   deleteによるレコード削除  5-4 マイグレーションとシーディング   マイグレーションとは?   マイグレーションファイルの生成   マイグレーション処理について   テーブル生成の処理   テーブルの削除処理   マイグレーションを試す   シーディングについて   シーダーファイルの作成   シーディング処理について   シーダーファイルの登録   シーディングを実行する Chapter 6 Eloquent ORM  6-1 Eloquentの基本   ORMとは?   モデルを作成する   モデルクラスのソースコード   PersonControllerを作成する   index.blade.phpを作成する   Personモデルで全レコードを得る   Personクラスにメソッドを追加する   IDによる検索  6-2 検索とスコープ   whereによる検索   スコープの利用   ローカルスコープについて   nameをスコープにする   スコープを組み合わせる   グローバルスコープについて   グローバルスコープを作成する   Scopeクラスを作成する   ScopePersonクラスを作る  6-3 モデルの保存・更新・削除   モデルの新規保存   モデルを修正する   add.blade.phpを作成する   addおよびcreateアクションを追記する   保存処理の流れ   モデルを更新する   editおよびupdateアクションを追記する   モデルの削除   モデルとDBクラスの共通性  6-4 モデルのリレーション   モデルのリレーションとは?   boardsテーブルを利用する   マイグレーションの作成   モデルの作成   BoardControllerの作成   テンプレートの作成   2つのテーブルの関係について   has One結合   has Many結合   belongs To結合   関連レコードの有無   withによるEagerローディング Chapter 7 RESTfulサービス/セッション/ペジネーション/認証/テスト  7-1 リソースコントローラとRESTful   RESTfulとは?   マイグレーションの作成   モデルの作成   シードの作成   シードの実行   RESTコントローラの作成   リソースコントローラについて   indexおよびshowを作成する   レコードの追加   フォームを/hello/restに埋め込む   RESTfulサービスにするために  7-2 セッション   セッションについて   セッションを利用する   セッション利用アクションを作る   データベースをセッションで使う   セッションの保存先をデータベースに変更する   セッション用マイグレーションの作成  7-3 ペジネーション   ペジネーションとは?   DBクラスとsimplePaginate   ページの表示を作成する   DBクラスとモデル   ソート順を変更する   paginateメソッドの利用   リンクのテンプレートを用意する   Bootstrapの利用について  7-4 ユーザー認証   認証機能とAuth   Authをセットアップする   Userモデルクラスについて   /helloでログインをチェックする   Authの認証関係ページ   特定ページの保護   ログイン処理の実装  7-5 ユニットテスト   ユニットテストとPHPUnit   テスト用データベースの準備   ダミーレコードの用意   ユニットテストのスクリプト作成   一般的な値のテスト   指定アドレスにアクセスする   データベースをテストする   ユニットテスト以外のテスト  7-6 今後の学習   フロントエンドとの連携   サービス関連   キューとジョブおよびタスク   Artisanコマンドの開発

独習PHP 第4版

山田 祥寛
翔泳社
おすすめ度
61
紹介文
PHPプログラミングの標準教科書『独習PHP』が、最新のPHP8に対応して登場! 5年ぶりのメジャーバージョンアップに合わせて大幅改訂! PHP8の基本構文から、クラス、DB連携、セキュリティ対策まで、しっかり習得。 PHPプログラミングの標準教科書『独習PHP』が、最新のPHP8に対応。 PHPでWebページ/アプリケーションを開発する際に必要な基礎的な知識、 PHPの基本構文から、クラス、データベース連携、セキュリティまで、 詳細かつ丁寧に解説します。 解説→例題→練習問題(理解度チェック)という3つのステップで、 PHPによるWebアプリ開発の基礎・基本テクニックをしっかり習得できます。 実際にサンプルコードを入力し、動作を確かめながら学習することで、 いっそう理解が深まります。 「PHPを一から学びたい・しっかり基礎固めをしたい」 「PHPでWebアプリを作りたい」という方におすすめの1冊です。 第1章 イントロダクション 第2章 PHPの基本 第3章 演算子 第4章 制御構文 第5章 組み込み関数 第6章 ユーザー定義関数 第7章 標準クラスライブラリ 第8章 リクエスト情報 第9章 データベース連携 第10章 オブジェクト指向構文 第11章 高度なプログラミング

PHP本格入門[上] ~プログラミングとオブジェクト指向の基礎からデータベース連携まで

大家 正登
技術評論社
おすすめ度
60
紹介文
Webアプリケーションの定番言語であるPHPの基礎から実践までを、上下巻のフルボリュームで集大成。 「この目的を実現するためには、どの文法テクニックが適合しやすいだろう?」 「このプログラムをより読みやすくするために、どんなアプローチができるだろう?」 といったことを思考しつつ、「とりあえずは動く」だけで終わらない、現場に求められる品質を形にするための知識とテクニックを解説します。 ■■1章 はじめてのPHP ■1-1 Webの仕組みとPHPの役割 1-1-1 Webページを動的に組み立てるためのプログラム言語 ― PHP 1-1-2 ラッキーカラーをPHPで動的に表示する 1-1-3 PHPはサーバー上で実行される、サーバーサイド言語 1-1-4 PHPはしなやかなプログラム言語 ― 他言語との比較 1-1-5 HTMLの基本的な書式を理解する 1-1-6 レイアウトはHTMLで、視覚表現はCSSで ■1-2 WebサーバーとWebクライアントはどのようにコミュニケーションをとるのか ― HTTPリクエストとHTTPレスポンス 1-2-1 Webクライアントからのページ要求 ― HTTPリクエスト 1-2-2 Webサーバーからのページ応答 ― HTTPレスポンス ■1-3 WebサーバーとPHP 1-3-1 Webサーバーソフトウェアを使ってOSにWebサーバー機能をもたせる 1-3-2 PHPの2つの実行方法 ― CGI版とCLI版 ■1-4 XAMPPによる開発環境のセットアップ 1-4-1 Windows版XAMPPをインストールする 1-4-2 Apacheを起動する 1-4-3 ダウンロードファイルを展開する 1-4-4 php.iniを設定する 1-4-5 コマンドラインでPHPを実行する ― CLI版PHP ■1-5 ベーシックなPHPプログラム 1-5-1 PHPプログラムはPHPタグの中に書く 1-5-2 PHPの命令文はセミコロンで終わらせる 1-5-3 プログラマーのためのヒントを残す ― コメント 1-5-4 URLとファイルパスの関係を理解する ― localhostドメインとドキュメントルート ■■2章 PHPの基本構文 ■2-1 変数を使って値を出し入れする ― 代入と出力 2-1-1 流動的なデータを持ち運ぶ ― 変数 2-1-2 変数の命名規則 2-1-3 変数の値を出力する ― echo命令、print命令 2-1-4 デバッグのために変数の情報を出力する ― var_dump命令 ■2-2 さまざまな形式の値を取り扱う ― データ型 2-2-1 単一のデータを保存する ― スカラー変数とデータ型 2-2-2 文字列データの扱い(1) ― 固定値と変数値をつなぐ 2-2-3 文字列データの扱い(2) ― クオート内でクオートを使う 2-2-4 文字列データの扱い(3) ― エスケープシーケンスで特殊な文字を表す 2-2-5 文字列データの扱い(4) ― 改行コードをPHP_EOLで切り替える 2-2-6 文字列データの扱い(5) ― 長い文字列にはヒアドキュメントを使う 2-2-7 値のデータ型を変換する ― キャスト 2-2-8 複数の値を順序立てて保存する ― 配列 2-2-9 複数の値をラベル付きで保存する ― 連想配列 2-2-10 PHPにとっては配列も連想配列も同じ 2-2-11 配列を多階層にする ― 多次元配列 2-2-12 配列/連想配列の要素数を得る ― count関数 2-2-13 配列の各要素をスカラー変数に割り当てる ― list() 2-2-14 特別な意味を持つ値に名前を付ける ― 定数 2-2-15 PHPにより値が設定される定数 ― マジック定数 ■2-3 役割を持つ記号たち ― 演算子 2-3-1 四則演算などの計算をする ― 代数演算子、加算子/減算子 2-3-2 配列を合成する2つの方法 ― 加算の演算子(+)とarray_merge関数 2-3-3 浮動小数点数の計算 ― 丸め誤差への対応 2-3-4 丸め誤差が起こる原因は、10進数→2進数の対応づけが正確にできないことにある 2-3-5 すでにある変数値に演算を加える ― 複合演算子 2-3-6 2つの変数で1つの値を共有する ― リファレンス渡し 2-3-7 値を比較する ― 比較演算子 2-3-8 浮動小数点数を比較する 2-3-9 2つの値の等価と大小を同時に比較する ― 宇宙船演算子 2-3-10 比較結果に応じた値を選ぶ ― 条件演算子(三項演算子、null合体演算子) 2-3-11 2つ以上の条件を組み合わせる ― 論理演算子 2-3-12 論理演算子の優先順位をコントロールする 2-3-13 論理演算子と命令文の組み合わせで、シンプルな条件分岐を表す 2-3-14 ビット列で複数の真偽値をまとめて表す ― ビット演算子 ■2-4 条件によって処理を切り替える ― 条件分岐 2-4-1 シンプルな条件分岐 ― if構文 2-4-2 枝分かれした条件分岐 ― if~elseif構文 2-4-3 条件にマッチしなかった場合の分岐 ― if~else構文 2-4-4 条件式の表現をより豊かにする 2-4-5 条件分岐による空欄チェック処理 ― PHPの自動型変換に気をつける 2-4-6 変数値による条件分岐 ― switch構文 2-4-7 異常時にプログラムを強制終了する ― exit命令、die命令 ■2-5 同じ処理を繰り返す ― ループ処理 2-5-1 配列/連想配列に対する繰り返し処理 ― foreachループ 2-5-2 それぞれの要素をループ中に書き換える ― リファレンス渡しによるforeach 2-5-3 リファレンス変数のunsetを忘れると何が起こるか 2-5-4 回数を指定した繰り返し処理 ― forループ 2-5-5 forループを配列のループ処理に使う 2-5-6 制御構文はネストできる 2-5-7 ある条件を満たす間の繰り返し処理 ― whileループ 2-5-8 繰り返し処理の制御 ― break命令、continue命令 2-5-9 制御構文の開始と終了をわかりやすく書く ― endif、endforeach、endfor、endwhile ■2-6 一連のプログラム処理を意味のある単位でまとめる ― 関数 2-6-1 関数の基本的な書き方 ― 関数名、引数、戻り値 2-6-2 return命令は関数を途中で終わらせる 2-6-3 関数から別の関数をコールする 2-6-4 関数内で引数を書き換えた時の挙動 ― 値渡しとリファレンス渡し 2-6-5 その関数は、汎用的か? 2-6-6 関数の内と外で、見えている変数が違う ― 変数のスコープ 2-6-7 引数と戻り値のデータ型を指定する ― 型宣言 2-6-8 データ型の暗黙的な変換を防ぐ ― declare文とstrict_types 2-6-9 declare命令はプログラムファイル単位でしか適用できない 2-6-10 オプショナルな引数を定義する ― デフォルト引数 2-6-11 引数の数を限定しない ― 可変長引数リスト 2-6-12 値として受け渡しできる関数 ― クロージャー 2-6-13 クロージャー外の変数をuseキーワードで引き継ぐ 2-6-14 クロージャーをcallable型の引数として渡す 2-6-15 2つ~3つ程度の処理バリエーションなら、クロージャーより条件分岐を選ぶ ■2-7 共通部品を外部ファイル化し、プログラム間で共有する ― require命令、include命令 2-7-1 require_once命令でPHPプログラムを読み込む 2-7-2 読み込み対象のファイルは絶対パスで指定する 2-7-3 include命令でWebページのパーツHTMLを読み込む 2-7-4 PHPプログラムだけのファイルでは、PHPタグを閉じない ■2-8 PHP実行時のオプション設定 2-8-1 オプション設定の方法1 ― php.iniで指定する 2-8-2 オプション設定の方法2 ― .htaccessで指定する 2-8-3 オプション設定の方法3 ― Apacheの設定ファイルhttpd.confで指定する 2-8-4 オプション設定の方法4 ― ini_set関数で指定する 2-8-5 オプションの設定方法と適用される範囲 2-8-6 オプションによって使える指定方法が異なる ― PHP_INI_*モード 2-8-7 よく扱う実行時オプション一覧 2-8-8 エラーレベルを制御するオプション ― error_reportingオプションとE_*定数 2-8-9 開発サーバーと本番サーバーでのエラーレベル設定 ■■3章 プログラムを部品化し、拡張に強いアプリケーションを作る ― オブジェクト指向 ■3-1 オブジェクト指向 ― アプリケーションの品質をゆらぎにくくする技術 3-1-1 オブジェクト指向がもたらすメリット 3-1-2 処理を役割分担する ― クラス 3-1-3 クラスに状態を持たせる ― プロパティ 3-1-4 クラスにふるまいを持たせる ― メソッド 3-1-5 クラスに命を吹き込む ー インスタンス 3-1-6 どんなものがクラスになりうるか ― ものと概念と呼び名 ■3-2 PHPを使ったオブジェクト指向の実装 3-2-1 クラスを定義する 3-2-2 プロパティを定義する 3-2-3 メソッドを定義する 3-2-4 インスタンス化する ― newキーワード 3-2-5 インスタンスを別のクラスに渡す 3-2-6 1つの役割が、複数のクラスにまたがらないようにする 3-2-7 インスタンス化された時の初期化処理をおこなう ― コンストラクタ 3-2-8 プロパティとメソッドのアクセス権を指定する ― アクセス修飾子 3-2-9 プロパティはprivateが基本 ― アクセサメソッド 3-2-10 クラス固有の定数を持たせる ― オブジェクト定数 3-2-11 インスタンスの状態に左右されないメソッド ― 静的メソッド 3-2-12 プログラム処理全体でクラスの1つの状態を共有する ― 静的プロパティ 3-2-13 静的メソッド/プロパティは自クラスのインスタンスメソッド/プロパティにアクセスできない ■3-3 クラスに親子関係を持たせる ― 抽象クラスと継承 3-3-1 抽象クラスで共通概念を定義し、継承で現実化する 3-3-2 継承に適しているかを判断する ― ●●は▲▲である 3-3-3 抽象クラス/抽象メソッドを定義する ― abstractキーワード 3-3-4 スーパークラスを継承する ― extendsキーワード 3-3-5 スーパークラスの型を使って、サブクラスをひとまとめに扱う 3-3-6 スーパークラスのメソッドを上書きする ― オーバーライド 3-3-7 オーバーロードはPHPでは許可されていない 3-3-8 継承におけるコンストラクタの扱い 3-3-9 スーパークラスのメソッドを呼び出す ― parentキーワード 3-3-10 継承またはオーバーライドをさせない ― finalキーワード ■3-4 クラスのメソッド定義を「約束」させる ― インターフェースと実装 3-4-1 インターフェースの文法上の性質 3-4-2 インターフェースは、ルールに従っていることを約束させるために使う 3-4-3 インターフェースを定義する 3-4-4 インターフェースを実装する ― implementsキーワード 3-4-5 インターフェースの型を使って、実装クラスをひとまとめに扱う ■3-5 横断的で定形的な処理をクラスに挿し込む ― トレイト 3-5-1 プロパティ名/メソッド名のバッティングを解決する ― insteadofキーワード、asキーワード 3-5-2 トレイトとクラスは密な関係を生む ■3-6 名前空間を使って、関連するクラス群をカテゴリー分けする 3-6-1 名前空間を定義する ― namespaceキーワード 3-6-2 名前空間に所属するクラスを呼び出す 3-6-3 名前空間に所属するクラスをあらかじめインポートする ― useキーワード 3-6-4 同じ名前のクラスにエイリアスを与えてインポートする ― asキーワード 3-6-5 2つ以上のクラスをまとめてインポートする ■3-7 イレギュラーなケースに対処する ― 例外処理 3-7-1 Exceptionクラスのプロパティ/メソッド 3-7-2 例外をスローする ― throw命令 3-7-3 例外をキャッチする ― try~catch~finallyブロック 3-7-4 呼び出し元のさらに呼び出し元に例外が伝わる ― 例外の伝播 3-7-5 Exceptionクラスを継承して独自の例外クラスを作る 3-7-6 例外の種類に応じた処理をする ― catchブロックをつなげる 3-7-7 PHPの標準クラスも例外をスローする 3-7-8 PHPにあらかじめ用意された例外クラス ― LogicExceptionとRuntimeException ■3-8 クラスの操作に自動で反応するメソッド ― マジックメソッド 3-8-1 アクセス不能プロパティが読み書きされた時にコールされる__get()、__set() 3-8-2 インスタンスが出力された時に文字列表現を返すための__toString() ■3-9 インスタンスとの付き合い方 ― オブジェクト型変数の性質 3-9-1 オブジェクト型の変数はリファレンスである 3-9-2 インスタンスをコピーする ― cloneキーワード 3-9-3 オブジェクト型のプロパティをディープコピーする ― マジックメソッド__clone 3-9-4 インスタンス同士を比較する 3-9-5 インスタンスの型をチェックする ― instanceofキーワード ■■4章 アプリケーションの機能をより豊かにする ― 内部関数/SPLクラス ■4-1 関数とクラスの種類 ― プログラマーが定義したもの/あらかじめ用意されているもの 4-1-1 汎用的な処理が定義された関数群 ― 内部関数 4-1-2 汎用的な処理が定義されたクラス群 ― 定義済クラスとSPL 4-1-3 関数の構文を理解する ■4-2 文字列を扱う ― 文字列処理のための関数 4-2-1 内部文字エンコーディングを取得または設定する ― mb_internal_encoding 4-2-2 文字を検索する ― mb_strpos、mb_strrpos 4-2-3 文字列の一部を得る ― mb_substr、mb_strstr 4-2-4 文字列を置換する ― str_replace 4-2-5 文字列を区切り文字で分割する ― explode 4-2-6 文字列をパディングする ― str_pad 4-2-7 字種を変換する ― mb_convert_case、mb_convert_kana 4-2-8 文字コードを変換する ― mb_convert_encoding、mb_convert_variables 4-2-9 指定した幅で文字列を丸める ― mb_strimwidth 4-2-10 文字列の前後にあるスペースなどを取り除く ― trim 4-2-11 バイナリデータを文字列に変換する ― base64_encode、base64_decode 4-2-12 URLで使える文字列に変換する ― urlencode、urldecode 4-2-13 URLを要素に分け、クエリ文字列を解析/生成する ― parse_url、parse_str、http_build_query ■4-3 正規表現を使ったパターンマッチング 4-3-1 正規表現で文字列を検索する ― preg_match 4-3-2 正規表現で文字列を置換する ― preg_replace 4-3-3 正規表現による文字列の分割 ― preg_split 4-3-4 正規表現のエスケープ ― preg_quote ■4-4 数値を扱う ― 数値処理のための関数 4-4-1 最小値/最大値を得る ― min、max 4-4-2 四捨五入、切り上げ、切り捨てする ― round、ceil、floor 4-4-3 数値をフォーマットする ― number_format 4-4-4 浮動小数点数を正確に計算する ― BCMath 4-4-5 基数を相互に変換する ― base_convert 4-4-6 バイナリデータを可視化する ― bin2hex、hex2bin ■4-5 日付/時間を操作する ― DateTimeクラス 4-5-1 DateTimeクラスの基本的な使い方 ― setDate、setTime、modify、setTimezone、format 4-5-2 日付をフォーマットする ― DateTime::format 4-5-3 日付を比較する ― DateTimeインスタンスと比較演算子 4-5-4 期間に重なりがあるかを判定する 4-5-5 ちょっとした日時操作のための手軽に使える内部関数 ― time、strtotime、date ■4-6 配列/連想配列を操作する 4-6-1 配列の要素を追加/削除する ― array_push、array_(un)shift、array_merge、array_pop、array_slice、unset 4-6-2 連想配列のキーのみ、値のみを取得する ― array_keys、array_values 4-6-3 全要素を対象に処理をほどこす ― array_map、array_walk 4-6-4 連想配列の配列から指定したキーを持つ値のみ抽出する ― array_column 4-6-5 区切り文字列で配列を文字列化する ― implode 4-6-6 配列をソートする ― sort、rsort、ksort、krsort 4-6-7 配列をユーザ定義のルールでソートする ― usort 4-6-8 配列の要素数を調べる ― count 4-6-9 範囲指定で配列を作成する ― range ■4-7 ファイル/ディレクトリを扱う 4-7-1 パス文字列からファイル名、ディレクトリ名を取得する ― basename、dirname、realpath、pathinfo 4-7-2 ファイルの存在を確認する ― file_exists 4-7-3 ファイルをコピー/移動/削除する ― copy、rename、unlink 4-7-4 ファイルから読み込む ― file、file_get_contents、readfile 4-7-5 ファイルに書き込む ― file_put_contents 4-7-6 ファイルにアクセスする ― touch、file(c|m|a)time 4-7-7 ファイル種別MIMEタイプを調べる ― finfo_file 4-7-8 ディレクトリ操作する ― mkdir、rmdir 4-7-9 ファイルをパターンで検索する ― glob ■4-8 ファイル操作をクラスでおこなう ― SplFileObjectクラス、DirectoryIteratorクラス 4-8-1 ファイルを読み書き用にオープンする ― SplFileObject::__construct、setFlags 4-8-2 CSVファイルを読み込む ― SplFileObject::READ_CSV定数 4-8-3 ファイルに書き出す ― SplFileObject::fwrite、fputcsv 4-8-4 ファイルのメタ情報を取得する 4-8-5 ディレクトリを調べる ― DirectoryIterator ■4-9 データの妥当性をチェックする 4-9-1 データ型をチェックする ― is_* 4-9-2 日付をチェックする ― checkdate 4-9-3 空であることをチェックする ― empty 4-9-4 変数や配列キーの存在をチェックする ― isset、array_key_exists 4-9-5 配列に値が存在するかをチェックする ― in_array 4-9-6 あるクラスのインスタンスかどうかをチェックする ― instanceofキーワード 4-9-7 クラス、関数、メソッドの存在をチェックする ― class_exists、function_exists、method_exists、is_callable ■4-10 ランダムな値を生成する ― 乱数 4-10-1 ランダムな数値を生成する ― random_int 4-10-2 ランダムなバイト列を生成する ― random_bytes、openssl_random_pseudo_bytes ■4-11 データを安全に取り扱う ― ハッシュ化と暗号化 4-11-1 ハッシュ化の仕組み ― ソルト、ストレッチング 4-11-2 暗号化の仕組み ― キーを使って金庫を開け閉めする 4-11-3 パスワードをハッシュ化する ― password_hash、password_verify 4-11-4 ファイルのハッシュ値をもとに、誤りチェックする ― hash_file 4-11-5 データを暗号化/復号する ― openssl_*関数 ■4-12 コマンドラインプログラムの実行時オプションを制御する ― コマンドライン引数 4-12-1 コマンドライン引数を取得する ― getopt 4-12-2 コマンドラインプログラムの挙動を実行時オプションによって変える ■4-13 メールを送信する 4-13-1 スパムメール対策のために、メール送信を外部Webサービスに任せる選択肢もある 4-13-2 メールを送信する ― mb_send_mail ■4-14 OSコマンドをPHPから実行する 4-14-1 汎用的な処理のほとんどは、PHPプログラムでも書ける 4-14-2 OSに依存する処理を条件分岐する 4-14-3 OSコマンドを呼び出す ― system、exec、shell_exec 4-14-4 OSコマンドの引数をエスケープする ― escapeshellarg ■4-15 デバッグに役立つ情報を得る 4-15-1 バックトレース情報を取得する ― debug_backtrace 4-15-2 メモリ情報を取得する ― memory_get_usage、memory_get_peak_usage ■■5章 PHPによるWebアプリケーションの実装 ■5-1 入力フォームを介したデータ送受信 5-1-1 送信したい入力フォームをHTMLで定義する 5-1-2 入力フォームの入力値をPHPで受信する ― スーパーグローバル変数$_GET、$_POST 5-1-3 $_GETと$_POSTの両方を兼ねる$_REQUESTと、request_orderオプション 5-1-4 HTMLとして意味のある記号をHTMLエンティティに変換する ― htmlspecialchars関数 5-1-5 GETメソッドはデータを取得する時に使う 5-1-6 POSTメソッドはデータを投稿する時に使う 5-1-7 アンカータグ中のGETパラメータ値はURLエンコードする ■5-2 リクエストヘッダ/レスポンスヘッダ情報の読み書き 5-2-1 HTTPレスポンスの構造 ― ヘッダとボディ 5-2-2 HTTPステータスコードをPHPから送出する 5-2-3 別のURLにリダイレクトさせる ― Locationヘッダ 5-2-4 メディア形式を指定して出力する ― Content-Typeヘッダ 5-2-5 サーバー情報を取得する ― $_SERVER変数 ■5-3 クッキーを使ってクライアントPCに情報を保存する 5-3-1 さまざまなデータの保存方式 ― クッキー、セッション、データベース 5-3-2 Set-Cookieヘッダの属性を知る 5-3-3 PHPからクッキーを送出する ― setcookie関数 5-3-4 保存されたクッキーをGoogle Chromeで確認する 5-3-5 保存されたクッキーをFirefoxで確認する 5-3-6 配列形式でクッキーを出力する 5-3-7 クッキーを上書きする 5-3-8 クッキーを削除する 5-3-9 Webブラウザが送信したクッキーデータをPHPで読み取る ― $_COOKIE変数 5-3-10 クッキーを使って「最近アクセスしたページ」を実装する 5-3-11 自動ログイン機能をクッキーで実現する ■5-4 セッション変数を使ってサーバー上に情報を保存する 5-4-1 セッション変数の仕組みと使いみち 5-4-2 セッション管理のための関数たち ― session_*関数 5-4-3 セッションに関するphp.iniの実行時オプション 5-4-4 セッションがタイムアウトするまでの時間を設定する ― session.gc_*オプション 5-4-5 お問い合わせ画面のプログラムを読解する ■5-5 ファイルアップロード処理 5-5-1 アップロードフォームを定義する 5-5-2 アップロードファイルを受信する ― スーパーグローバル変数$_FILES ■■6章 リレーショナルデータベースを使った体系的なデータ管理 ■6-1 体系的なデータ管理を実現するソフトウェア ― リレーショナルデータベース 6-1-1 データを管理する単位 ― テーブル、レコード、カラム 6-1-2 データを扱うための言語 ― SQL ■6-2 SQLでデータベースを操作する 6-2-1 phpMyAdminを使ってMariaDBを操作する 6-2-2 テストデータをデータベースに投入する 6-2-3 データベースを作成する ― CREATE DATABASE構文 6-2-4 テーブルを作成する ― CREATE TABLE構文 6-2-5 厳密モード(STRICT_ALL_TABLES)で、文字数オーバー時にエラーを発生させる 6-2-6 バイナリデータを保存するBLOB型 6-2-7 カラムごとにオプションを指定する 6-2-8 レコードを検索する ― SELECT構文 6-2-9 レコードを集計する ― 集約関数 6-2-10 ページネーションのためのSELECT構文テクニック ― ORDER BY、LIMIT、OFFSET句 6-2-11 レコードを更新する ― UPDATE構文 6-2-12 レコードを新規作成する ― INSERT構文 6-2-13 レコードを削除する ― DELETE構文 6-2-14 照合順序で大文字/小文字の区別を指定する ■6-3 PHPプログラムからデータベース操作する ― PDOの利用 6-3-1 PDOでデータベースに接続する 6-3-2 PDOの動作オプションを指定する ― PDO::setAttributeメソッド 6-3-3 現在の動作オプション値を得る ― PDO::getAttributeメソッド 6-3-4 更新系SQLを実行する 6-3-5 SELECT文を実行し、結果をフェッチする ― PDOStatement::fetchメソッド 6-3-6 PDO::FETCH_OBJによるフェッチ 6-3-7 プリコンパイルすることで、SQL実行時のセキュリティリスクを減らす 6-3-8 2種類のバインド方式 ― bindValueとbindParam 6-3-9 一連のSQL実行中に起こる例外に対応する ― トランザクション管理 6-3-10 自動コミットモードを指定する ― PDO::ATTR_AUTOCOMMIT 6-3-11 実行されたSQLのログを見る 6-3-12 IN句のプレースホルダに配列を渡せない問題に対処する ■■7章 読みやすいPHPプログラミング作法 ― 開発者の意図を、わかりやすく伝える ■7-1 コーディング規約 ― 見た目に美しく読みやすいコード作り 7-1-1 最低限のコーディング規約は考えておいたほうがいい 7-1-2 PSRとは ― フレームワークフリーの標準的なコーディング規約 7-1-3 PSR-1 基本コーディング規約 7-1-4 PSR-12 拡張コーディングスタイルガイド 7-1-5 PSR-12におけるプログラム冒頭のコーディングスタイル 7-1-6 PSR-12におけるクラスのコーディングスタイル 7-1-7 PSR-12における制御構文のコーディングスタイル 7-1-8 PSR-12におけるクロージャーのコーディングスタイル 7-1-9 HTML&PHPの混在コードを美しく記述する(ifの書き方、ビューヘルパーの使用、phpタグのインデント) 7-1-10 コーディングスタイルの変更リスク ― スタイルはなるべく早く決めておく ■7-2 読み手に意図が伝わるコーディング ― 迷いを与えない 7-2-1 「伝わりにくい」プログラムの例 7-2-2 「伝わりやすい」プログラムの例 7-2-3 コメント文で意図を補足する 7-2-4 伝わりやすく、情報に過不足がない命名を考える 7-2-5 将来も見すえた命名を考える 7-2-6 命名を省略しすぎない 7-2-7 命名を冗長にしすぎない 7-2-8 配列データは複数形で命名する 7-2-9 ローマ字や母国語の命名は避けたほうがいい 7-2-10 伝わりやすいディレクトリ構成を考える 7-2-11 型宣言で利用者の不安をとりのぞく 7-2-12 否定の否定は肯定 ― はじめから肯定形をつかう ■7-3 見た目をスリムにし、シンプルな思考をうながす 7-3-1 関数を使って条件式をコンパクトにする 7-3-2 先にふるいにかけて、ネストを減らす 7-3-3 関数の戻り値は、確定した時点でreturnする 7-3-4 制御構文のネストをすっきり見せる 7-3-5 たくさんある引数はまとめる 7-3-6 長いテキストは別ファイルにする

パーフェクトPHP (PERFECT SERIES 3)

小川 雄大
技術評論社
おすすめ度
60
紹介文
PHPのセオリーを徹底解説。基本からWebアプリケーション開発、セキュリティまで完全網羅。 1 PHP〜overview 2 PHPの言語仕様 3 実践Webアプリケーション 4 PHPセキュリティ 5 テクニカルなPHPの活用 6 PHPレシピ

レベルアップPHP ~言語を理解して中級者へ~

佐々木 勝広
インプレスR&D
おすすめ度
60

プログラミングPHP 第3版

Kevin Tatroe
オライリージャパン
おすすめ度
59
紹介文
言語とプログラミングのテクニックを詳細に解説

いちばんやさしいPHPの教本 第3版 PHP 8対応 人気講師が教える実践Webプログラミング (「いちばんやさしい教本」シリーズ)

柏岡秀男
インプレス
おすすめ度
59
紹介文
講義+実習のワークショップ形式で、Webアプリを作りながら楽しく学べる「はじめてでも挫折しない」PHPの入門書です。なぜそうするのかを知りたい、仕組みが知りたい、応用できる基礎を身に付けたい、そんな読者のさまざまな要望に応える新しい教本です。講義パートの図解を交えた解説で仕組みについて理解したあと、実習パートで実際に手を動かしながらプログラムを書いていきます。少しずつ新しいことを学びながら進み、プログラムに機能を追加していくので、いま自分は何をやっているのかを、ちゃんと理解しながら進められます。

初心者からちゃんとしたプロになる PHP基礎入門〈PHP8対応〉

柏岡 秀男
エムディエヌコーポレーション
おすすめ度
59

初めてのPHP

David Sklar
オライリージャパン
おすすめ度
59
紹介文
Webアプリケーションを作成できるように、PHPの基礎からデータベースとの連携、セッション管理などについて解説した入門書。 PHP 7に対応した入門書の決定版! プログラミング初心者向けのPHP入門書。10年ぶりにメジャーバージョンアップされたPHP 7対応です。PHP 7では大幅な高速化やモリ使用量の低減、抽象構文木といった新機能の追加など、大幅に機能が改善されています。本書も新バージョンに対応して大幅に内容が改訂されています。Webアプリケーションを作成できるように、PHPの基礎からデータベースとの連携、セッション管理などについてひと通り解説するほか、コマンドラインでの操作やデバッグやテスト、またフレームワークについても紹介。さらにはSwiftと連携したメール送信など、より広範囲に入門者用の解説も追加しています。

PHPの絵本 第2版 Webアプリ作りが楽しくなる新しい9つの扉

株式会社アンク
翔泳社
おすすめ度
59
紹介文
初心者にも読みやすいPHP入門書の定番がフルリニューアル、シリーズラインナップも一新して続々刊行! プログラム初心者のためのPHP入門書がリニューアル! 10年以上にわたって親しまれてきたWeb開発言語PHPの解説書『PHPの絵本』は、 プログラム経験のない人でも勉強が始められるように考えられた、とてもやさしい 入門書です。新版では、従来の分かりやすい部分はそのままに、内容を全体的に 見直してお届けします。 「PHPは初めて」「アプリケーションって難しそう」という方にも、そもそも プログラムとはどんなものなのかというところから学んでもらえるように 配慮されています。機能的にも充実したPHPの最新事情もフォローし、 充実したアプリケーション作りの第一歩をここから踏み出すことができます。 本書を読むのにプログラム言語の知識は一切不要です。もっとも親しみやすい PHP言語の入門書として、現代の環境に合わせてアップデートされた、安心して 勉強を始められる一冊です。 【翔泳社の「絵本」シリーズのラインナップをアップデート】 翔泳社の「絵本シリーズ」は名前のとおり、絵本のように豊富なイラストと要点を 押えた簡潔な解説でコンピュータ技術に入門できる初心者向けのシリーズです。 すべての単元を2ページ単位で読みやすくまとめ、基礎に徹した内容で、言語/技術の 初心者や手軽に習得したい方のお役にたてるようになっています。 このたび、翔泳社は「絵本シリーズ」を全面的に改訂し、内容を現在の技術に 合わせて見直しました。シリーズラインナップ全体をリニューアルし、新パッケージで お届けします。 新しい「絵本シリーズ」では、旧来の分かりやすさ、親しみやすさ、基礎に 徹した内容というコンセプトはそのままに、Web/ネットが全盛となった現在の コンピュータ技術の潮流に合わせた解説を心掛けます。『Cの絵本』『Javaの絵本』を 皮切りにラインナップを順次刷新、さらに新しい仲間を増やしてラインナップを 充実していきます。 PHPをはじめる前に 第1章 基本的なプログラム 第2章 変数と配列 第3章 演算子 第4章 制御文 第5章 関数 第6章 文字列操作 第7章 インターネットとの連携 第8章 データの管理 付録

滑稽・人情・艶笑・怪談…… 古典落語100席 (PHP文庫)

立川 志の輔
PHP研究所
おすすめ度
59
紹介文
夫婦愛、親子愛、隣近所の心のふれ合い。人気落語家の立川志の輔が庶民が織りなす笑いのドラマ100を厳選。古典落語入門の決定版。 夫婦愛、親子愛、隣近所の心のふれ合い。人気落語家の立川志の輔が庶民が織りなす笑いのドラマ100を厳選。古典落語入門の決定版。

WordPress標準デザイン講座 20LESSONS【第2版】

野村 圭
翔泳社
おすすめ度
59
紹介文
ゼロからしっかり学べる、本格Webサイト制作。 本書はWordPress5によるWebサイト制作が学べる入門書です。 WordPressは、Web制作の定番スキルとなっており、 かんたんなブログサイトから高機能なCMSサイトまで、 効率的に制作することができます。 制作環境や基本操作の解説はもちろん、 サイト設計の基本、WordPressに必要なPHP、 テーマファイルの仕組みといった欠かせない基礎知識、 また、最新のエディタ「Gutenberg」の基本操作、 さらにテンプレート作成、ウィジェット、カスタムメニュー、 プラグイン、セキュリティの配慮といった実践的なスキルまで、 しっかり学んでいきます。 本書は考え方や知識を得るための「講義」パートと、 実際に作りながらスキルを身につける「実習」パートからなる、 合計20のLESSONを順番にステップアップしながら学んでいけます。 実習のためのサンプルソースはWebからダウンロードできます。 まさにWeb制作をこれから始める人に最適の1冊です! 〈本書の特長〉 □レッスン形式なのでマイペースで学習を進められる □「講義」と「実習」で考え方と作り方をまとめて学べる □学習用サンプルを使ってすぐに、効率よく学べる 〈こんな方にオススメ〉 □WordPressでブログや企業サイトの制作ができるようになりたい方 □Web業界へ進みたいと考えている方 □HTMLとCSSの基本はわかるけどWordPressやPHPには馴染みがない方 ■ORIENTATION レッスンを始める前に ■Chapter01 WordPressサイト制作の準備  Lesson01 WordPressの仕組みと動作環境  Lesson02 テスト環境を用意する  Lesson03 WordPressの初期設定 ■Chapter02 制作するサイトの構成・コンテンツを用意する  Lesson04 WordPressのサイト設計を考える  Lesson05 必要なコンテンツを作成・入力する ■Chapter03 WordPressテーマ制作の基礎知識  Lesson06 WordPressのためのPHP基礎知識  Lesson07 WordPressテーマの基礎知識  Lesson08 テンプレートタグでサイト情報を出力する  Lesson09 functions.phpファイルを作成する ■Chapter04 各種テンプレートファイルを作成し、投稿を表示する  Lesson10 WordPressループを使って投稿を表示する  Lesson11 サイトの共通部分をまとめる  Lesson12 各種ページ用にテンプレートを作成する ■Chapter05 テーマの機能を拡張する  Lesson13 アイキャッチ画像機能を追加する  Lesson14 ウィジェット機能を追加する  Lesson15 カスタムメニュー機能を追加する ■Chapter06 便利なプラグインを導入する  Lesson16 お問い合わせフォームを設置する  Lesson17 その他の便利なプラグイン ■Chapter07 WordPressサイトを公開する  Lesson18 レンタルサーバー上にWordPressサイトを公開する  Lesson19 WordPressを安全に使う  Lesson20 トラブルシューティング ■補講  補講01 WordPressが出力するclassを活用しよう  補講02 パーマリンク設定と.htaccessファイル  補講03 主なWordPress関数リファレンス  補講04 テンプレート階層  補講05 Gutenbergブロック紹介  補講06 WordPressの役立つ情報源

いちばんやさしいWordPressの教本 第4版 5.x対応 人気講師が教 える本格Webサイトの作り方 (「いちばんやさしい教本」シリーズ)

石川栄和
インプレス
おすすめ度
57

ちょうぜつソフトウェア設計入門――PHPで理解するオブジェクト指向の活用

田中 ひさてる
技術評論社
おすすめ度
57
紹介文
SoftwareDesign誌での連載と技術アドベントカレンダー24回ぶんに収まらなかった関連知識を徹底解説。いわゆる「オブジェクト指向」と呼ばれる考え方から発展した分野は、どのようにソフトウェア設計の役に立つのかを、よく知られた原則、テスト駆動開発、デザインパターンなどを通じて理解できる一冊です。上級者には定番の知識を体系的に整理するヒントとして、初級者には可愛いイラストで覚えるキーワード集として、幅広く活用していくことができます。なお、サンプルコードはPHPで書かれていますが、他の言語に置き換えて読めるコードばかりです。PHPを使っているかどうかを問わず、全ての開発者にオススメです。 第 1章 クリーンアーキテクチャ 第 2章 パッケージ原則 第 3章 オブジェクト指向 第 4章 UML(統一モデリング言語) 第 5章 オブジェクト指向原則 SOLID 第 6章 テスト駆動開発 第 7章 依存性注入 第 8章 デザインパターン 第 9章 アジャイル開発

くまのプーさん 小さなしあわせに気づく言葉 (PHP文庫)

PHP研究所
PHP研究所
おすすめ度
57

本当によくわかるWordPressの教科書 改訂2版 はじめての人も、挫折した人も、本格サイトが必ず作れる

赤司 達彦
SBクリエイティブ
おすすめ度
56
紹介文
WordPressver.5.x完全対応の 【改訂2版】! 手順通りに操作するだけで、さまざまな状況に応じたWebサイトが作れます。 ・ECサイト ・アフィリエイトサイト(SEO対策) ・ショッピングサイト(ショッピングカート機能) ・個人サイト(完全無料) 「Webサイトを作ってみたい」と漠然と思っている人から、 「一度WordPressを触ってみたけど挫折した」という人まで。 HTML、CSS、PHPなどのプログラミング知識は一切不要。 手順通りに操作するだけで、 本格サイトが作れます & WordPressのことが分かります! ●本書の特長 ・手順通りに操作するだけ。トップ、ブログ、ギャラリー、地図、お問い合わせ、5つのページが揃った本格サイトが作れます。 ・ショッピングカート機能を、プログラミングなしで簡単に設置できます。勿論、ショッピングカートを使わないサイトも作れます。 ・定番のレイアウトは勿論、時流のレイアウトのサイトも作れます。 『複数ページ型サイト』 トップページを軸に複数のページで構成される、従来から定番のレイアウト。 『1ページ型サイト』 1ページにコンテンツが詰まっている、時流のレイアウト。 ・パソコン&スマートフォン両対応。 ・丁寧で分かりやすい文とたくさんの図示があるので、初心者もWordPressをきちんと理解できます。 ・・・デザインの良い高機能なショッピングサイトを作りたい、コーポレートサイト(企業紹介サイト)を作りたい、 自分のサイトを作ってみたい、Webデザインの基礎を学びたい… けど、サイトを作ったことがないから、挫折したからあきらめている。そんな人のための本です。 ・SEO対策にも対応しているので、集客のための対策がすぐにおこなえます。 ●本書の対象読者 ・WordPressに興味はあるけれど使ったことがない人 ・デザインの良いサイトを簡単に作りたい人 ・Webショッピングサイトを手早く作りたい人 ・シンプルなコーポレートサイト(企業紹介サイト)を作りたい人 ・費用0円で個人サイトを作りたい人 ・WordPressを使ったことはあるけれど挫折した人、最後まで作るのをやめてしまった Chapter1 WordPressの利便さ Chapter2 WordPressを使う準備をする Chapter3 WordPressを導入する Chapter4 WordPressの基本設定 Chapter5 テーマをインストールする Chapter6 Webサイトの全体像をつくる Chapter7 Webサイトのコンテンツの作成 Chapter8 プラグインで高度な機能を導入する Chapter9 ショッピングカート機能を利用する Chapter10 Webサイトへ集客する Chapter11 Webサイトを安全に運用する 付録 完全無料でWebサイトをつくる

最初のキホンがやさしくわかる 絵で学ぶPHP入門

オフィス加減
アスキー・メディアワークス
おすすめ度
56
紹介文
1 インターネットのキホン 2 PHPのキホン 3 変数・データ型・配列のキホン 4 演算子・制御文のキホン 5 関数のキホン 6 入出力のキホン 7 Webアプリケーションのキホン

改訂新版 ゼロからわかるPHP超入門

星野 香保子
技術評論社
おすすめ度
55
紹介文
プログラミングの経験がなくても、この1冊でPHPの基礎をしっかりマスターできる! 1 PHPで新たな一歩を踏みだそう 2 PHPを使うための準備 3 Webってどんな仕組みなの? 4 はじめてのPHPプログラム 5 データを取り扱うには 6 複数のデータをまとめて扱う配列 7 画面からデータを入力してみよう 8 計算してみよう 9 条件によって処理を変える 10 同じ処理を繰り返す 11 便利な関数を使ってみよう 12 データベースを操作するには

WordPressレッスンブック HTML5&CSS準拠

エビスコム
ソシム
おすすめ度
55
紹介文
基本から応用テクニックまで、実際に作りながらマスター。サイトの拡張やカスタマイズ方法など、実践手法も網羅。スマートフォンに完全対応するためのテクニックも学べる。 1 下準備 2 基本的なブログサイトの作成 3 記事に挿入した画像のレイアウト 4 ブログのメニュー 5 コメント 6 固定ページの作成 7 レスポンシブWebデザインの設定 8 パワーアップアレンジ

ディズニー・プリンセス・レッスン (PHP文庫)

PHP研究所
PHP研究所
おすすめ度
55

WordPress 仕事の現場でサッと使える! デザイン教科書 (Webデザイナー養成講座)

中島 真洋 
技術評論社
おすすめ度
55
紹介文
最新WordPress4.x対応!実際のWebサイト制作に使える機能を多数紹介。プロのデザイナーとして必須のスキルが身につく。 1 WordPressの準備と基本設定 2 基本的なテーマを作成する 3 プラグインを利用する 4 Webサイトを拡張する 5 投稿タイプ・フィールド・タクソノミーをカスタマイズする 6 管理画面と投稿画面をカスタマイズする 7 高度な機能を活用する 8 ショートコード・関数・プラグインを作成する 9 WordPressを効率的に運用する APPENDIX

いちばんやさしい PHP の教本 第2版 人気講師が教える実践 Web プログラミング (「いちばんやさしい教本」)

柏岡秀男
インプレス
おすすめ度
55

スラスラわかるPHP

志田 仁美
翔泳社
おすすめ度
55
紹介文
本書では、「プログラミング関連の知識はゼロ」という状態から、プログラミングの基礎知識や作法、PHPの基本構文、テクニックなどを無理なく習得し、かつプログラムが自力で作れるようになるところまで、しっかりとフォローします。PHPの基礎固めをしっかりとしたい方だけでなく、ほかの入門書で挫折した方やプログラミングに苦手意識を持っている方にもおすすめです。 Webアプリケーションの世界へようこそ! プログラムってなんだろう はじめてのプログラミング 基本の型 制御構文 配列 関数 Webアプリケーションの設計 ファイル操作 フォーム データベース セッションとクッキー セキュリティ アプリケーションの拡張 中・上級へのステップ

[新装版]土光敏夫 信念の言葉

PHP研究所
PHP研究所
おすすめ度
55

PHPサーバーサイドプログラミングパーフェクトマスター (Perfect Master)

金城 俊哉
秀和システム
おすすめ度
55
紹介文
1 PHPの概論、まずはここから始めましょう 2 開発環境を用意しましょうか、Windows、それからMacにも 3 PHP言語仕様 4 PHPでのアルゴリズムの制御と関数 5 大規模開発のためのオブジェクト指向プログラミング 6 Webブラウザーからのリクエスト、PHPで処理 7 MySQL、とことん利用してデータアプリを開発するぞ 8 Webアプリのベース、MVCフレームワークを作成! 9 MVCフレームワークによるアプリケーション開発 10 開発者必携!PHP‐Webアプリケーションのセキュリティ対策

PHP+MySQLマスターブック

永田 順伸
マイナビ
おすすめ度
55
紹介文
PHPとMySQLの基本から、グループウェア作成までを完全習得! PHPの開発環境 PHPの基礎 PHPの組み込み関数 WebでのPHP クラスとオブジェクト データベースの準備 データ操作の基本 PHPからデータベースを操作する PHPとMySQLで作る会員管理システム-基本機能 PHPとMySQLで作る会員管理システム-管理機能 データベースの運用 PHPの応用

松下幸之助道をひらく言葉―ともに困難を超えてこそ

松下幸之助
PHP研究所
おすすめ度
55

体系的に学ぶ 安全なWebアプリケーションの作り方 第2版 脆弱性が生まれる原理と対策の実践

徳丸 浩
SBクリエイティブ
おすすめ度
55
紹介文
攻撃と防御の知識を一冊に凝縮! 日本中の現場で支持されたベストセラーが、最新環境にあわせて全面刷新+大増ページ! Webアプリケーションにはなぜ脆弱性が生まれるのか? 脆弱性を解消するにはどうプログラミングすればよいか? PHPサンプルへの攻撃を通して脆弱性が生まれる原理と具体的な対処方法が学べる! Webアプリ開発者の必読書、待望の改訂版! OWASP Top 10 - 2017対応 ・HTML5の普及に対応してWeb APIやJavaScriptに関する解説を新設 ・OWASP Top 10 - 2017に対応して、XXEや安全でないデシリアライゼーションなどを解説 ・脆弱性診断に対する関心が高まっていることから、脆弱性診断の入門の章を親設 ・IE7のサポート終了など現在のソフトウェアの状況に対応 ・実習環境をWindowsに加えてMacにも対応 1章 Webアプリケーションの脆弱性とは 1.1 脆弱性とは、「悪用できるバグ」 1.2 脆弱性があるとなぜ駄目なのか 1.3 脆弱性が生まれる理由 1.4 セキュリティバグとセキュリティ機能 1.5 本書の構成 1.6 セキュリティガイドラインとの対応 2章 実習環境のセットアップ 2.1 実習環境の概要 2.2 Firefoxのインストール 2.3 VirtualBoxのインストール 2.4 仮想マシンのインストールと動作確認 2.5 OWASP ZAPのインストール 2.6 Firefoxの拡張FoxyProxy-Standardのインストール 2.7 OWASP ZAPを使ってみる 2.8 Webメールの確認 3章 Webセキュリティの基礎 ~ HTTP、セッション管理、同一オリジンポリシー 3.1 HTTPとセッション管理 3.2 受動的攻撃と同一オリジンポリシー 3.3 CORS(Cross-Origin Resource Sharing) 4章 Webアプリケーションの機能別に見るセキュリティバグ 4.1 Webアプリケーションの機能と脆弱性の対応 4.2 入力処理とセキュリティ 4.3 表示処理に伴う問題 4.4 SQL呼び出しに伴う脆弱性 4.5 「 重要な処理」の際に混入する脆弱性 4.6 セッション管理の不備 4.7 リダイレクト処理にまつわる脆弱性 4.8 クッキー出力にまつわる脆弱性 4.9 メール送信の問題 4.10 ファイルアクセスにまつわる問題 4.11 OSコマンド呼び出しの際に発生する脆弱性 4.12 ファイルアップロードにまつわる問題 4.13 インクルードにまつわる問題 4.14 構造化データの読み込みにまつわる問題 4.15 共有資源やキャッシュに関する問題 4.16 Web API実装における脆弱性 4.17 JavaScriptの問題 5章 代表的なセキュリティ機能 5.1 認証 5.2 アカウント管理 5.3 認可 5.4 ログ出力 6章 文字コードとセキュリティ 6.1 文字コードとセキュリティの概要 6.2 文字集合 6.3 文字エンコーディング 6.4 文字コードによる脆弱性の発生要因まとめ 6.5 文字コードを正しく扱うために 6.6 まとめ 7章 脆弱性診断入門 7.1 脆弱性診断の概要 7.2 脆弱なサンプルアプリケーションBad Todo 7.3 診断ツールのダウンロードとインストール 7.4 Nmapによるポートスキャン 7.5 OpenVASによるプラットフォーム脆弱性診断 7.6 OWASP ZAPによる自動脆弱性スキャン 7.7 OWASP ZAPによる手動脆弱性診断 7.8 RIPSによるソースコード診断 7.9 脆弱性診断実施上の注意 7.10 まとめ 7.11 脆弱性診断報告書のサンプル 8章 Webサイトの安全性を高めるために 8.1 Webサーバーへの攻撃経路と対策 8.2 成りすまし対策 8.3 盗聴・改ざん対策 8.4 マルウェア対策 8.5 まとめ 9章 安全なWebアプリケーションのための開発マネジメント 9.1 開発マネジメントにおけるセキュリティ施策の全体像 9.2 開発体制 9.3 開発プロセス 9.4 まとめ

気づけばプロ並みPHP~ショッピングカート作りにチャレンジ!

谷藤賢一
リックテレコム
おすすめ度
55
紹介文
大好評の超入門書『いきなりはじめるPHP』の姉妹編。 言語仕様に沿った通常の構成を退け、 徹底的に読者目線のユニークなストーリーを展開。 何らかのプログラミング経験者なら、 楽しいショッピングカート作りを通じて、 本格的なシステム開発の技術が自然に身に付きます。

[図解]なぜか「仕事ができる人」の習慣

PHP研究所
PHP研究所
おすすめ度
55

Swooleで学ぶPHP非同期処理 ~並行処理/並列処理の基礎から実践的な開発手法まで一気にわかる

めもりー
技術評論社
おすすめ度
55
紹介文
近年、Web開発においてネットワーク経由での入出力を必要とするケースが増え、非同期処理を利用したWebアプリケーションの実装がごく一般的になりつつあります。その一方で、Webサービス開発に使われることの多いPHPは、その言語仕様ゆえに、非同期処理の実装を苦手としてきました。そのため、苦手意識を持っている人もいるでしょう。 そんな人にお勧めなのが非同期処理実装に特化したエンジンである「Swoole」です。Swooleは強力な機能を備えており、制約や考慮すべきことが多く存在しているPHPでも簡単に非同期処理を実装できます。 本書では、並行処理/並列処理の基礎から、Swooleを使って実際に非同期処理に動くアプリケーションを実装するところまで解説します。Swooleの強力さと便利さを体験してみてください。 第1章 並行処理/並列処理の概念 1.1 並行処理とは 1.2 並列処理とは 1.3 並行処理/並列処理の注意点 第2章 同期処理/非同期処理の概念 2.1 同期処理とは 2.2 排他制御とは 2.3 非同期処理とは 2.4 第2章のまとめ:PHPで非同期処理を実装するために 第3章 PHPでマルチプロセス/マルチスレッドを実装する 3.1 マルチタスク、マルチプロセスとは 3.2 マルチスレッドとは 3.3 PHPと並列処理の歴史 3.4 PHPでマルチプロセスを実装する 3.5 PHPでマルチスレッドを実装する 3.6 第3章のまとめ 第4章 PHPの拡張機能「Swoole」入門 4.1 イベント駆動型プログラミングとは 4.2 Swooleとは 4.3 Swooleの基本的な使い方 4.4 第4章のまとめ 第5章 Swooleで非同期処理を実装する 5.1 第5章の概要 5.2 ビルトイン(組み込み)の非同期処理を利用する 5.3 コルーチンを利用する 5.4 第5章のまとめ 第6章 SwooleでHTTPサーバー/WebSocketサーバーを構築する 6.1 サーバーとRFC 6.2 HTTPサーバーをコルーチンで実装する 6.3 WebSocketサーバーをコルーチンで実装する 6.4 第6章のまとめ 第7章 Swooleを利用してリアルタイムチャットサービスを作る 7.1 チャットサービスの開発に挑戦 7.2 チャットサービスの要件 7.3 HTTPサーバーを実装する 7.4 開発における注意と準備 7.5 ページを実装する 7.6 WebSocketサーバーを実装する 7.7 第7章のまとめ:Swooleのさらなる活用に向けて

松下幸之助〈一日一話〉―仕事の知恵・人生の知恵 (PHP business library)

松下 幸之助
PHP研究所
おすすめ度
55

基礎からのWordPress (BASIC LESSON For Web Engineers)

高橋 のり
ソフトバンククリエイティブ
おすすめ度
55
紹介文
WordPressによるサイト構築の基礎を、ブログサイト、一般サイトの両面から解説。 01 学習の準備 02 WordPressの基本を知ろう 03 WordPressサイト構築の基礎 04 ブログサイトのカスタマイズ 05 固定ページ機能で小規模サイトの作成 06 カスタム投稿タイプで中規模サイトの作成

詳細! PHP 7+MySQL 入門ノート

大重 美幸
ソーテック社
おすすめ度
55
紹介文
こんにちはPHP7。Web新世代、セブンの誕生!初心者にやさしく、経験者にも納得の1冊ができました。基本シンタックスからMySQLデータベース連携まで、注釈付きのコードと手順を追った図で詳しく丁寧に解説しました。豊富なサンプルを積み重ねて確実にスキルアップしましょう。約10年ぶりのメジャーアップデート!PHPをはじめるなら今が最高のタイミングです。一押し!PHP7定番本! 1 PHPをはじめよう(PHPの準備) 2 PHPのシンタックス(変数や演算子 制御構造 関数を使う 文字列 配列 オブジェクト指向プログラミング) 3 Webページを作る(フォーム処理の基本 いろいろなフォームを使う セッションとクッキー ファイルの読み込みと書き出し) 4 PHPとMySQL(phpMyAdminを使う MySQLを操作する)

Webサイト制作者のための PHP入門講座

鈴木 憲治
技術評論社
おすすめ度
55
紹介文
1 PHPとWebアプリケーション 2 開発環境の用意 3 PHPの基礎知識 4 アンケートフォームを作ろう 5 コンタクトフォームを作ろう 6 オブジェクト指向とフレームワーク 7 Webサービスにチャレンジ(準備編) 8 Webサービスにチャレンジ(実践編)

世界を変えた人が、子どもだったころのお話

PHP研究所
PHP研究所
おすすめ度
55

これ1冊でゼロから学べる Webプログラミング超入門 ーHTML,CSS,JavaScript,PHPをまるごとマスター

掌田 津耶乃
マイナビ出版
おすすめ度
55
紹介文
まったくのプログラミング初心者に向けた、Webプログラミングの入門書 まったくのプログラミング初心者に向けた、Webプログラミングの入門書です。 「HTML+CSS」「JavaScript」「PHPによるサーバー開発」 「Ajaxによる非同期通信」Webを使ったスマホアプリ作成」などを、猛スピードで全部学びましょう! Webプログラミングに必要なテーマの本は、それぞれ1冊になるくらいのボリュームですので、 それを何冊も読むのは大変ですよね。 本書では必要なものを全部つまみ食いして、一度にすべて使えるようになれます! 「HTML+JavaScriptのWeb作成」から一歩踏み出し、サーバー側の開発まで含めた プログラミングを学び、応用として、Web部分をそのままスマートフォンのアプリに組み込み、 「サーバーと連携したスマホアプリ」までも取り上げています。 ですので、「Webページ、サーバー、スマホアプリ」のすべてを体験できます。 昨今、プログラミングの仕事というとWebプログラミングは避けて通れませんので、 プログラマーになりたいあなたには必読です! Chapter 1 基本のHTML&CSSを使おう 1-1 Webの開発って、なに? 1-2 HTMLを使おう 1-3 スタイルシートでデザインしよう 1-4 さまざまなスタイルを利用しよう Chapter 2 JavaScriptの基本を覚えよう 2-1 値と変数をマスターしよう 2-2 構文を覚えよう 2-3 関数とオブジェクト Chapter 3 Webを操作しよう 3-1 DOMを操作しよう 3-2 DOMオブジェクトを操作しよう Chapter 4 グラフィックを操作しよう 4-1 Canvasを使おう 4-2 グラフィックを動かそう Chapter 5 サーバープログラムを作ろう 5-1 PHPを使えるようになろう 5-2 Webのさまざまな機能を使おう Chapter 6 本格アプリに挑戦しよう 6-1 アイテム収集ゲーム「Collect It!」 6-2 2D 擬似アドベンチャーゲーム「Adventurer」 Chapter 7 スマホアプリに挑戦! 7-1 Monacaを使いこなそう 7-2 プレビューとデバッグ

PHP逆引きハンドブック

蒲生 睦男
シーアンドアール研究所
おすすめ度
55
紹介文
WebサイトやWebアプリの開発によく使われるPHPを網羅的に解説。 01 PHPの基礎知識 02 PHPの基本文法 03 文字列・マルチバイト文字列 04 数学・日付・時刻 05 変数・配列 06 クラス・オブジェクト 07 ファイル・ディレクトリ 08 画像 09 データ 10 Web・ネットワーク 11 データベース 12 セキュリティ・エラー処理

ラストで君は「まさか! 」と言う 神さまのいたずら (3分間ノンストップショートストーリー)

PHP研究所
PHP研究所
おすすめ度
55

朝に強い女性になるカンタン習慣 (PHP文庫)

PHP研究所
PHP研究所
おすすめ度
55

仕事ができる人になる!厳選100冊

PHP研究所
PHP研究所
おすすめ度
55

図解 武士道がよくわかる本

新渡戸 稲造
PHP研究所
おすすめ度
55

2013年版 いざというときの手続きハンドブック (PHPビジネス新書)

PHP研究所
PHP研究所
おすすめ度
55

プロフェッショナルWebプログラミング Laravel〈最新Laravel 9対応〉

久保田 賢二朗
エムディエヌコーポレーション
おすすめ度
55

京阪電鉄のひみつ

PHP研究所
PHP研究所
おすすめ度
55

京都「お守り&数珠」手帖

PHP研究所
PHP研究所
おすすめ度
55

南海電鉄のひみつ

PHP研究所
PHP研究所
おすすめ度
55

PHPフレームワーク Laravel Webアプリケーション開発 バージョン8.x対応

竹澤 有貴
ソシム
おすすめ度
55
紹介文
Web職人たちから絶大な支持を集めるPHPフレームワーク「Laravel」の最新版Laravel 8の解説書。待望の第2弾! Web職人たちから圧倒的な支持を集めているPHPフレームワーク「Laravel」を使ったWebアプリケーション開発の実践的な指南書。 【1】最新のLaravel 8系に対応! 【2】第一線で活躍する著者陣が、大規模化・複雑化するWebアプリケーションを開発するための新しい設計技法、技術を詳解。 【3】MVCに代わりモダンなPHPアプリケーション開発で採用が増えている「ADR」とは? 【4】テストコードによる動作検証の基本から、Laravelを使ったテスト駆動開発の導入シナリオまで。 【5】エラーハンドリングやログ収集など運用に欠かせないノウハウも充実。 Web職人たちから圧倒的な支持を集めているPHPフレームワーク「Laravel」を使ったWebアプリケーション開発の実践的な指南書。最新バージョンとなるLaravel 8に合わせて、定番の1冊を改訂。 第一部 Laravelの基礎 Chapter 1 Laravelの概要 1-1 Laravelとは 1-1-1 Laravelの特徴 1-1-2 開発情報 1-2 環境構築 1-2-1 Laravel Sailを利用した環境構築 1-2-2 Homesteadを利用した環境構築 1-3 最初のアプリケーション 1-3-1 Laravelのディレクトリ構成 1-3-2 Welcomeページの処理 1-3-3 はじめてのページ 1-3-4 はじめてのテストコード 1-3-5 ユーザー登録の実装 1-3-6 ユーザー認証 1-3-7 イベント Chapter 2 Laravelのアーキテクチャ 2-1 ライフサイクル 2-1-1 Laravelアプリケーション実行の流れ 2-1-2 エントリポイント 2-1-3 HTTPカーネル 2-1-4 ルータ 2-1-5 ミドルウェア 2-1-6 コントローラ 2-2 サービスコンテナ 2-2-1 サービスコンテナとは 2-2-2 バインドと解決 2-2-3 バインド 2-2-4 解決 2-2-5 DIとサービスコンテナ 2-2-6 ファサード 2-3 サービスプロバイダ 2-3-1 サービスプロバイダの基本的な動作 2-3-2 DeferrableProviderインターフェースの遅延実行 2-4 コントラクト 2-4-1 コントラクトの基本 2-4-2 コントラクトを利用した機能の差し替え Chapter 3 アプリケーションアーキテクチャ 3-1 MVCとADR 3-1-1 MVC(Model View Controller) 3-1-2 ADR(Action Domain Responder) 3-2 アーキテクチャへの入口 3-2-1 フレームワークとアーキテクチャ設計 3-2-2 アーキテクチャ設計のポイント 3-2-3 レイヤードアーキテクチャ 3-2-4 レイヤードアーキテクチャの一歩先の世界 第二部 実践パターン Chapter 4 HTTPリクエストとレスポンス 4-1 リクエストハンドリング 4-1-1 リクエストの取得 4-1-2 Requestファサード 4-1-3 Requestオブジェクト 4-1-4 フォームリクエスト 4-2 バリデーション 4-2-1 バリデーションルールの指定方法 4-2-2 バリデーションルール 4-2-3 バリデーションの利用 4-2-4 バリデーション失敗時の処理 4-2-5 ルールのカスタマイズ 4-3 レスポンス 4-3-1 さまざまなレスポンス 4-3-2 リソースクラスを組み合わせたREST APIレスポンスパターン 4-4 ミドルウェア 4-4-1 ミドルウェアの基本 4-4-2 デフォルトで用意されているミドルウェア 4-4-3 独自ミドルウェアの実装 Chapter 5 データベース 5-1 マイグレーション 5-1-1 マイグレーション処理の流れ 5-1-2 マイグレーションファイルの作成 5-1-3 定義の記述 5-1-4 マイグレーションの実行とロールバック 5-2 シーダー 5-2-1 シーダーの作成 5-2-2 シーダークラスを利用するための設定 5-2-3 シーディングの実行 5-2-4 Fakerの利用 5-2-5 Factoryを利用する例 5-3 Eloquent 5-3-1 クラスの作成 5-3-2 規約とプロパティ 5-3-3 データ検索・データ更新の基本 5-3-4 データ操作の応用 5-3-5 関連性を持つテーブル群の値をまとめて操作する(リレーション) 5-3-6 実行されるSQLの確認 5-4 クエリビルダ 5-4-1 クエリビルダの書式 5-4-2 クエリビルダの取得 5-4-3 処理対象や内容の特定 5-4-4 クエリの実行 5-4-5 トランザクションとテーブルロック 5-4-6 ベーシックなデータ操作 5-5 リポジトリパターン 5-5-1 リポジトリパターンの概要 5-5-2 リポジトリパターンの実装 5-5-3 リファクタリング Chapter 6 認証と認可 6-1 セッションを利用した認証 6-1-1 認証を支えるクラスとその機能 6-1-2 認証処理を理解する 6-1-3 データベース・セッションによる認証処理 6-1-4 フォーム認証への適用 6-1-5 認証処理のカスタマイズ 6-1-6 パスワードリセット 6-2 トークン認証 6-2-1 api_tokenを保持するテーブルの作成 6-2-2 シーダーを用いたレコードの作成 6-2-3 独自認証プロバイダの作成 6-2-4 トークン認証の利用方法 6-3 JWT認証 6-3-1 tymon/jwt-authのインストール 6-3-2 tymon/jwt-authの利用準備 6-3-3 tymon/jwt-authの利用方法 6-3-4 トークンの発行 6-4 OAuthクライアントによる認証・認可 6-4-1 Socialite 6-4-2 GitHub OAuth認証 6-4-3 動作拡張 6-4-4 OAuthドライバの追加 6-5 認可処理 6-5-1 認可処理を理解する 6-5-2 認可処理 6-5-3 Bladeテンプレートによる認可処理 Chapter 7 イベントとキューによる処理の分離 7-1 イベント 7-1-1 イベントの基本 7-1-2 イベントの作成 7-1-3 イベントを利用した堅実なオブザーバーパターン 7-1-4 イベントのキャンセル 7-1-5 非同期イベントを利用する分離パターン 7-2 キュー 7-2-1 キューの基本 7-2-2 非同期実行ドライバの準備(Queueドライバ) 7-2-3 キューの仕様 7-2-4 キューによるPDFファイル出力パターン 7-2-5 Supervisorによる常駐プログラムパターン 7-2-6 手軽な分散処理パターン 7-3 イベントとキューによるCQRS 7-3-1 CQRS(コマンドクエリ責務分離) 7-3-2 アプリケーション仕様 7-3-3 アプリケーション実装の準備 7-3-4 口コミ登録機能の実装 7-3-5 口コミ投稿コントローラ実装 7-3-6 リスナークラスによるElasticsearch操作 7-3-7 Commandの実行・Queryの実装 Chapter 8 コンソールアプリケーション 8-1 Commandの基礎 8-1-1 クロージャによるCommandの作成 8-1-2 クラスによるCommandの作成 8-1-3 Commandへの入力 8-1-4 Commandからの出力 8-1-5 Commandの実行 8-2 Commandの実装 8-2-1 サンプル実装の仕様 8-2-2 Commandの生成 8-2-3 ユースケースクラスとサービスクラスの分離 8-2-4 ユースケースクラスの雛形作成 8-2-5 サービスクラスの実装 8-2-6 ユースケースクラスの実装 8-2-7 Commandクラスの仕上げ 8-3 バッチ処理の実装 8-3-1 バッチ処理の仕様 8-3-2 Commandクラスの実装 8-3-3 ユースケースクラスの実装 8-3-4 Commandクラスの仕上げ 8-3-5 バッチ処理のログ出力 8-3-6 スケジュールタスクによるバッチ処理実行 Chapter 9 テスト 9-1 ユニットテスト 9-1-1 テスト対象クラス 9-1-2 テストクラスの生成 9-1-3 テストメソッドの実装 9-1-4 データプロバイダの活用 9-1-5 例外のテスト 9-1-6 テストの前処理・後処理 9-1-7 テストの設定 9-2 データベーステスト 9-2-1 テスト対象のテーブルとクラス 9-2-2 データベーステストの基礎 9-2-3 Eloquentクラスのテスト 9-2-4 サービスクラスのテスト 9-2-5 モックによるテスト(サービスクラス) 9-3 WebAPIテスト 9-3-1 WebAPIテスト機能 9-3-2 テスト対象のAPI 9-3-3 APIテストの実装 9-3-4 WebAPIテストに便利な機能 Chapter 10 エラーハンドリングとログの活用 10-1 エラーハンドリング 10-1-1 エラー表示 10-1-2 エラーの種別 10-1-3 エラーハンドリングの基本 10-1-4 Fluentdの活用 10-1-5 例外の描画テンプレート変更 10-1-6 エラーハンドリングパターン 10-2 ログ活用パターン 10-2-1 ログの基本 10-2-2 ログ出力設定 10-2-3 Elasticsearchによるカスタムログドライバ実装 第三部 アプリケーション開発手法 Chapter 11 テスト駆動開発の実践 11-1 テスト駆動開発とは 11-1-1 コツはできるだけ小さく 11-1-2 サンプルアプリケーション仕様 11-1-3 データベース仕様 11-1-4 APIエンドポイント 11-2 APIエンドポイントの作成 11-2-1 アプリケーションの作成・事前準備 11-2-2 最初のテスト 11-2-3 テストメソッドに何をどのように書くか 11-2-4 最低限の実装 11-2-5 2つ目以降のテスト 11-2-6 1つのテストメソッドに検証は1つの原則 11-2-7 テストコードの確認 11-3 テストに備えるデータベース設定 11-3-1 データベース設定 11-3-2 マイグレーション・モデル・ファクトリ 11-3-3 初期データ投入用シーダーの準備 11-4 データベーステスト 11-4-1 テスト用トレイトの利用・初期データの投入 11-4-2 データベースが絡むテスト 11-4-3 仮実装で素早くテストを成功させる 11-4-4 最初のリファクタリング 11-4-5 返却値の内容を検証 11-4-6 成功が分かっているテストの追加 11-4-7 データ追加の検証 11-4-8 既存テストの修正 11-4-9 バリデーションテスト 11-5 リファクタリングユースケース 11-5-1 そろそろコントローラを使う 11-5-2 フレームワークの標準に寄せていくリファクタリング① 11-5-3 正確なテストが書けない時の対処法 11-5-4 フレームワークの標準に寄せていくリファクタリング② 11-5-5 サービスクラスへの分離 INDEX 謝辞 著者紹介

素直な心になれたら 松下幸之助が中学生に教えたかったこと

PHP研究所
PHP研究所
おすすめ度
55

スラスラ読める PHPふりがなプログラミング (ふりがなプログラミングシリーズ)

リブロワークス
インプレス
おすすめ度
55

明日のためにできること

PHP研究所
PHP研究所
おすすめ度
55

基礎からのPHP (基礎からシリーズ)

西沢 夢路
SBクリエイティブ
おすすめ度
55
紹介文
PHPによるWebアプリケーションの構築方法を基礎の基礎から徹底解説。 01 はじめてのPHP(PHPの概要 PHP利用の準備 ほか) 02 PHPの基礎知識(PHPの基礎の基礎 条件分岐と繰り返し ほか) 03 MySQLを利用する(MySQLを利用するために phpMyAdminによるMySQL操作の基本 ほか) 04 実用となるWebアプリケーションを目指して(PHPのクラス 電子メールの送信 ほか) 05 画像掲示板に挑戦(Cookieを使おう セッションって何? ほか)

徹底攻略PHP7技術者認定[初級]試験問題集

内山 祥恵
インプレス
おすすめ度
55

PHP本格入門[下] ~オブジェクト指向設計、セキュリティ、現場で使える実践ノウハウまで

大家 正登
技術評論社
おすすめ度
55
紹介文
Webアプリケーションの定番言語であるPHPの基礎から実践までを、上下巻のフルボリュームで集大成。 「この目的を実現するためには、どの文法テクニックが適合しやすいだろう?」 「このプログラムをより読みやすくするために、どんなアプローチができるだろう?」 といったことを思考しつつ、「とりあえずは動く」だけで終わらない、現場に求められる品質を形にするための知識とテクニックを解説します。 ■■8章 よりよいオブジェクト指向デザインのためのベストプラクティス ■8-1 よりよいオブジェクト指向設計を通して目指すべきもの 8-1-1 後から機能を変更するのは、新規でプログラミングするより数倍の労力がかかる 8-1-2 オブジェクト指向を活かし、直感的で無駄のないアプリケーションを作る ■8-2 オブジェクト指向がもたらす独立性 ― カプセル化と多態性 8-2-1 独立性とはクラスの「自立」である 8-2-2 クラスの中身を「保護」する ― カプセル化と隠ぺい 8-2-3 うまくカプセル化されたアプリケーションは、小説の「あらすじ」のように読める 8-2-4 具象を意識しないための性質 ― 多態性 ■8-3 クラスの独立性を高める ― 凝集度と結合度 8-3-1 凝集度は高く 8-3-2 結合度は低く 8-3-3 どこまで細かくクラス分けすべきか? ― 将来を見すえた、適切なサイズ感を考える ■8-4 クラスの関係性を表すキーワード ― is-a関係とhas-a関係 8-4-1 is-a ― ●●は▲▲である 8-4-2 has-a ― ●●は▲▲をもっている 8-4-3 関連 ― ゆるやかな関係をもっている 8-4-4 委譲 - ほかの人に任せる 8-4-5 is-aとhas-aは、見誤りやすい 8-4-6 カプセル化を守る ― なるべくならis-aよりhas-a 8-4-7 多重継承はできなくても、コンポジションならできる ■8-5 クラス同士の依存を解消する ― 依存性の注入、Factoryクラス 8-5-1 依存は具象クラスのインスタンス化から生まれる 8-5-2 依存対象のクラスを外部から挿し込む ― 依存性の注入 8-5-3 たくさんのクラスに対する依存をまとめてなくす ― Factoryクラス ■8-6 好ましくない設計を知る ~アンチパターン 8-6-1 神クラス ― 1人で何でもやるクラス 8-6-2 自由すぎて不安になる ― なんでもpublicなクラス 8-6-3 共通化のために、関係のないメソッドまで持たされたスーパークラス 8-6-4 求めていない処理までやってしまう ― 世話好きなメソッド 8-6-5 引数が多すぎるメソッド 8-6-6 状態を持てないクラス ― ユーティリティクラス ■■9章 能率を高める、一歩進んだ文法テクニック ■9-1 変数名やメソッド名を流動的に切り替える ― 動的アクセス 9-1-1 プロパティに動的アクセスする 9-1-2 メソッドを動的にコールする 9-1-3 クラスに動的にアクセスする ■9-2 配列のように扱えるクラスを作る 9-2-1 foreachループ可能なクラスを作る ― IteratorAggregateインターフェース 9-2-2 配列の形式でアクセスできるクラスを作る ― ArrayAccess ■9-3 複雑な規則性を持つ配列をシンプルに扱う ― ジェネレーター 9-3-1 続けざまに値を返すシンプルなジェネレーター ― yield命令 9-3-2 連想配列のように扱えるジェネレーター 9-3-3 ジェネレーターで要素数の多い配列生成を省メモリ化する ― Excel列名リストの生成 9-3-4 生成処理をサブジェネレーターに分担させる ― yield from 9-3-5 ジェネレーターで最終的な戻り値を返す 9-3-6 ジェネレーターに配列のフィルタリングを委ね、プログラムの見通しをよくする ■9-4 1つのインスタンスに対する複数のメソッド呼び出しをスマートに書く ― メソッドチェーン 9-4-1 3ステップで、メソッドチェーンに対応したクラスを作る 9-4-2 メソッドチェーンに対応した四則演算クラス 9-4-3 メソッドチェーン対応クラスのアイディア例 ■9-5 クラスをグルーピングするためのインターフェース ― マーカーインターフェース 9-5-1 マーカーインターフェースを使わない、冗長な例外処理 9-5-2 マーカーインターフェースを使って、例外をグループ分けする ■■10章 外部ライブラリを開発に役立てる ― Composer ■10-1 モダンなPHP開発における外部ライブラリの管理手法 10-1-1 依存関係を自動で解決してくれるパッケージ管理ツール ― Composer 10-1-2 多くのPHPライブラリがつどうリポジトリ ― Packagist 10-1-3 外部ライブラリを使ってどんなことができるか ■10-2 Composerでパッケージを管理する 10-2-1 Composerをインストールする 10-2-2 composerコマンドでパッケージをインストールする 10-2-3 適切なバージョンを指定する ― バージョン記法とセマンティックバージョニング 10-2-4 すべての環境でまったく同じバージョンが使えるようにする ― composer.lock、composer installコマンド 10-2-5 開発環境でのみ使いたいパッケージを管理する ― --devオプション 10-2-6 最新のバージョンに更新する ― composer update 10-2-7 require_once命令なしでクラスを自動読み込みする ― オートロード 10-2-8 自作のクラスをオートロードする ― composer dump-autoloadコマンド ■10-3 PhpSpreadsheetでExcel出力する 10-3-1 PhpSpreadsheetをインストールする 10-3-2 テンプレートを元にExcelファイルを出力する 10-3-3 テンプレートを使わずにExcelファイルを出力する ■10-4 GoutteでWebスクレイピングする 10-4-1 外部のWebサイトをパースして情報を収集する ― Webスクレイピング 10-4-2 HTML文書をプログラムで階層的に扱う ― DOMの概念 10-4-3 Goutteをインストールする 10-4-4 Goutteを使う準備 ― GoutteからWebページにアクセスする 10-4-5 filterメソッドでノードを絞り込む ― CSSセレクタによるノード指定 10-4-6 複数のノードを繰り返し処理する ― eachメソッド ■10-5 なるべく失敗しない、外部ライブラリの選び方 10-5-1 選定のための基準 ― 最低限、対応品質は調べておきたい 10-5-2 「ライブラリ開発チームの対応品質」にもとづく4つの選定基準 10-5-3 パフォーマンスと限界を知っておく ― 性能テスト 10-5-4 ひととおりの機能を網羅した実験プログラムを作る ■■11章 WebAPIを使った外部システムとの連携 ■11-1 WebAPIを使った外部システム連携でできること 11-1-1 外部Webサービスのデータを提供してもらう 11-1-2 特定のユーザによる投稿/閲覧の操作をおこなう 11-1-3 難しい計算処理を外部システムに委ねる 11-1-4 サーバーの一部の機能をまるごと、外部システムに任せる ■11-2 WebAPIによる連携の仕組み 11-2-1 標準的なWebAPIの設計方式 ― RESTful API 11-2-2 利用ユーザの認証は1リクエストごとにおこなう ■11-3 WebAPIとデータを送受信する(1) ― 電文フォーマット「JSON」 11-3-1 JSONデータが取り扱うデータ型を理解する 11-3-2 Unicode文字は「\u」で表す 11-3-3 一部の記号はエスケープで無効化する必要がある 11-3-4 改行/タブは特殊文字で表す 11-3-5 値をJSON形式にエンコードする ― json_encode関数 11-3-6 JSON文字列をデコードし、PHPの値に変換する ― json_decode関数 11-3-7 エンコード/デコード失敗時のエラーを検出する ― json_last_error関数 ■11-4 WebAPIとデータを送受信する(2) ― 電文フォーマット「XML」 11-4-1 XMLを生成する ― DomDocumentクラス 11-4-2 XMLをパースする ― DomDocument::loadXMLメソッド ■11-5 RESTful APIサーバー/クライアントをプログラム実装する 11-5-1 WebAPIサーバーを実装する 11-5-2 WebAPIクライアントを実装する ― cURL関数 11-5-3 ファイルのアップロードはPUTメソッドを使う ■11-6 外部サービスのAPIを使う ― Google自然言語API 11-6-1 APIを使う準備をする ― Google Cloud Platformの登録~APIキーの取得 11-6-2 Google感情分析APIを使う 11-6-3 Google感情分析APIのリクエスト/レスポンスフォーマット 11-6-4 Google感情分析APIにHTTPリクエストを送信する ■■12章 Webアプリケーションのセキュリティ ■12-1 システム全体の基本的なセキュリティ 12-1-1 多重防御が基本 12-1-2 なるべく機械的に判断する 12-1-3 内部の人間にもアクセス権を設ける 12-1-4 あらゆる外部からのデータは信用しない 12-1-5 事後対策も考えておく ■12-2 Webアプリケーションのセキュリティ 12-2-1 パスワードは強固なものにし、ユーザにもそれを求める 12-2-2 ログイン機能を強固にする 12-2-3 ログイン認証失敗時のエラーメッセージにも気を配る 12-2-4 IPアドレスが特定できる画面はIP制限をかける 12-2-5 攻撃の手がかりになる情報を見せない ― コメント、スクリプト、エラーメッセージ 12-2-6 見せてはいけないファイルを公開ディレクトリに置かない 12-2-7 連番をパラメータで使う時は気をつける 12-2-8 アップロードファイルのチェックはサーバーサイドでもおこなう 12-2-9 セキュリティリスクを少なくするためのphp.iniの設定 ■12-3 SQLインジェクション攻撃とその対策 12-3-1 SQLインジェクションとは ― SQLの意味を書き換え、不正なデータベース操作をおこなう 12-3-2 SQLインジェクション攻撃の試行 12-3-3 SQLインジェクション攻撃への対策を施す 12-3-4 SQLインジェクションでログイン情報を盗み出す ■12-4 XSS攻撃とその対策 12-4-1 XSSとは ― 不正なスクリプトを入力値に埋め込んでWebブラウザに実行させる 12-4-2 XSS攻撃を試行する 12-4-3 XSS攻撃への対策を施す(1) ― もっとも基本的な対策 12-4-4 XSS攻撃への対策を施す(2) ― イレギュラーな入力パターンへの対応 ■12-5 CSRF攻撃とその対策 12-5-1 CSRFとは ― ユーザが意図しないHTTP送信を強制する 12-5-2 CSRF攻撃を試行する 12-5-3 CSRF攻撃への対策を施す ■12-6 その他のさまざまな攻撃パターン 12-6-1 メールヘッダインジェクション ― 不正なメールヘッダを注入する 12-6-2 オープンリダイレクト ― どこへもリダイレクトできてしまう脆弱性 12-6-3 ディレクトリトラバーサル ― 不正なパスを注入する 12-6-4 OSコマンドインジェクション ― 不正なコマンドを注入する 12-6-5 ペネトレーションテストのためのツール ■■13章 強く、しなやかなPHPアプリケーション ■13-1 品質を構成する要素 13-1-1 品質の見える化 ― ISO/IEC 9126の品質特性モデル 13-1-2 PHPプログラマーができる、ソフトウェア品質への働きかけとは ■13-2 前提条件を表明し、ソースコードに起因するバグを減らす ― アサーション 13-2-1 アサーションは開発時にのみ使い、本番運用では使わない ― zend.assertionsオプション 13-2-2 アサーションは外部データ値の異常ではなく、ソースコードの異常を伝えるために使う 13-2-3 アサーション、バリデーション、範囲外チェック例外の違い 13-2-4 アサーションを使って処理結果をセルフチェックする ■13-3 PHPUnitによる自動テスト ― 強度を高め、変更作業を安全におこなう 13-3-1 自動テストの対象範囲 ― おもに関数やメソッドの戻り値をテストする 13-3-2 PHPUnitのインストール 13-3-3 PHPUnitによる自動テストプログラムの基本的な書き方 13-3-4 PHPUnitによる自動テストプログラムの実例 ― ページャークラスのテスト 13-3-5 関連する自動テストをまとめる ― テストスイート 13-3-6 実行したいテストスイートを定義するもう1つの方法 ― phpunit.xml 13-3-7 自動テストがしやすいプログラム構成 ― データベースやHTTPへの依存を避ける ■13-4 コーディング規約の自動チェック ― 規約チェックツールPHP_CodeSniffer 13-4-1 PHP_CodeSnifferで規約チェックする 13-4-2 phpcbfコマンドでコードスタイルを自動整形する ■13-5 バグを生み出しそうなコードをあぶり出す ― phpmd 13-5-1 phpmdでバグ発見の手がかりを得る ■13-6 もしものときのために履歴を残す ― ロギングツールMonolog 13-6-1 Monologの全体像 ― ロガー、ハンドラー、プロセッサー、フォーマッター 13-6-2 出力レベルをコントロールする ― ログレベル 13-6-3 Monologをインストールする 13-6-4 Monologの基本的な使い方 13-6-5 ログメッセージを蓄積するハンドラー ― BufferHandler、FingersCrossedHandler 13-6-6 ログメッセージにプレースホルダを埋め込む ― PsrLogMessageProcessor 13-6-7 MariaDBのテーブルにログを記録する ― MySQLHandler ■13-7 プログラムの使い方マニュアルを自動生成する ― phpDocumentorによるドキュメンテーション 13-7-1 ドキュメンテーションのためのコメント「PHPDocコメント」 13-7-2 phpDocumentorの使い方 ■13-8 プロファイリングによるボトルネック調査 ― blackfire 13-8-1 blackfireをセットアップする 13-8-2 重い商品検索アプリケーションを実行する 13-8-3 blackfireでプロファイリングする 13-8-4 blackfireのプロファイリング結果を読み解く 13-8-5 プロファイリング結果に基づいてプログラムを改良する ■13-9 Webアプリケーションフレームワークを理解する 13-9-1 フレームワークとは 13-9-2 ひしめき合うPHPフレームワークの世界 13-9-3 フレームワークが提供する最低限の機能 ― ルーティング 13-9-4 MVCモデルを理解する 13-9-5 フレームワークが提供するその他の機能 13-9-6 フレームワークのサイズと制約 ― マイクロフレームワークとフルスタックフレームワーク 13-9-7 有名どころのフレームワークを押さえる ■13-10 自動生成でヒューマンエラーを防止する ― 開発効率アップのためのコンソールプログラム 13-10-1 繰り返し作業は、なるべく自動化する 13-10-2 オリジナルのプログラムにScaffoldさせる ■13-11 IDEでプログラミングの生産効率を上げる 13-11-1 IDEが備える、強力な開発サポート機能 13-11-2 PHPプロジェクトで使われる、主要なIDE 13-11-3 PhpStormのセットアップ 13-11-4 PhpStormプロジェクトを作成する 13-11-5 PhpStormによるプログラミング体験の内容を確認する 13-11-6 PhpStormでクラス図を自動生成する 13-11-7 PhpStorm上でプログラミングしてみる ■13-12 アプリケーションの内部構造を安全に変える ― リファクタリング 13-12-1 命名を変更する 13-12-2 メソッド、プロパティの階層を変える ― プルアップとプッシュダウン ■13-13 バグを調査する ― PhpStorm+Xdebugによるデバッグ手法 13-13-1 IDEデバッグ機能の具体的な内容 13-13-2 不具合の現象を確認する 13-13-3 PhpStorm+Xdebugによるデバッグ環境のセットアップ 13-13-4 デバッグ手順(1) ― バグがある箇所の当たりをつけ、プログラムを中断する場所を決める 13-13-5 デバッグ手順(2) ― ブレークポイントを設定する 13-13-6 デバッグ手順(3) ― Webブラウザで実行して変数値を見る 13-13-7 デバッグ手順(4) ― ステップ実行しながら、変数値の遷移を確認する 13-13-8 デバッグ手順(5) ― 原因をさらに細かく追求する 13-13-9 デバッグ手順(6) ― プログラムを修正する 13-13-10 デバッグ手順(7) ― 修正後の動作確認をする ■13-14 どうしてもデバッグできないときは ― 良質な情報が得やすい質問の手順 13-14-1 質問にあたっての心構え 13-14-2 情報が散らばっていると、よい回答を得にくい 13-14-3 最小セットのプログラムで、問題の本質を見きわめる 13-14-4 聞きたいことを構造的に組み立てる 13-14-5 結局、どこにバグがあったのか? 13-14-6 そのほかに質問をするうえで気をつけること

PHPマイクロフレームワーク Slim Webアプリケーション開発

齊藤 新三
ソシム
おすすめ度
55
紹介文
PHPマイクロフレームワーク「Slim」を使ったWebアプリケーション開発のすべてを一冊で学べる! Slim(スリム)はPHPのフレームワークのひとつです。 PHPのフレームワークではLaravel(ララベル)が人気ですが、機能豊富で重厚なLaravelと比べると、Slimが提供する機能はとてもシンプルです。 本書では、Webアプリケーション開発に興味を持つ人たちを対象に、「そもそもフレームワークとは何なのか」という基本的な話題から、「本運用環境」で稼働させるまでを、各種開発ツールを活用しながら、ステップ・バイ・ステップでていねいに解説していきます。 本書は、導入編、基本編、実践準備編、実践編という4つの編から構成されています。 導入編では、XAMPPとComposerを導入して学習環境を構築し、Slimアプリケーションの動作原理を学びます。 基本編では、一つのサンプルアプリの作成を通して、MVCアーキテクチャに従ったSlimアプリケーションの開発手順を学びます。ルーティング、テンプレートエンジンTwig、外部コンテナPHP-DI、コントローラクラス、ミドルウェアなど、Slimアプリケーションの開発に欠かせない基本事項を学んでゆきます。 実践準備編では、いったんいったんSlimの解説から離れ、本運用を意識した開発環境の構築を学びます。GitHubを利用したソースコードの管理、VagrantとVirtualBoxを使った仮想環境の構築、本書で本運用環境とするHerokuなどについて学んでゆきます。 実践編では、実戦準備編で用意した開発環境上に実際にSlimを利用したMVCアプリケーションを作成し、Heroku上で稼働させる手順を学びます。データベース処理、MVCアーキテクチャの導入、エラーや例外を適切に処理するためのエラーハンドラの活用方法、本運用環境であるHerokuへのデプロイ手順を学んでゆきます。 読者特典として、PHPUnitを使った単体テストの導入方法を扱ったボーナスコンテンツをPDFで提供します。 PHPマイクロフレームワーク「Slim」を使ったWebアプリケーション開発のすべてを一冊で学べる!本番環境を想定した環境構築やデプロイ、運用まで学習できる!     はじめに     本書の使い方 導入編  第1章   PHPフレームワークSlimとは   1-1  フレームワークとは    1-1-1 フレームワークとは何か    1-1-2 フレームワークとライブラリの違い    1-1-3 フレームワークを使うメリットとデメリット   1-2  サーバサイドWeb開発フレームワークの歴史    1-2-1 最初はJava用のフレームワークから    1-2-2 パラダイムシフトはRubyから    1-2-3 PHP用フレームワークの歴史   1-3  軽量フレームワークSlimの特徴    1-3-1 フルスタックフレームワークの特性    1-3-2 軽量フレームワークである    1-3-3 Slimの特徴   1-4  MVCアーキテクチャにおけるSlimのメリット    1-4-1 MVCアーキテクチャとは    1-4-2 MVCアーキテクチャを実現する4種の神器    1-4-3 SlimとMVCとの関係   1-5  本書の役割    1-5-1 本書が目指すところ    1-5-2 本書を学習する上での前提知識    1-5-3 本書の構成  第2章   Slim動作環境の構築   2-1  XAMPPのインストール    2-1-1 XAMPPとは    2-1-2 XAMPPのインストール    2-1-3 Apacheの起動と確認    2-1-4 XAMPPでのドキュメントルート   2-2  Composerのインストール    2-2-1 Composerとは    2-2-2 WindowsへのComposerのインストール    2-2-3 macOSへのComposerのインストール   2-3  ダウンロードサンプルの扱い    2-3-1 Samples.zipについて    2-3-2 スケルトンプロジェクトについて    2-3-3 完成形ソースコード(3章から8章)について    2-3-4 その他の完成形ソースコード(9章以降)について    2-3-5 特典PDF(テスティング)について  第3章   はじめてのSlimアプリと動作原理   3-1  はじめてのSlimプロジェクトを作成する    3-1-1 Slimプロジェクトの作成手順    3-1-2 はじめてのSlimアプリケーションの動作確認   3-2  Slimプロジェクトの作成方法    3-2-1 Slimのフォルダ構成    3-2-2 ComposerコマンドとSlimパッケージの配置    3-2-3 .htaccessの記述と役割    3-2-4 Slimのindex.php    3-2-5 クラスファイルを自動で読み込むautoload.php   3-3  Slimの動作原理    3-3-1 Slimの動作に必要なルーティング登録    3-3-2 ルーティングコールバック関数    3-3-3 Slimの動作とルーティング登録の関係   3-4  Composerの動作と使い方    3-4-1 composer.jsonの記述とセマンティックバージョンニング    3-4-2 既存のcomposer.jsonを利用する    3-4-3 Composerのその他のコマンド 基本編  第4章   Slimのルーティング登録   4-1  リクエストの種類に合わせたルーティング登録    4-1-1 リクエストメソッドごとのルーティング登録    4-1-2 サンプルプロジェクトの作成    4-1-3 POST処理のルーティング登録    4-1-4 各種HTTPメソッドでアクセス可能なPostman   4-2  ServerRequestInterfaceとResponseInterface    4-2-1 リクエストパラメータの取得    4-2-2 引数$requestの正体    4-2-3 引数$responseの正体    4-2-4 PSR-7の実装    4-2-5 コールバック関数中のprint()の正体   4-3  複数のHTTPメソッドに対応できるルーティング登録    4-3-1 すべてのメソッドに対応したany()    4-3-2 アクセスするHTTPメソッドを選べるmap()   4-4  ルーティング登録を便利にする仕組み三種盛り    4-4-1 ルーティングパターンにベースパスを設定する    4-4-2 ルーティングパターンに階層構造を持たせる    4-4-3 ルーティングに名前をつける   4-5  ルーティングの外部ファイル化    4-5-1 index.phpの肥大化を避けるために    4-5-2 ルーティングファイルの分割   4-6  ルーティングプレースホルダ    4-6-1 ルーティングプレースホルダの設定    4-6-2 プレースホルダは複数記述できる    4-6-3 オプションプレースホルダ   4-7  リダイレクト    4-7-1 ルーティング登録としてのリダイレクト    4-7-2 コールバック関数内でリダイレクト  第5章   Slimにおけるビュー   5-1  Slimにおけるビューの扱いとJSONデータ送信    5-1-1 Slimにおけるビューはレスポンスオブジェクト    5-1-2 サンプルプロジェクトの作成    5-1-3 SlimでJSONデータを送信する方法   5-2  テンプレートエンジンTwigとの連携    5-2-1 HTMLコードを分離できるテンプレートエンジン    5-2-2 PHPでのテンプレートエンジン    5-2-3 Slimで利用するテンプレートエンジン    5-2-4 SlimでのTwigを利用して画面を表示させる    5-2-5 SlimでのTwig利用の基本手順    5-2-6 Twigの環境設定   5-3  テンプレート変数    5-3-1 テンプレート変数の基本は波括弧2個    5-3-2 テンプレート変数のドットアクセス    5-3-3 テンプレート変数アクセスのルール    5-3-4 コメント   5-4  フィルタ    5-4-1 フィルタはパイプを記述    5-4-2 Twigのフィルタ一覧    5-4-3 複数のフィルタを併用する   5-5  条件分岐    5-5-1 条件分岐を使う    5-5-2 条件中のissetやemptyは不要    5-5-3 論理演算子は英単語   5-6  ループ    5-6-1 配列のループ    5-6-2 連想配列のループ    5-6-3 カウンタ変数を使ったループ    5-6-4 ループのelseブロック    5-6-5 ループ変数   5-7  その他の便利なTwig構文三種盛り    5-7-1 テンプレート内変数を作成するset    5-7-2 テンプレートの共通部分を別ファイルにできるinclude    5-7-3 変数の内容を表示するdump  第6章   コンテナとDI   6-1  コンテナとその使い方の基本    6-1-1 コンテナとは    6-1-2 サンプルプロジェクトの作成    6-1-3 コンテナの利用に必要なパッケージ    6-1-4 Slimでコンテナを利用する方法    6-1-5 コンテナへの登録方法    6-1-6 コンテナからインスタンスを取得する方法   6-2  Slimとコンテナの関係    6-2-1 get()メソッドの正体    6-2-2 Slimが連携するコンテナはPSR-11   6-3  コンテナを経由した引数    6-3-1 インスタンス生成処理関数に引数を設定する    6-3-2 コンテナ経由で引数を渡すメソッドcall()    6-3-3 call()の第2引数は必ず配列   6-4  Slimでログを扱う方法    6-4-1 SlimではMonologを利用する    6-4-2 Monologの準備3ステップ    6-4-3 ログに書き出す際はログレベルを意識する    6-4-4 Monologの標準ログフォーマット   6-5  コンテナの本当の役割    6-5-1 クラスを直接newすることの問題点    6-5-2 コンテナと依存性注入  第7章   コントローラクラス   7-1  コールバック関数の問題点とコントローラクラス    7-1-1 コールバック関数は肥大化する    7-1-2 サンプルプロジェクトの作成    7-1-3 コントローラクラスの作り方    7-1-4 コントローラクラスのルーティング登録    7-1-5 オートロードの設定    7-1-6 コントローラクラスには複数のメソッドを記述できる   7-2  コントローラクラスとコンテナの連携    7-2-1 コントローラクラス内の$thisはコンテナではない    7-2-2 コンストラクタの引数としてコンテナを受け取る    7-2-3 コントローラクラスでのコンテナの扱い  第8章   ミドルウェア   8-1  ミドルウェアとその作り方    8-1-1 ミドルウェアとは    8-1-2 サンプルプロジェクトの作成    8-1-3 ミドルウェアの作り方    8-1-4 ミドルウェアの利用方法   8-2  ミドルウェア処理の位置    8-2-1 リクエスト処理の前に挿入する場合    8-2-2 処理の挿入位置はhandle()メソッドの記述位置    8-2-3 handle()メソッドの正体    8-2-4 リクエスト処理前後の両方に処理を挿入    8-2-5 ミドルウェアのチェイン   8-3  ミドルウェアにデータを渡す方法    8-3-1 ミドルウェアでコンテナを利用するには    8-3-2 ミドルウェアにコンテナを渡すには    8-3-3 コンテナ以外のデータも渡せるコンストラクタ   8-4  ミドルウェア設定のバリエーション    8-4-1 ルーティンググループにミドルウェアを設定    8-4-2 アプリケーション全体にミドルウェアを設定 実践準備編  第9章   GitHubの利用   9-1  バージョン管理とGit    9-1-1 バージョン管理システムとは    9-1-2 集中型バージョン管理システム    9-1-3 分散型バージョン管理システム    9-1-4 Gitとは   9-2  GitHub    9-2-1 GitホスティングサービスとGitHub    9-2-2 GitHubのアカウント作成    9-2-3 GitHubのリポジトリ作成    9-2-4 GitHubデスクトップの導入    9-2-5 GitHubデスクトップでリポジトリをクローンする   9-3  GitHubを使った基本の開発手順    9-3-1 リポジトリにSlimプロジェクトを作成する    9-3-2 管理対象から除外するファイルを設定する.gitignore    9-3-3 GitHubデスクトップでコミットとプッシュ    9-3-4 GitHubを利用した基本の作業ルーティン   9-4  ブランチとプルリクエスト    9-4-1 ブランチとは    9-4-2 ブランチを作ってみる    9-4-3 ブランチにファイルを追加する    9-4-4 ブランチのファイルを編集する    9-4-5 マージを簡単に行うプルリクエスト    9-4-6 3種のマージ方法    9-4-7 ブランチを削除する    9-4-8 GitHub利用のワークフロー  第10章   仮想環境の利用   10-1  仮想環境    10-1-1 XAMPPの問題点    10-1-2 仮想環境とは    10-1-3 2種の仮想環境    10-1-4 仮想環境のメリット    10-1-5 Webシステム開発で威力を発揮するホスト型仮想環境    10-1-6 ホスト型仮想化アプリケーション    10-1-7 本章で構築する環境   10-2  VirtualBox    10-2-1 VirtualBoxのインストール    10-2-2 VirtualBoxでのVM作成   10-3  Vagrant    10-3-1 Vagrantとは    10-3-2 Vagrantのインストール    10-3-3 Vagrantfileを作成する    10-3-4 Vagrantfileを記述する    10-3-5 VagrantでVMを起動する    10-3-6 VagrantでのVMの停止と破棄   10-4  仮想環境内の構築と設定    10-4-1 仮想環境にログインする    10-4-2 管理者権限ユーザに切り替える    10-4-3 CentOSのパッケージを管理するyumコマンド    10-4-4 Apacheのインストール    10-4-5 Apacheの起動    10-4-6 Apacheのサービス登録    10-4-7 PHPのインストール   10-5  Apacheの設定変更    10-5-1 SocymFirstGitSlimをSocymSlimVBoxに配置    10-5-2 Apacheの設定ファイルの変更    10-5-3 SSH接続先のテキストファイルを編集するvi    10-5-4 ドキュメントルートを変更する    10-5-5 .htaccessを有効にする    10-5-6 Apache設定ファイルの確認と再起動   10-6  SocymFirstGitSlimをSocymSlimVBoxで実行する    10-6-1 GitHubで現在の状態を記録するリリース機能    10-6-2 SocymFirstGitSlimのソースコードを変更する    10-6-3 仮想環境で実行されたSlimアプリの確認  第11章   Herokuの利用   11-1  Webアプリケーションの実行環境とHeroku    11-1-1 共有レンタルサーバ    11-1-2 サーバを1台用意する    11-1-3 クラウド    11-1-4 本運用環境を自動構築してくれるHeroku   11-2  Heroku環境の用意    11-2-1 Herokuアカウントの作成    11-2-2 Herokuアプリの作成    11-2-3 Dynoの種類    11-2-4 Herokuの実行環境は自動判定   11-3  GitHub連携とデプロイ    11-3-1 HerokuとGitHubアカウントを連携させる    11-3-2 HerokuアプリとGitHubリポジトリを連携させる    11-3-3 GitHubからデプロイ    11-3-4 Herokuアプリの動作確認とURL    11-3-5 Dynoの内容の確認   11-4  Herokuでのドキュメントルートの変更    11-4-1 Herokuでのエラー確認    11-4-2 socymfirstslimアプリが動作しない原因    11-4-3 Dynoのドキュメントルート変更 実践編  第12章   データベース連携   12-1  仮想環境へのPostgreSQLのインストール    12-1-1 Herokuの標準データベースはPostgreSQL    12-1-2 PostgreSQLのインストール    12-1-3 データベースの初期化と設定    12-1-4 ユーザとデータベースの作成    12-1-5 PostgreSQLへの接続    12-1-6 テーブルの作成    12-1-7 PHPライブラリのインストール   12-2  データベースへの接続と切断と例外処理    12-2-1 実践編用プロジェクトリポジトリの作成とクローン    12-2-2 SocymSlimMVCプロジェクトの作成    12-2-3 会員情報入力画面の作成    12-2-4 Slimアプリでデータベースにアクセスするコード    12-2-5 Slimでのデータベースアクセスの特徴    12-2-6 PDOによるデータベースへの接続    12-2-7 PDO接続のオプション    12-2-8 データベース接続の切断   12-3  データベース処理の基本    12-3-1 PDOによるデータベース処理手順    12-3-2 連番主キーの取得    12-3-3 PDOインスタンスをコンテナから取得   12-4  データ取得処理    12-4-1 データ取得処理コードの記述    12-4-2 PDOによるデータ取得処理手順    12-4-3 結果表が1行の場合    12-4-4 全データ取得メソッド    12-4-5 結果の連想配列から無駄を排除するフェッチモード  第13章   MVCアーキテクチャの導入   13-1  エンティティモデル    13-1-1 エンティティとは    13-1-2 エンティティクラスの作り方    13-1-3 コントローラクラスでのエンティティの使い方    13-1-4 テンプレートでのエンティティの使い方    13-1-5 テンプレートでの非正常系への対応    13-1-6 エンティティを使った詳細表示の動作確認    13-1-7 エンティティモデルのメリット    13-1-8 エンティティと連想配列の組み合わせ    13-1-9 エンティティ+連想配列を使ったリスト画面の作り方    13-1-10 表示リストがない場合への対応   13-2  DAOモデルとMVCアーキテクチャ    13-2-1 コントローラクラスに散在していくSQLとDAOモデル    13-2-2 DAOクラスの作り方    13-2-3 DAOクラスをコントローラから利用する    13-2-4 MVCアーキテクチャの完成とMVCモデルとは    13-2-5 トランザクションと例外処理の扱い    13-2-6 残りのメソッドをDAOと連携させる   13-3  リダイレクト遷移    13-3-1 登録完了時のURL    13-3-2 データベース更新処理後はリダイレクト  第14章   エラーハンドラ   14-1  エラー画面    14-1-1 showMemberDetailの遷移の種類    14-1-2 エラー画面表示ロジックの実装   14-2  Slimでのエラーの扱いとエラーミドルウェア    14-2-1 Slimでのエラーの扱い    14-2-2 Slimのエラーハンドラはミドルウェア    14-2-3 Slimではルーティングもミドルウェア    14-2-4 addErrorMiddleware()の3個の引数   14-3  エラー画面のカスタマイズ    14-3-1 エラー画面をカスタマイズできるエラーレンダラクラス    14-3-2 デフォルトレンダラクラスとのコンボ    14-3-3 例外の種類に応じて表示画面を分岐    14-3-4 手動で例外を発生させる    14-3-5 例外の投げ直しと$logErrorDetails    14-3-6 $isRedirectフラグの真の働き    14-3-7 エラーレンダラに独自例外を組み込む    14-3-8 その他のメソッドのエラー画面表示を集約する  第15章   Herokuでの実稼働   15-1  Herokuでデータベースの利用    15-1-1 HerokuのDyno作成とGitHub連携    15-1-2 Heroku Postgresの導入   15-2  Config VarsとHeroku Postgresへの接続コード    15-2-1 HerokuのConfig Vars    15-2-2 仮想環境へのConfig Varsの追加    15-2-3 $displayErrorDetailsの値もConfig Varsとする    15-2-4 SocymSlimMVCプロジェクトのDB接続情報の変更    15-2-5 エラー表示切り替えコードの変更     おわりに     索引     著者/監修者プロフィール

PHPフレームワーク Laravel実践開発

津耶乃, 掌田
秀和システム
おすすめ度
54
紹介文
 2017年9月刊行の『PHPフレームワークLaravel入門』を補足する続編。「これも知りたかった」という声に応えました! アプリケーション開発には、基本のMVC以外の機能実装が非常に重要になります。本書は、既刊『PHPフレームワーク Laravel入門』を読み終わった方に向けて、もっと知りたいという要望の高かったMVC以外の機能実装の手法を解説します。コア機能の詳細から、サービス、DBクラスとEloquent、ジョブ管理、フロントエンド(Vue.js、React、Angular)との連携、ユニットテスト、Artisanコマンドまで詳細にわかります。Laravel5.8.9準拠。 Chapter 1 Laravelのコア機能を考える  1-1 ルーティング   ベースプロジェクトの用意   ルートの基本   名前付きルートについて   whereによる正規表現ルート   HTTPステータスコードによるエラー表示   ルートグループについて   ミドルウェアの適用   名前空間とグループルート   ルートとモデルの結合  1-2 設定情報と環境変数   設定情報とConfigクラス   設定情報を更新する   環境変数の利用  1-3 ファイルシステム   Storageクラスについて   ファイルアクセスの実際   localとpublic   publicディスクにアクセスする   ファイル情報を取得するメソッド   ファイル情報取得メソッドでファイル情報を表示する   ファイルのコピー・移動・削除   ファイルのダウンロード   ファイルのアップロード処理メソッド(putFile)   ディレクトリの管理   filesystem.phpについて   「logs」ディスクを用意する   FTPディスクを作成する  1-4 リクエストとレスポンス   Requestについて   フォームをまとめて処理する   Responseと出力コンテンツ   フォームの必要な項目のみ利用する   フォーム値の保管とold関数   クエリパラメータの利用   クエリパラメータを指定したリダイレクト Chapter 2 サービスとミドルウェア  2-1 サービスコンテナと結合   DIとサービスコンテナ   サービスとしてのクラスを用意する   明示的にインスタンスを生成する   引数が必要なクラスのインスタンス取得   サービスコンテナへの結合   サービスとシングルトン   MySerivceをシングルトンで結合する   引数を必要とする結合   インターフェイスを利用した粗な結合   MyServiceInterface実装クラスを作成する   結合時のイベント処理について  2-2 ファサードの利用   サービスとサービスプロバイダ   サービスプロバイダを作成する   ファサードとは?   MyServiceファサードを作成する   ファサードを登録する   MyServiceファサードを使う  2-3 ミドルウェアの利用   リクエストを拡張するミドルウェア   MyMiddlewareミドルウェアを作る   MyMiddlewareミドルウェアの利用   beforeとafterについて   after処理を追加する   ミドルウェアの利用範囲と設定   グローバルミドルウェアの利用 Chapter 3 データベースの活用  3-1 DBクラスとクエリビルダ   DB::selectの利点と欠点   クエリビルダを使う   tableとselectを使う   whereメソッドによる検索条件   あいまい検索はどうする?   whereRawは書き方に注意!   最初・最後のレコード取得   指定IDのレコード取得(find)   特定のフィールドだけ取得(pluck)   chunkByIdによる分割処理   orderByとchunkを使う   一定の部分だけを抜き出して処理する   さまざまなwhere  3-2 ペジネーション   paginateによるペジネーション   ナビゲーションリンクの表示   Eloquent利用の場合   カスタムナビゲーションリンクの作成   Paginatorのメソッド   ナビゲーションリンクのタグについて  3-3 EloquentとCollection   Eloquentとモデルクラス   モデルの基本ルール   Personモデルの基本形   モデルとコレクション   コレクションの機能:rejectとfilter   コレクションの機能:diffによる差分取得   コレクションの機能:modelKeysとonlyおよびexcept   コレクションの機能:mergeとunique   mapによるコレクション生成  3-4 モデルの拡張   カスタムコレクションの利用   アクセサについて   既存のプロパティを変更する   ミューテータについて   配列でデータを保存する   JSON形式でのレコード取得(toJson)   JavaScriptからアクセスする  3-5 Scoutによる全文検索   Scoutとは?   全文検索を利用する   インデックスの操作   TNTSearchを利用する   toSearchableArrayの実装 Chapter 4 キュー・ジョブ・イベント・スケジューラ  4-1 キューとジョブ   キューとは何か?   ジョブを作成する   ジョブ用プロバイダを作成する   MyJobをディスパッチする   データベースにアクセスする   非同期に対応させる   ワーカを実行する   キューテーブルを確認する   ワーカ実行コマンドについて   特定のキューを指定する   クロージャをキューに登録する  4-2 イベントの利用   イベントとは?   EventServiceProviderについて   PersonEventについて   PersonEventListenerについて   PersonEventを発行する   購読について   イベントディスカバリについて   キューを利用してイベントを発行する   ジョブか? イベントか?  4-3 タスクとスケジューラ   タスクを実行する   /app/Console/Kernel.phpについて   Scheduleクラスの「コマンドの実行」:execとcommandメソッド   Artisanコマンドを実行する「command」メソッド   クロージャで処理を実行する   invoke実装クラスをcallする   ジョブをinvoke化する   jobメソッドによるジョブ実行 Chapter 5 フロントエンドとの連携  5-1 Vue.jsを利用する   Vue.jsのセットアップ   コンポーネントを利用する   コンポーネントを作成する   axiosでJSONデータを取得する  5-2 Reactの利用   React利用のセットアップ   package.jsonについて   Reactを利用する   アプリケーションを実行する   Exampleコンポーネントについて   MyComponentを作る   クライアント=サーバー通信について  5-3 Angularの利用   LaravelはAngular未対応!   Angularコンポーネントを利用する   AngularアプリとLaravelアプリのビルド   Angularの開発手順について   コンポーネントを作成する   axiosでサーバー通信する Chapter 6 ユニットテスト  6-1 コントローラーのテスト   Laravel開発とテスト   設定ファイルphpunit.xmlについて   2つのテスト用スクリプト   /tests/Unit/ExampleTest.phpについて   /tests/Feature/ExampleTest.phpについて   コントローラーをテストする  6-2 モデルのテスト   テスト用データベースの準備   マイグレーションの用意   シーディングの用意   モデルのテストを行う   モデルを利用する   テーブルの初期化について   シードを利用する  6-3 ファクトリの利用   ファクトリを作成する   ファクトリを使ってテストする   ステートを設定する   ステートを利用する   コールバックの設定  6-4 モックの活用   ジョブをテストする   クロージャでディスパッチ状況をチェックする   イベントをテストする   コントローラーでイベントを発行させる   キューをテストする   特定のキューを調べるには?   サービスをテストする   クラスをモックする   PowerMyServiceをモックする Chapter 7 Artisan CLIの開発  7-1 Artisanコマンドの利用   Artisanコマンドについて   dump-serverの利用   dump-serverを起動する   Tinkerの利用   Tinkerの設定ファイルの作成  7-2 スクリプト内からArtisanを使う   Artisanクラスの利用   実行結果を受け取るには?   オプションを設定する  7-3 Artisanコマンド開発   Artisanコマンドを作成する   MyCommand.phpの内容を確認する   シグネチャと説明を用意   コマンドの出力を作成するhandleメソッド   引数を利用する   可変長引数の利用   オプションの利用   インタラクティブな操作   複数項目の選択   出力の形式について   テーブル出力について   クロージャコマンドについて

詳細! PHP 8 + MySQL入門ノート XAMPP + MAMP 対応

大重美幸
ソーテック社
おすすめ度
54
紹介文
PHPのシンタックス、Webページ作成までを詳しいコード注釈と図解。PHP 8の基本と新機能を手軽に確認したい人にも最適! 詳しいコード注釈と図解。PHP 8の新機能もすばやくキャッチ 本書は、プログラマとしての道をPHPでスタートしようという人、他のプログラム言語の経験はあるがPHPはきちんと学んだことがないという人を対象にしています。PHP 8の基本と新機能を手軽に確認したい人にも勧められる1冊です。 Part 1 PHPをはじめよう PHPを学習するにはPHPを試せる環境が必要です。WindowsとmacOSに対応した無料のXAMPP、MAMPをインストールして、PHP 8とMySQLデータベースが動作するサーバ環境を作りましょう。 Part 2 PHPのシンタックス 変数とは?制御構造とは?からスタートし、関数、文字列や配列の操作、正規表現、さらに無名関数、オブジェクト指向プログラミングにも踏み込みます。初心者には続ける努力が求められますが、注釈とマーキングを助けに豊富なサンプルコードを繰り返し読み込めば必ず結果が付いてきます。PHP 8の新機能はバッジが目印です。 Part 3 Webページを作る フォーム入力、セッション、クッキーというもっとも重要な技術を取り上げます。ファイルの読み書きを題材に例外処理と呼ばれるエラー処理も学習します。コラム「セキュリティ対策」でPHPプログラマに欠かせないセキュリティについての意識も高めていきましょう。 Part 4 PHPとMySQL MySQLデータベースを使うにはSQL文という課題が待ち受けています。最初にphpMyAdminを使ってMySQLデータベースの構造を学習し、続いてPHPでSQL文を実行してデータの取り出しと書き込みを行います。プリペアドステートメントやトランザクション処理などを使う総合的なスキル獲得のはじまりです。まさにPHPプログラマとしての実感がわく瞬間と言えるでしょう。 ●新しいWebを作る人になる 簡単な日記や掲示板だったWebが、世界経済や政治、ニュース、医療、流通、教育、娯楽、アート、地球環境に至るまで、人々の日常に深く浸透しています。過去と未来、約束と行動、優しさと悲しみ、興奮と静寂、Webはこれからも人の想いを試すかのように進化します。Web作りは無限を操る終わらない仕事です。新しいWebを作る人を世の中は常に待っています。 (まえがきより) Chapter 1 PHPの準備 1-1 PHPはサーバサイドスクリプト 1-2 PHP+MySQLの環境を作る/XAMPP Windows版 1-3 PHP+MySQLの環境を作る/XAMPP macOS版 1-4 PHP+MySQLの環境を作る/MAMP Chapter 2 変数や演算子 2-1 PHPコードの開始タグと終了タグ 2-2 ステートメントの区切りとコメント 2-3 変数と定数 2-4 文字や変数の値を表示する 2-5 演算子 Chapter 3 制御構造 3-1 条件によって処理を分岐する if文 3-2 値によって処理を分岐する switch文 3-3 値によって処理を分岐する match式 3-4 条件が満たされている間は繰り返す while文、do-while文 3-5 カウンタを使った繰り返し for文 Chapter 4 関数を使う 4-1 関数 4-2 ユーザ定義関数 4-3 変数のスコープ 4-4 より高度な関数 Chapter 5 文字列 5-1 文字列を作る 5-2 フォーマット文字列を表示する 5-3 文字を取り出す 5-4 文字の変換と不要な文字の除去 5-5 文字列の比較と数値文字列 5-6 文字列の検索 5-7 正規表現の基本知識 5-8 正規表現でマッチした値の取り出しと置換 Chapter 6 配列 6-1 配列を作る 6-2 要素の削除と置換、連結と分割、重複を取り除く 6-3 配列の値を効率よく取り出す 6-4 配列をソートする 6-5 配列の値を比較、検索する 6-6 配列の各要素に関数を適用する Chapter 7 オブジェクト指向プログラミング 7-1 オブジェクト指向プログラミングの概要 7-2 クラス定義 7-3 クラスの継承 7-4 トレイト 7-5 インターフェース 7-6 抽象クラス Chapter 8 フォーム処理の基本 8-1 HTTPの基礎知識 8-2 フォーム入力処理の基本 8-3 フォームの入力データのチェック 8-4 隠しフィールドでPOSTする 8-5 クーポンコードを使って割引率を決める 8-6 フォームの作成と結果表示を同じファイルで行う Chapter 9 いろいろなフォームを使う 9-1 ラジオボタンを使う 9-2 チェックボックスを使う 9-3 プルダウンメニューを使う 9-4 リストボックスを使う 9-5 スライダーを使う 9-6 テキストエリアを使う 9-7 日付フィールドを利用する Chapter 10 セッションとクッキー 10-1 セッション処理の基礎 10-2 フォーム入力の値をセッション変数に入れる 10-3 複数ページでセッション変数を利用する 10-4 クッキーを使う 10-5 クッキーで訪問カウンタを作る 10-6 複数の値を1つにまとめてクッキーに保存する Chapter 11 ファイルの読み込みと書き出し 11-1 SplFileObjectクラスを使う 11-2 フォーム入力をテキストファイルに追記する 11-3 新しいメモを先頭に挿入保存する 11-4 CSVファイルの読み込みと書き出し Chapter 12 phpMyAdminを使う 12-1 MySQLサーバとphpMyAdminを起動する 12-2 phpMyAdminでデータベースを作る 12-3 リレーショナルデータベースを作る Chapter 13 MySQLを操作する 13-1 データベースユーザを追加する 13-2 データベースからレコードを取り出す 13-3 レコードの抽出、更新、挿入、削除 13-4 フォーム入力からMySQLを利用する 13-5 リレーショナルデータベースのレコードを取り出す 13-6 トランザクション処理

PHPフレームワーク Symfony 4入門

掌田津耶乃
秀和システム
おすすめ度
54
紹介文
PHPフレームワークの中でも高い信頼性で知られるSymfony(シンフォニー)の最新バージョン4系列の解説書です。  PHPでWebアプリケーションを開発するフレームワークには種々ありますが、常に高い評価を得ているのがSymfony(シンフォニー)。実績も安定感も抜群です。そのSymfonyが2017年末にバージョン4になり、2018年5月には4.1がリリースされて高速化・軽量化が図られています。本書は、そんな新しいSymfonyのわかりやすい入門書です。  もし、あなたが「PHPのスタンダードといえて、この先、もっとも安定して使い続けられるもの」を選びたいと思ったなら、学ぶべきはSymfonyでしょう。Symfonyは、MVCアーキテクチャーに基づいて設計されており、およそWebアプリケーション開発に必要となる諸機能をほとんど網羅しています。非常に堅牢であり、大規模開発に多くの実績を持っています。また、現在のバージョン4ではマイクロサービスを導入するなど、王道を歩みながらも常に最新の技術を取り入れています。あらゆる機能をカスタマイズし、開発者がすべてを制御できるように設計されているのも特徴です。  しかも、現在人気急上昇中であるLaravelや、日本で人気の高いCakePHP、アジアや東欧などで広く使われるYiiなど、多くのフレームワークが、実は内部でSymfonyを使っています。そういった意味でも、SymfonyはPHPの「スタンダード」といえます。PHPフレームワークの中央にSymfonyがあり、それを中心にあらゆるフレームワークが構築されている、といってもよいでしょう。 Chapter 1 Symfony を準備する 1-1 インストールとセットアップ 1-2 プロジェクトの作成と実行 Chapter 2 コントローラーとルーティング 2-1 コントローラーの基本 2-2 コントローラーに関する諸機能 Chapter 3 テンプレートとビューの基本 3-1 Twig テンプレートの利用 3-2 フォームの利用 3-3 Twig テンプレートを使いこなす Chapter 4 データベースとDoctrine ORM 4-1 データベース利用の準備 4-2 エンティティとリポジトリの基本 4-3 CRUD の基本 Chapter 5 データベースを使いこなす 5-1 検索とリポジトリの拡張 5-2 検索を更に探求する 5-3 DQL/SQL の実行 5-4 バリデーション 5-5 複数テーブルの連携 Chapter 6 ページネーション、ファイルアクセス、フラッシュメッセージ、ユーザー認証 6-1 ページネーション 6-2 ファイルアクセス 6-3 フラッシュメッセージ 6-4 ユーザー認証 Chapter 7 Symfony の拡張 7-1 サービスの作成 7-2 バリデーターの作成 7-3 Twig の拡張

PHPサイバーテロの技法―攻撃と防御の実際

GIJOE
ソシム
おすすめ度
54
紹介文
攻撃方法を詳細に解説し、それに対する適切な防御方法を明示。開発者が安全で攻撃に強いアプリケーションを作る上で、必要な知識を凝縮。 1 Webアプリケーションのセキュリティとは 2 Webアプリケーションを実際に攻撃してみよう 3 攻撃方法14種類総ざらえ 4 Webアプリケーションセキュリティの理論 5 HTTPセッションから攻撃の本質を知る 6 脆弱性スキャナーを利用する 7 チャート式:脆弱性の見つけ方

PHPフレームワーク Laravel Webアプリケーション開発 バージョン5.5 LTS対応

竹澤 有貴
ソシム
おすすめ度
54

動かして学ぶ! Laravel開発入門

山崎 大助
翔泳社
おすすめ度
54
紹介文
デジタルハリウッドの講師が教えるLaravel入門書の登場! デジタルハリウッド・ジーズアカデミー人気講師直伝! PHPの人気フレームワークLaravel(ララベル)で Webアプリ開発に挑戦しよう! 【本書の概要】 デジタルハリウッド・ジーズアカデミーなどでLaravel講座をもつ著者が、多くの受講生の声を反映して執筆したLaravelの入門書です。 サンプル作りを通して、LaravelによるWebアプリの設計・作成の基本、ルーティング、リエクスト処理、ビュー、認証、ページネーション、モデルのリレーション、ファイルアップロードの基本などを一通り学ぶことができます。 【Laravelとは】 LaravelはMicrosoftの.NETの開発に関わっていたTaylor Otwell氏によって開発され、 PHPの世界で最も人気のあるフレームワークの1つです。 【本書の開発環境について】 本書の開発環境はAWS Cloud9を利用しています。 WindowsもしくはmacOSでLaravelの環境を作ろうとすると、環境構築に1、2時間を要してしまうことがかなりあります。 その点、ブラウザだけで開発できるAWS Cloud9を利用すれば、開発環境を手軽に設定できるため非常に効率よく学習することができます。 【Laravelのバージョン】 Laravel 6.x(LTS) 【読者対象】 LaravelによるWebアプリ開発初心者 【本書のゴール】 本書を読み終わった後、基本的なLaravelの利用方法を習得できることを目的としています。 【著者プロフィール】 山崎大助(やまざき・だいすけ)ジーズアカデミー学校長。デジタルハリウッド大学大学院 教授。 専門はフロントエンド、Webアプリケーション。 2013年 全世界で9人しかいないMicrosoft MVP(Bing Maps Development)の1人として受賞、 現在もMicrosoft MVP(Developer Technologies)を受賞している。 著書に『レスポンシブWebデザイン「超」実践デザイン集中講義』(SBクリエイティブ)、 『jQueryレッスンブック jQuery2.X/1.X対応』(ソシム)がある。 公開しているWebサービスに『LaravelDB.com』『BingMaps GO!』がある。 Chapter 1 PHPフレームワーク「Laravel」とは 01 Laravelフレームワークとは 02 まとめ Chapter 2 開発環境の準備 01 Laravelの開発環境について 02 AWS Cloud9を利用する 03 まとめ Chapter 3 Laravelのインストール 01 本書でよく使うコマンドやコードについて 02 AWS Cloud9の環境準備 03 Laravelフレームワークの準備 04 毎回使うコマンド  05 データベース環境の準備 06 MySQLを使用しない場合(SQLiteを選択する) 07 Laravelのルートディレクトリ:フォルダ構成について 08 まとめ Chapter 4 練習アプリ:本管理アプリを作る 01 練習アプリ「本管理アプリ」を作る流れ 02 AWS Cloud9の設定を変更する:隠しファイルを表示する 03 MySQLデータベースとの接続を設定する 04 AWS Cloud9の設定を変更する:自動保存の設定にする 05 まとめ Chapter 5 本管理アプリ:データベースにテーブルを作成する 01 テーブルを定義するマイグレーションファイルについて 02 マイグレーションファイルでbooksテーブルを定義する 03 まとめ Chapter 6 本管理アプリ:モデルを作成する 01 Eloquent(エロクイント)モデルを利用する 02 モデルのルールを変更する方法 03 まとめ Chapter 7 本管理アプリ:ルート定義を作成する 01 ルート定義について 02 ルート定義のスケルトンを作成する 03 まとめ Chapter 8 本管理アプリ:ログイン認証機能を追加する 01 ログイン画面とレジスター画面を確認する 02 ログイン機能とレジスター機能を実装する 03 ログイン実装用のコマンドについて  04 まとめ Chapter 9 本管理アプリ:レイアウトとビューを作成する 01 ビューについて(レイアウト・テンプレート) 02 レイアウトとビューを作成する 03 Bladeテンプレートの変数について 04 「JavaScript&CSS」ファイルの配置場所は「public」フォルダになる 05 まとめ Chapter 10 本管理アプリ:本の追加登録処理を作成する 01 本の追加登録処理を作成する 02 送信データの確認を行う/本の登録処理を作成する 03 まとめ Chapter 11 本管理アプリ:本を一覧表示する機能を作成する 01 登録している「本」を一覧表示する機能を作成する 02 Bladeテンプレートの制御構文について 03 まとめ Chapter 12 本管理アプリ:本のデータ削除機能を作成する 01 本のデータ削除機能を作成する 02 課題1(課題1.1、1.2) 03 課題1(課題1.1、1.2)の解答について 04 課題1.1の解答 05 課題1.2の解答 06 まとめ Chapter 13 本管理アプリ:ルート定義以外の各処理をコントローラに移動する 01 ルート定義からコントローラに各処理を移動する 02 コントローラについて 03 ルーティング・コントローラ・ビューの流れ 04 BooksControllerを作成(更新処理)する 05 コントローラへ登録処理を追加する 06 課題2(課題2.1、2.2、2.3) 07 課題2.1の解答 08 課題2.2の解答 09 課題2.3の解答 10 まとめ Chapter 14 本管理アプリ:ページネーションを使用する 01 ページネーションを使用する 02 まとめ Chapter 15 本管理アプリ:SESSIONを利用する 01 SESSIONの仕組み 02 SESSIONを利用する 03 まとめ Chapter 16 本管理アプリ:ログイン認証機能を追加する 01 ログイン認証の処理を追加する 02 Route::groupを使ったログイン認証について 03 ログイン認証したユーザー情報を取得する 04 ログイン認証したユーザーが登録した情報のみを表示させる 05 まとめ Chapter 17 本管理アプリ:ファイルのアップロード機能を追加する 01 ファイルのアップロード機能を追加する 02 まとめ Chapter 18 本管理アプリ:モデル記述コードのチェック(tinker)・テストデータの自動生成(Seeder)を行う 01 tinkerコマンドでモデルの記述コードを確認する 02 Seeder(テストデータを自動生成)による処理を実装する 03 まとめ Chapter 19 本管理アプリ:バリデーションメッセージを日本語化する 01 英語のバリデーションメッセージを日本語化する 02 まとめ Chapter 20 本管理アプリ:デバッグ用ヘルパー関数を利用する 01 デバッグ用のddd()関数を利用する 02 まとめ Chapter 21 本管理アプリ:phpMyAdmin管理ツールをインストールする 01 phpMyAdmin管理ツールをインストールする 02 まとめ Chapter 22 モデルで利用できる便利なメソッド 01 モデルのメソッド 02 まとめ Chapter 23 Eloquentリレーションから見るモデルとリレーションの関係 01 Eloquentリレーションについて 02 まとめ

PHPしっかり入門教室 使える力が身につく、仕組みからわかる。

小原 隆義
翔泳社
おすすめ度
54
紹介文
Web業界の即戦力になる! 本書はPHPによるWebアプリケーション開発をゼロから学べる教科書です。 初心者の方でも読み進められるように、サンプルデータを使いながら丁寧に解説していきます。HTMLやCSSの知識がなくても、すぐに学習が開始できます。さらに、現場で使える技術を厳選して学んでいけるので、効率よく実務スキルが身につきます。 著者は実際にスクールやセミナーでPHPを教えてきた経験から、初心者がどこでつまづきやすか、理解しづらいかを熟知しています。どんなかたでも、途中であきらめることなく、確実に学び通せるようになっています。読み通した時、きっと新しい扉が開いたことを実感していただけるでしょう。 Part1(準備編)では、PHPのプログラミングに必要なソフトやツールの役割、使い方を理解します。Part2(構文&制作編)では、PHPやSQLの構文を理解し、小型のアプリを作ることで制作の流れを体験しながら学びます。 Part3(実務編)では、大型課題をこなし制作に係る重要事項を押さえることで、実務レベルのスキルを育てます。 Appendix(付録)では、現場では必須になっているバージョン管理(Git)やフレームワーク、エラー対処法などについて解説しています。 Part1 準備編 1章 Webプログラミングの環境を構築する 2章 Webサービスの仕組みを理解する Part2 構文&制作編 3章 変数にデータを格納する 4章 if文を使って処理を分岐する 5章 while,forで処理を繰り返す 6章 配列を使って複雑なデータを管理する 7章 データベースと連動する 8章 GETとPOST 9章 正規表現と文字列 10章 メール送信とファイル操作 11章 関数を使って処理をまとめる 12章 COOKIEとSESSION Part3 実務編 13章 ログイン認証 14章 実務に必要な知識・技術 Appendix 付録 A1 Gitを使う A2 フレームワークの特徴と種類 A3 エラーの対処法 Part1 準備編 1章 Webプログラミングの環境を構築する 2章 Webサービスの仕組みを理解する Part2 構文&制作編 3章 変数にデータを格納する 4章 if文を使って処理を分岐する 5章 while,forで処理を繰り返す 6章 配列を使って複雑なデータを管理する 7章 データベースと連動する 8章 GETとPOST 9章 正規表現と文字列 10章 メール送信とファイル操作 11章 関数を使って処理をまとめる 12章 COOKIEとSESSION Part3 実務編 13章 ログイン認証 14章 実務に必要な知識・技術 Appendix 付録 A1 Gitを使う A2 フレームワークの特徴と種類 A3 エラーの対処法

30時間アカデミックPHP入門

晃一, 大川
実教出版
おすすめ度
54
紹介文
大学・専門学校での実習用テキストシリーズ。PHPの基礎から丁寧に解説。実習を通してPHPの基本を身につけられる。 大学・専門学校での実習用テキストシリーズ。PHPの基礎から丁寧に解説。実習を通してPHPの基本を身につけられる。1冊を通して1つのプロジェクト(オンライン宿泊予約システム)を完成させる内容の実習。 もくじ 序章 はじめに  1.本書で開発するオンライン予約システムについて 1章 Webアプリケーションの概要  1.サーバーとクライアント  2.リクエストの種類  3.Webアプリケーション開発環境について 2章 HTML5によるWebページ作成  1.HTMLの基礎知識  2.CSSの基礎知識 3章 PHPの初歩  1.PHPの基本  2.PHPのスクリプトをHTMLに埋め込む  3.型と変数  4.制御構造  5.配列・連想配列 4章 データベースの利用  1.データベースとは  2.データベースの作成  3.SQLでのレコード抽出  4.SQLでのレコード挿入  5.SQLでのレコード更新  6.SQLでのレコード削除 5章 オンライン予約システムの実装~トップページから部屋詳細表示~  1.トップページの実装  2.部屋一覧ページの実装~すべての部屋表示  3.部屋一覧ページの実装~タイプ別の部屋表示  4.部屋詳細ページの実装  5.処理コードの共有化  6.データベース設定の共有化 6章 オンライン予約システムの実装~予約機能~  1.空室確認を行う  2.空室の部屋情報を表示する  3.予約詳細情報画面を作成する  4.予約詳細入力画面を完成する  5.予約最終確認画面までの流れを作成する  6.予約完了画面を作成する 7章 オンライン予約システムの実装~予約管理機能~  1.すべての予約情報の一覧表示を行う  2.指定した日付区分の予約情報の一覧表示を行う  3.削除機能を実装しよう  4.ログイン機能を実装する 終章 おわりに  1.完成したオンライン予約システムと今後について さくいん

みんなのPHP 現場で役立つ最新ノウハウ!

石田 絢一(uzulla)
技術評論社
おすすめ度
54
紹介文
PHP開発の現場で役立つノウハウを、最新の動向を踏まえてわかりやすく解説します。PHP開発環境の構築、PHP 7以降で導入された新たな文法の解説とそれらを活用するためのポイント、パッケージ管理システムComposerの使いこなし術、多様なインフラ上で動作するPHP実行環境の整理、ユニットテストやCI/CD導入ノウハウ、人気のフレームワークLaravelの活用ポイントなど、PHPをもっと使いこなすための情報満載でお届けします! 第1章 PHPの開発環境概観 1.1 開発環境を自分で作ってみよう 1.2 使用するエディタについて 1.3 Windowsにおける開発環境構築 1.4 macOSにおける開発環境構築 1.5 Vagrantを使った開発環境構築 1.6 Dockerを使った開発環境構築 第2章 PHP最新文法ガイド 2.1 構文はなぜ常に新しくなっていくのか 2.2 構文に関わる変更内容一覧 2.3 よく使われる構文とその使い方 2.4 情報のキャッチアップ 第3章 Composer 120%活用術 3.1 Composerの基本的な使い方 3.2 少し進んだComposerの使い方 第4章 PHP実行環境の構築・運用 4.1 ビルトインウェブサーバーによるPHP実行環境の構築・運用 4.2 VPSにおけるPHP実行環境の構築・運用 4.3 レンタルサーバーにおけるPHP実行環境の構築・運用 4.4 コンテナ(GCP/Cloud Run)におけるPHP実行環境の構築・運用 4.5 FaaS(AWS/Lambdaカスタムランタイム)におけるPHP実行環境の構築・運用 第5章 PHPにおけるユニットテストとCI/CD 5.1 ユニットテストの育て方 5.2 いまどきのCI/CD事情 5.3 AWS CodePipelineを使用したCI/CD環境の導入 5.4 Azure DevOpsを使用したCI/CD環境の導入 第6章 LaravelによるPHPアプリケーション開発 6.1 Laravelの開発環境を構築する 6.2 Laravelを使ったアプリケーション開発 6.3 ファサードの役割と仕組みを理解する 6.4 MVCだけに留まらないための設計の話 第7章 厳選! PHP活用テクニック紹介 7.1 PHPによるファミコンエミュレータの実装 7.2 PHPにおける正規表現の今までとこれから 7.3 ストリームフィルタを用いた透過的なCSV入出力 7.4 Slimで学ぶMiddleware入門 7.5 PHPで学ぶバイナリファイルの読み方 7.6 巨大な数や誤差のない小数をPHPで扱う 7.7 PHPで堅牢なプログラミングをするためのノウハウ 7.8 PHP 7(Laravel 5.8)とSlack APIで遊んでみる

【Amazon.co.jp 限定】1冊ですべて身につくWordPress入門講座(DL特典: WordPress ブロック一覧 チートシート)

Mana
SBクリエイティブ
おすすめ度
54
紹介文
趣味やビジネスに使える 【読者の圧倒的な支持!シリーズ累計35万部!】 【全国の書店員がオススメする本 第1位受賞を連発!】 【2022年WordPressの本の中で売上第1位!】 ゼロからはじめて、すぐにWebサイトが作れる! 最初の一歩が踏み出せる! Webサイト制作の基礎知識 体系的に学べる! WordPressの基本とテーマの使い方 最新技術に対応! サイト全体をカスタマイズできるフルサイト編集 見てもらえるサイトの作り方、セキュリテイ、トラブル対策まで 「コード」が書けなくても「サイト」は作れる! WebクリエイターボックスのManaが教える コードを使わない サイト制作の入門スキル。 この1冊で必要なことがすべて学べる! 趣味やビジネスに使える ●本書の対象読者 ・これからWebサイトを作り始める初心者 ・コードを書かずにWebサイトを作りたい人 ・Webサイトをビジネス、ブログ等に利用したい人 ・パソコンとスマートフォンの両対応のサイトを作りたい人 ・WordPressの基本から最新技術まで一気に学びたい人 ・駆け出しのWebデザイナー サンプルデータはWebサイトよりダウンロードできます。 ●CONTENTS ----------------------------------------------- CHAPTER 1 最初に知っておきたい!WebサイトとWordPressの基礎知識 CHAPTER 2 WordPressでWebサイトを作ろう! CHAPTER 3 テーマをカスタマイズしよう! CHAPTER 4 Webサイトを見てもらうために必要なこと CHAPTER 5 セキュリティ対策とエラーが出た時の対処法 CHAPTER 6 オリジナルテーマ作りに挑戦してみよう!

ゼロから学ぶ はじめてのWordPress [バージョン6.x対応]

泰道ゆりか
SBクリエイティブ
おすすめ度
54
紹介文
WordPressでWebサイト制作を始めるならこの1冊から! 初心者でも簡単にきれいなWebサイトが作れる! これからWebサイト制作を始める方のためのWordPressの入門書です。 Webサイト制作の基本的な知識やWordPressの操作方法を操作画面や図を用いて一つひとつ丁寧に解説しています。 本書では現代にあったデザインのサンプルファイルを用意し、初心者でも基本を学びながら、きれいなWebサイトが作れるような構成になっています。 最新バージョン 6.xに対応したWordPress入門書! ■本書のポイント ・図や操作画面を豊富に掲載。わかりやすい解説で、操作につまずかない! ・はじめてでも楽しくおしゃれなサイトが作れる! ・Shopifyと連携させたネットショップの作成方法がわかる! ・ただ作るだけではなく、見てもらえるWebサイトを作るポイントがわかる! Chapter1 Webサイトの基本を知ろう Chapter2 WordPressとは Chapter3 WordPressをはじめる準備をしよう Chapter4 WordPressをインストールしてWebサイトを開設しよう Chapter5 Webサイト制作をはじめよう Chapter6 お知らせページを作ろう~投稿の作り方~ Chapter7 トップページとメニューページを作ろう~固定ページの作り方~ Chapter8 プラグインで便利な機能を追加しよう Chapter9 カート機能を実装してネットショップページを作ろう Chapter10 ナビゲーションの設定をしよう Chapter11 Webサイトの集客を図ろう Chapter12 Webサイトの安全な運営方法を知ろう
search