こんにちは。yuki(@Ryuki_4648)です。
プログラマー養成科の職業訓練・17週目のまとめです。
※事情により今回で授業まとめは終わりにします。
今週はPHP(応用編)あり、金曜日からWordpressの授業がはじまりました。
※PHPの教科書は詳細! PHP 7+MySQL 入門ノートを使用しました。
Amazonで見る→ 詳細! PHP 7+MySQL 入門ノート (日本語) 単行本
前回の16週目のまとめはこちらです。

1.MySQLを操作する
前週に引き続き、MySQL、phpMyAdminを使いました。
新規レコードの追加
フォームで入力された値をPOSTで受け取り、SQL文(INSERT INTO)を使ってレコードを追加しました。
SQL文そのものは下記のようなシンプルなものです。
1 2 3 |
// SQL文を作成する $sql = "insert into テーブル名 (name, age, gender) values (:name, :age, :gender)"; |
リレーショナルデータベース
外部キーでリレーションしている複数のテーブルの値を取り出す操作を行いました。
実際に扱う「テーブル」(データが格納されているもの)は1つだけでなく、複数あることのほうが多いです。
「リレーション」とは、そのような複数のテーブル同士の関係を設定し、関連付けるものです。
まとめると、
関連づいているいくつかのテーブルから、データを取り出す作業を行いました。
▽ 【SQL入門】外部キーとは?主キーとの関係や作成方法について解説
as演算子
as演算子を使って別名を付けることができます。
複数のテーブルを扱っていると、フィールド名がごちゃごちゃになって分かりにくくなることもあります。
別名をつけることで、どれがどのテーブルの項目かわかりやすく、SQL文も読みやすくなります。
▽ SQL Server ASで別名をつける
トランザクション処理
データベースの操作において欠かすことのできないトランザクション処理。
データを処理を行うにあたり、必ずすべての処理が成功しなければなりませんが、たくさんのデータを扱っていると、エラーが起こる可能性もあります。
そこで、エラーがあれば元に戻す仕組みが「トランザクション処理」です。
「例外処理」と組み合わせて行います。
トランザクション処理 → データベース操作の完了 → コミットの実行 →トランザクション処理の完了
という流れです。
コミットするまではやり直すことができます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
// php ファイル try { // トランザクション処理の開始 $pdo->beginTransaction(); ~データベースの処理~ // トランザクション処理の完了 $pdo->commit(); } catch (Exception $e) { // エラーがあれば、元に戻す $pdo->rollBack(); } |
▽ PDOのトランザクション
▽ PDO::beginTransaction
2.Spl File Objectクラス
なにができるの?
データをテキストファイルに保存する
テキストファイルから、データを読み込む
ことができるようになります。
また、ここでの保存や読み書きはサーバーサイドで行われます。
=パソコンのハードディスクに直接ファイルを読み書きしない
オープンモード
オープンモードによって、ファイルにデータを読み込むのか書き込むのか、両方できるのかを指定することができます。

