派遣で働くエンジニアのスキルアップを応援するサイト

PRODUCED BY RECRUIT

PHPと一緒に学んで効率UP?関連技術を知ろう

前回解説したように、Laravelを使うとWebアプリの枠組みだけは比較的簡単に作成できます。しかし、Webアプリを開発するためには、PHPやLaravelだけを学ぶだけでは足りません。

PHPはWebアプリの開発に使われる言語なので、Webについての関連技術を併せて学ぶことで、よりスムーズに学びを活かすことができます。そこで、今回はPHP以外に学んでおくとよい技術を紹介します。

HTML/CSS

静的なWebサイトであっても、動的なWebアプリであっても、Webブラウザで表示するためにはHTML(Hypertext Markup Language)という言語で記述する必要があります。そして、HTMLで記述したWebページの見た目やレイアウトを制御するにはCSS(Cascading Style Sheets)も使います。つまり、PHPでWebアプリを開発する場合も、HTMLとCSSの知識は必須です。

HTMLは、Webページの構造を記述します。これは、ページのタイトルや見出し、段落、箇条書きなどを「タグ」と呼ばれる記述で囲って表現します。たとえば、次のように書いたとき、「<title>」と「</title>」という間がページのタイトル、「<h1>」と「</h1>」の間が見出し、といった具合です。

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>サンプルページ</title>
</head>
<body>
    <h1>サンプル</h1>
    <p>
        これはサンプルです。
    </p>
</body>
</html>

一方のCSSは、上記のHTMLで作成されたWebページの見た目を変えるために使われます。文字のフォントの色やサイズ、要素間の空白の量、背景画像、色などさまざまな要素を細かく調整できます。

たとえば、見出しのデザインを変えるには、次のようなCSSが考えられます。

h1 {
    padding: 0.5em;
    color: #484848;
    background: #fffaf4;
    border-left: solid 5px #ffaf48;
}

上記で作成したHTMLに、このCSSを適用すると、次のようなWebサイトとして表示されます。

最近はBootstrap(https://getbootstrap.com)などのCSSフレームワークを使うことで、CSSを書く量は減りましたが、それでもCSSについての知識はWeb開発者にとって必須です。

エンジニアスタイルでHTML・CSSを学ぶ

Web技術(HTTP)

PHPはWebサーバー上で動作するプログラミング言語として使われることが多いため、Webブラウザとのやりとりが発生します。このときにWebブラウザとWebサーバーの間でデータを送受信するプロトコル(通信規約)として「HTTP(Hypertext Transfer Protocol)」があります。

この連載の第1回で解説したように、WebアプリではWebブラウザからのHTTPリクエストに対してWebサーバーがHTTPレスポンスを送り返します。このHTTPリクエストには、メソッド(GET、POST、PUT、DELETEなど)やURL(リソースの場所)、ヘッダー(メタデータ)などが含まれます。Webアプリは、このリクエストの内容に応じてレスポンスの内容を変えるため、PHPのアプリではリクエストの内容に応じて処理します。そして、HTTPレスポンスとして「200(OK)」や「404(Not Found)」などのステータスコードやヘッダー、応答内容(HTML文書など)を返します。

また、HTTPはステートレスなプロトコルであり、それぞれのリクエストは独立して扱われます。同じ利用者から複数のリクエストが送信されてきても、別々のものとして扱います。これでは商品の購入などで不便なため、Cookieと呼ばれる仕組みも用意しています。

これらについても正しい知識がないと、他者の情報が見えてしまったり、第三者が情報を書き換えられたりする可能性があるため、HTTPの仕組みを知ることは重要です。

Linux/Docker

Webサーバーやメールサーバーを構築するときに使われるレンタルサーバーなどでは、一般的にはUNIX系のOSが導入されています。特にLinuxが使われていることが多いため、普段はWindowsやmacOSを使っている人にとっては少しハードルが高いものです。

それでも、大規模なシステムから小規模なレンタルサーバーまで幅広く使われており、事実上の標準となっています。PHPのプログラムを動作させるときにも一般的に使われているため、最低限のコマンドは覚えるとともに、その運用について知っておく必要があります。

最近では、Linuxを軽量な「仮想マシン」のように動作させるコンテナとして使用する「Docker」を導入することが増えています。Dockerは、アプリケーションとその依存関係を1つのパッケージ(コンテナ)にまとめることで、どの環境でも一貫して動作させることができます。

Dockerを使うことで、仮想マシンよりも手軽に動作させられるだけでなく、複数の開発者の間での実行環境の共有や、本番環境へのデプロイをスムーズに行えるようになります。

DockerやLinuxについて詳しくは、エンジニアスタイルの他の連載などを参考にしてみてください。

エンジニアスタイルでLinuxを学ぶ

エンジニアスタイルでDockerについて知る

データベース

Webアプリでは、会員情報の登録や商品の購入、メッセージの投稿など、利用者に応じて表示を変える仕組みが使われます。これを実現するためには、データを整理してサーバー側に保存し、検索や更新を容易にできるシステムが必要です。

このため、一般的にはデータベースが使われます。Webアプリで使われるデータベースには、関係データベースとNoSQLの2種類があります。

関係データベースは、データを表形式のテーブルに保存する方法で、代表的な製品としてMySQLやPostgreSQLなどがあります。それぞれのテーブルは行(レコード)と列(カラム)から構成され、カラム単位で格納できるデータの種類(型)が決められています。そして、データベースを操作するためにSQLという言語が使われます。

一方のNoSQLは表形式ではなく、その用途にあわせてさまざまな形式でデータを保存する方法で、代表的な製品としてMongoDBやRedisなどがあります。たとえば、キーバリューストアやドキュメントデータベース、グラフデータベースなどがあります。

作りたいWebアプリによって最適なデータベースは異なるため、製品を選定することはもちろん、PHPのプログラムからこれらのデータベースに接続して操作できるようになる必要があります。

SQLについても、エンジニアスタイルの他の連載を参考にしてみてください。

エンジニアスタイルでSQLを学ぶ

▼PHP学びの入口
1: PHPはどんなところで使われている?
2: Laravelってどんなの?フレームワークを実例で紹介
3: PHPと一緒に学んで効率UP?関連技術を知ろう

【筆者】増井 敏克さん
増井技術士事務所代表。技術士(情報工学部門)。情報処理技術者試験にも多数合格。ビジネス数学検定1級。「ビジネス」×「数学」×「IT」を組み合わせ、コンピュータを「正しく」「効率よく」使うためのスキルアップ支援や、各種ソフトウェアの開発、データ分析などを行う。著書に『Pythonではじめるアルゴリズム入門』『図解まるわかり プログラミングのしくみ』『「技術書」の読書術 達人が教える選び方・読み方・情報発信&共有のコツとテクニック』、最新刊の『実務で使える メール技術の教科書』(以上、翔泳社)がある。

※本記事に記載されている会社名、製品名はそれぞれ各社の商標および登録商標です。

リクルートスタッフィング