ヒアドキュメント
ヒアドキュメント構文を使うと、複数の文字列を簡単に作ることができます。
識別子はなんでもいいとされていますが、EOD、EOT、EOL、ENDなどがよく使われています。
文字列…
文字列…
識別子;
1 2 3 4 5 6 7 8 |
<?php <<< "EOD" ここに文章を書くことができます brを書かなくても、改行してくれます 変数を使った文章も作れます EOD; ?> |
ファイルロックする
ファイルの書き出し・読み込みの際に、同時に他の人が作業できないようにファイルロックを行います。
1 2 3 4 5 |
// ファイルロック(排他ロック) $file->flock(LOCK_EX); // アンロック $file->flock(LOCK_UN); |
ファイルロックの種類
- LOCK_SH:共有ロック
- LOCK_EX:排他ロック
- LOCK_UN:ロックの解除
- LOCK_NB:ロック解除を待たずに、falseを返す
▽ ファイルをロックする(flock)
3.PHPの小テスト
職業訓練校では単元が終わるごとに小テストがあります。
小テストや発表系はわりと多めなのかな~と思います。
小テストは60点未満だと再テストになるそうです。
(ずっと60点未満だったらどうなるかは知らない)
形式は先生によって異なりますが、今回は○×問題と穴埋め(選択肢あり)形式でした。
○×問題は基本的な知識を問うもので、↓のような感じです。
- PHPはサーバーサイドスクリプト
- PHPの変数について
- 配列は参照渡し?値渡し?
- 連想配列について
- セッションとCookieの違い
- 変数名・定数名の付け方
- インスタンス、メソッド、プロパティについて
- PHPファイルの書き方
- PHPとDBMS
残りは、
入力した値を使って計算したり、データベースに登録するコードの穴埋め問題でした。
require_once、implode、ctype_digit 、session_startなどこのブログでも取り扱った基本的なものが多かったです。
私の場合は穴埋めだと逆に分からなくなるタイプですが、落ち着いてやれば必ず解けるレベルの問題だと思います。
4.Wordperss 1日目
金曜からWordpressの授業がありました。
4日間しかないので、かなり基本的な部分になるのかな、と思います。
前のデザイン会社でWordpressはよく使っていたのと、このブログもWordpressでできているので、この単元は基本部分を復習する感じになりそうです。
WordPressってなに?
Wordpressはオープンソースのブログソフトウェアで、CMS(Contents Management System)の1つでもあります。
誰でも簡単にブログやホームページが作れるよ、みたいな感じです。
CMSとは、
Webサイトのコンテンツを構成する、テキストや画像、デザイン・テンプレートなどを一つに保存・管理するシステムのことです。
▽ CMSとは?初心者でもわかるCMSの基礎知識とメリット、導入事例
WordPressで作られているサイト
カカクコム、クックパッド、チームラボ、スタートトゥデイ(ZOZOやWEARのところ)などのよく知られているサイトは実はWordpressで作られています。
私はいつもサイト上で、
Ctrl+「U」でソースコード表示
→Ctrl+「F」で「wp」と検索かける
→「wp-content……」みたいなコードがいくつかあれば、Wordpressで作ったサイトだなーと思ってみています。
自由にカスタマイズできるので、パッと見ではWordpressかわからないサイトも多くあります。
▽ サイト制作の参考にしたい!WordPressでつくられたウェブサイト50選
WordPressは難しい?
私はWordpressあまり得意でなく、難しいなと思います。
前の会社でサイト制作してたときは、がっつりカスタマイズが必要で、PHPのコードも書いたりしないといけなかったので大変でした。(PHPはほぼコピペしてた)
phpファイルも多くて、どこを触ったらいいのかもわからないし、1つコードを間違えたらページが真っ白で何も表示されないなんてこともありました。
ただ、このブログは有料のテーマ(テンプレート)を買って、適度に色や配置を変えて、記事を適当に投稿していってるだけなのであまり技術はいりません。
単純に個人ブログ作りたいだけなら有料テーマ買って記事書いた方が速いし効率がいいと思います。
ある程度触りながら覚えていけると思います。
Webデザイナー、フロントエンドエンジニアとして働く場合はそれなりの知識と経験が必要だと思いました。
WordPress独自の用語
Wordpressが難しいと感じた理由の一つに、「独自の用語」が挙げられると思います。
例えば「写真・アップロード」って書いてくれたらいいのに「メディア」っていう名前になっています。
- ウィジェット
- アーカイブ
- スラッグ
- カテゴリー:「お知らせ」「プログラミング」など記事のテーマごとに分けられる
- グローバルメニュー
- パーマリンク
- ダッシュボード
- テーマエディター
- カスタマイズ
- タグ:カテゴリーよりもさらに詳細な区分
- 投稿:ブログやニュースの記事を投稿できる
- 固定ページ
- プラグイン:機能を拡張できる。SEO、お問い合わせフォーム系はよく使ってます。
5.感想
諸事情により本日付で職業訓練校・Webプログラマー養成科の授業まとめを終わりにしようと思います。
本当は最後のJava・制作実習まで書きたかったですが、飽き性な割に17週間休まず書くことができたのでよかったです。
ブログを書く大変さを知る良い機会になりました。
アイキャッチ画像のデザインを考えて作るのも大変でしたが楽しかったです。
今後も勉強しながら、メモ代わりに記事を書いていこうと思います。