PHPについて今日は紹介するよ!
- PHPとは?
- PHPができることって?
- PHPの勉強方法は?
- PHPの将来性は?
などの疑問をお持ちの方の悩みを解決できる記事になっています!
この記事では、現役のフリーランスエンジニアがPHPの特徴、できること、将来性、勉強方法について解説します!
記事を読めば、PHPの特徴や効率的な勉強方法について理解できますよ!
それでは、見てみましょう!
- PHPに興味がある人
- PHPで何ができるか知りたい人
- PHPの学び方を知りたい人
目次
PHPとは?
PHPはオープンソースのプログラミング言語です。PHPはWebアプリケーション開発に適しており、サーバーサイドで動作します。
RubyやPython同様にスクリプト言語で、初心者にも読みやすく、書きやすいように設計されています。
以前は、LAMP環境と言って、Linux、Apache、MySQL、PHPというサーバー構成が主流でした。現在ではクラウド化の影響や周辺技術の進化で多様なサーバー構成になっていますが、PHPは今現在でも使われています。
PHPはコンパイル言語と違って、書いたコードをすぐ実行できるのでスピーディな開発ができます。最近では、スタートアップ企業で「Laravel + Vue.js」の組み合わせがよくみられます。
また、PHPはWordPressにも使われています。Wordpressでブログ運営をされている方は多いのではないでしょうか。PHPを習得すると、Wordpressの拡張や変更、プラグイン開発ができるようになります。
PHPは、TOIBE指標のような人気や成長の度合いからプログラミング言語を測る指標のほとんどで、 トップ10内にランクインし、日々進化を遂げています。
PHPの特徴とは?
PHPの特徴は、次の通りです。
- 文法が簡潔で初心者にやさしい
- オブジェクト指向言語
- スクリプト言語
- Composerでパッケージ管理
- Webアプリケーションフレームワークが充実
- 本・ドキュメントサイトが充実している
文法が簡潔で初心者にやさしい
PHPの特徴は、文法がシンプルで初心者にも書きやすいことです。
PHPは他の言語と比べると記述量が少なく、直感的にコードを書けます。
簡単なサンプルコードを見てみましょう。
$array = array('りんご' => 100, 'みかん' => 200, 'もも' => 110);
var_dump($array['りんご'])
実行結果:
int(100)
変数には、$
を先頭につけます。
そして、var_dump
で変数の値を出力しています。
私もプログラミングを始めたときは、PHPでした。PHP全盛期でもあったし、多くの企業やサービスでPHPが使われていました。
PHPは歴史が長く、コミュニティも活発です。日本語書籍や、プログラミング学習サイトも多いので初心者にはおすすめのプログラミング言語です。
オブジェクト指向言語
PHPはオブジェクト指向のプログラミング言語です。
オブジェクト指向とは、あらゆるデータや対象を「もの」として扱い、「もの」を効率的に組み立ててプログラムを作る手法です。オブジェクト指向は、大量のデータや機能を扱うような大規模開発に向いています。
オブジェクト指向自体は、一つの概念なので他のプログラミング言語でも使うことができます。
PHP以外で、オブジェクト指向を取り入れてるプログラミングは次の通りです。
- Java
- Ruby
- JavaScript
- Python
- C++
スクリプト言語
PHPは、スクリプト言語です。
スクリプト言語とは、プログラムの実行やコードの記述を簡易的にできるプログラミング言語です。
「プログラミングの実行や記述を簡易的にできる」とはどういうことでしょうか。
スクリプト言語とは別に、コンパイル言語というものがあります。
コンパイル言語とは、プログラムを実行する前にコンパイルが必要な言語です。
コンパイルとは、コンピュータが理解できる形式に変換する作業のことを言います。プログラミング言語は人が理解できるように作られています。しかし、コンピュータは理解できません。そのため、人が書いたコードをコンピュータが理解できるように変換してあげる必要があります。
コンパイル言語は、そのコンパイル作業をプログラムの実行前に行います。そしてコンパイルした結果をコンピュータに読み込ませて、プログラムの処理を実行します。
コンパイルが通らないとエラーが出続けるため、プログラムをいつまでも実行できません。
そのため、コンパイル言語は
- 記述量が多くなる
- コンパイルに時間がかかる
- 初心者には難しい
などのデメリットがあります。
一方、スクリプト言語にもコンパイル作業は発生します。スクリプト言語のコンパイルは、プログラム実行時に行われます。
そのため、コードを書いてすぐにプログラムを実行できるというメリットがあります。また、コードの記述量も少なくなるように設計されています。
コンパイル言語よりも実行速度が遅くなる側面がありますが、初心者にはわかりやすい作りになっています。
PHPはスクリプト言語です。そのため、コード量が少なく、すぐに実行できるのです。
Composerでパッケージ管理
引用元: Composer
PHPのパッケージ管理は、Composerを使います。Composerとはパッケージ管理システムです。
パッケージ管理とは、アプリケーション開発で必要なパッケージ(ライブラリ)を管理することです。
ライブラリとは、便利な機能がまとまったものです。例えば
- メール送信ライブラリ
- フォームライブラリ
- テスト管理ライブラリ
- ログイン機能ライブラリ
- 検索機能ライブラリ
- 画像アップロードライブラリ
などがあります。ライブラリは、プログラミング開発をサポートするために作られたひとまとまりの機能です。自分のサービスにメールやログイン機能を入れたければ、「自分で実装する」か「ライブラリを使用する」ことになります。スピーディに開発をしたい場面では、「ライブラリを使用する」機会が圧倒的に多いです。なぜなら、「自分で実装する」場合はゼロから作らなければならず、コストがかかるからですね。その点、ライブラリは既に出来上がっているのですぐに機能を追加ができます。
エンジニアはアプリケーションで必要なライブラリをインストールしますが、ライブラリの数が多くなると管理も大変になります。その管理の複雑性を解決するために、Composerが使われます。
Composerは、composer.json
というファイルを作成しその中で必要なライブラリを記載します。一つのファイルにアプリケーションで使用しているライブラリを一元的に管理できるようになっています。
インストール可能なPHPライブラリは、Packagistで確認できます。
Webアプリケーションフレームワークが充実
PHPのコミュニティは活発で、現在でもWebアプリケーションフレームワークの開発が充実しています。
Webアプリケーションフレームワークとは、Webアプリケーションを開発するためのサポート機能がまとまっているツールのことです。
Webアプリケーションには、データベースの操作、httpリクエストの処理、メールなど多くの機能が必要とされます。これら全ての機能をゼロから作ると大変ですよね。Webアプリケーションフレームワークは、そのようなWebに関わる機能が備わっています。そのため、初心者の人でもすぐにアプリケーション開発ができるようになっています。
PHPで使われる主要なWebアプリケーションフレームワークは次の通りです。
- Laravel
- Fuel PHP
- CakePHP
- Symfony
Laravel
引用元: Laravel
Laravelは、データベース機能やログイン機能などを兼ね備えたフルスタックのPHPフレームワークです。Webアプリケーション開発に必要な機能が全て詰まっているので、Laravelだけで開発が完結できます。
日本のスタートアップ系企業の間では、Laravelが広く使われるようになりました。なぜなら、他のフレームワークと比べて学習コストが低く、初心者にも優しい作りになっているからです。
Laravelは、後述するSymfonyをベースに作られています。Symfony自体も人気のフレームワークですが、Symfonyをさらに進化させて、開発しやすいように設計されました。
周辺技術のエコシステムも充実しているので、スピーディな開発に適しています。
Fuel PHP
引用元: FuelPHP
FuelPHPは、PHP5.3以降で動作するPHPフレームワークです。
FuelPHPは軽量で高速に動作するように設計され、標準でMVCモデルを採用し、コードをシンプルに保つための工夫がされています。
また、付属のoilコマンドを使うと、自動でコードの生成ができたり、ライブラリのインストール、データベースのマイグレーションなども行えます。
日本語の公式ドキュメントもあるのでチェックしてみましょう。
CakePHP
引用元: CakePHP
CakePHPは、2005年に登場したPHPのWebアプリケーションフレームワークです。
他のフレームワークと同様に、MVCアーキテクチャを採用し、フルスタックの機能を提供します。
Rubyのフレームワークの「Ruby on Rails」を意識して作られており、フレームワークの規約がある程度決められています。
開発の自由度で言うとLaravelの方がありますが、ディクトリ構成や規約などが決まっている方がいい場合はCakePHPが良いでしょう。
Symfony
引用元: Symfony
Symfonyは、2005年に立ち上げられたMVCアーキテクチャを採用したPHPアプリケーションフレームワークです。
SymfonyはDDD(ドメイン駆動開発)の相性が良く、大規模開発に向いています。ドキュメントは充実していますが、日本語のマニュアルが少ないこうです。そのため学習コストが高いフレームワークでもあります。
しかし、安定してWebサービスを作れるため大人数での開発には適しているでしょう。
どのフレームワークを使えばいいのか
個人的には、Laravelを推します。
理由は次の通りです。
- 開発の自由度が高い・柔軟性がある
- エコシステムが充実している
- 学習コストが低い
最近では、シェアも増えてきたのでコミュニティもより活発化されるでしょう。
しかし、フレームワークの選定は、あつかうビジネスやチームの習熟度によって変わるので一概には言えません。
アーキテクチャなどを設計できるエンジニアがいれば、Laravelを使う。
PHPの習熟度が低ければ、規約がある程度決まっているCakePHPを使うなどして、柔軟に対応していきましょう。
書籍・ドキュメントサイトが充実している
PHPの書籍は充実しています。日本語の書籍も多く、最新のバージョンを学ぶことができます。
書籍はたくさんありますが、いくつかおすすめをご紹介しておきます。
「パーフェクト PHP」で基礎を習得し、次にLaravelの使い方を学習しましょう。いきなりLaravelをやると、文法がわからずに挫折する可能性があるので基礎からやるのをおすすめします。
PHPを使うと何ができるの?
PHPを使うと様々なアプリケーションを開発できます。
よく開発されるアプリケーションは、次の通りです。
- Webアプリケーション
- APIサーバー
- スクレイピングプログラム
Webアプリケーション
Webアプリケーションとは、Webで提供されているサービスのことです。
例えば、ショッピングサイトや求人サービス、ブログなどです。
PHPのWebアプリケーション開発では、Webアプリケーションフレームワークが使われるのが主流です。前述した通り、フレームワークはWebアプリケーション開発に特化した機能が提供されています。エンジニアはゼロから構築しなくても、フレームワークを使えばすぐにWebアプリケーション開発をすることができます。
今では、独自のフレームワークで開発している企業は少ないでしょう。一部、大企業は独自フレームワークを使っているかもしれませんが、ほとんどの企業はオープンソースのPHPフレームワークを使っています。
そのため、上述したフレームワークの使い方を覚えておくといいでしょう。
APIサーバー
PHPは、APIサーバーの開発にも使われます。
APIとは「Application Programming Interface(アプリケーション・プログラミング・インターフェース)」の略で、「プログラム同士をインターフェースを通じで繋げる機能」です。
APIの仕組みを使うと、様々なプログラムを組み合わせて一つのサービスを作ることができます。
例えば、TwitterやインスタグラムもAPIを提供しており、API経由でツイートや写真を取得できます。そして、その取得したデータを自分のWebサイトに表示させることができます。
APIサーバーは、APIの仕組みを利用して、データを提供するサーバーです。
APIサーバー構築でもフレームワークは使われます。LaravelでもAPIサーバーを構築できます。
スクレイピングプログラム
スクレイピングとは、Webサイトにある情報を取得して加工する技術です。
例えば、複数の求人サービスのデータを一度に確認できるWebサイトがあるとしましょう。複数の求人サービスのデータ取得を人の手でやることも可能ですが、膨大な時間がかかります。
その作業をコンピュータにやらせるのが、スクレイピングプログラムです。
PHPでは、「phpQuery」や「Goutte」などでスクレイピングを作ることができます。
PHPで作られているサービス
PHPは人気があり、需要の高いプログラミング言語です。日本国内でも多くの企業がPHPを使用しています。
PHPが使われている代表的なサービスは次の通りです。
- Slack
- ぐるなび
- ココナラ
- Schoo
これからWebエンジニアを目指す人は、PHPがおすすめです。
なぜなら、初心者が学習しやすく、需要があるためです。
すぐに習得はできませんが、使いこなせるようになれば強力な武器になります。
PHPが使えるとなれる職種
PHPが使えると、バックエンドエンジニアになれます。
バックエンドエンジニアは、Webサイトの裏方の役割をします。
裏方の役割とは、サーバーやデータベースの仕組みを作ることです。
例えば、ショッピングサイトでは、商品の管理や在庫の管理、決済の手続きなど多岐に渡ってやることがあります。
その一つ一つの機能はサーバーという場所で処理がされます。
そのサーバーで行われる処理を作るのがバックエンドエンジニアです。
バックエンドエンジニアの詳しい解説は、こちらをご確認ください。
バックエンドエンジニアとは?仕事内容、年収・将来性について解説!PHPエンジニアの年収は?
PHPエンジニアの年収は、どのくらいでしょうか。PHPエンジニアを目指す人は気になるところでしょう。
転職支援サービスなどを見ると、PHPエンジニアの年収は400〜600万円程度とされています。
実際に「forkwell」などの求人サービスで検索すると、年収は350万〜800万で設定されています。
引用元: forkwell
日本の平均年収と比べると、高い傾向ですね。
スキルの高いPHPエンジニアは独立して、もっと稼いでいます。
エンジニアは作ってナンボの世界なので、スキル次第ではもっと高い年収を狙うことも可能です。
PHPの今後の将来性は?
PHPは、今後も一定の需要が期待されます。
なぜなら、PHPは多くの企業で使われていたため、既存サービスの保守や改修の仕事があるからです。また、PHPは日々バージョンアップし、Webアプリケーションフレームワークの数も増えてきました。Laravel + Vue.jsのような技術スタックで開発するスタートアップ企業も多いので、これからの新規サービスにも使われていくでしょう。
さらに現在、日本のIT業界は深刻な人手不足に陥っています。実際に、経済産業省のデータによると、2025年には約40万人、2030年には約45万人が不足すると試算されています。
労働人口が年々減少しているのも関わらず、企業はITへの投資をするため、エンジニアの需要が高くなっているのです。
求人サイトでもPHPの需要が高いのがわかります。実際に、私の周りでもバックエンドエンジニア、特にPHPを使えるエンジニアを探している企業はたくさんいます。
これからバックエンドエンジニアを目指す人は、PHPを検討してみてください!そして、新しい技術を常にキャッチアップしていけばエンジニアの価値を高め続けられますよ!
PHPを習得するには
PHPを習得するためには、まずは基礎を学習して、次に実践学習をしましょう。
- プログラミング学習サイトでPHPを始める
- プログラミング本でPHPの仕様を理解する
- ポートフォリオを作る
プログラミング学習サイトでPHPを始める
基礎を身につけるには、プログラミング学習サイトがおすすめです。
なぜなら、プログラミング学習サイトは、環境構築が不要ですぐにプログラミングを始められるからです。
例えば、Progateなどのプログラミング学習サイトを活用すれば、簡単にプログラミングを始められます!
Progateは「PHP」を学べます。また、それ以外にも「Git」「コマンドラインツール」を学べるので試してみてください!
Progateでプログラミングを学習する方法を解説【独学で可能】プログラミング本でPHPの仕様を理解する
基礎学習では、プログラミング本も有効です。
プログラミング学習サイトでは扱えきれない細かい仕様を学べます。
前述した、おすすめの本を活用してみましょう。
ポートフォリオを作る
次に実践として、ポートフォリオやアプリを作りましょう。
アウトプットすることでプログラミングをより理解できます。
基礎ではプログラミング言語の特徴や使い方を学び、実践ではアウトプットすることで効率的にプログラミングを習得できます。
エンジニア未経験者でもできる!絶対ためになる魅力的なポートフォリオの作り方!エンジニアへの具体的なステップ
プログラミングを学習しただけでは、エンジニアにはなれません。
エンジニアになるための具体的なステップは次の記事で解説しているので、参考にしてくださいね!
【初心者のための】未経験からWebエンジニアになる3ステップ【完全保存版】最短でエンジニアになりたい人は
最短でエンジニアを目指すひとは、プログラミングスクールに行きましょう!
独学でも勉強できますが、時間がかかるのは事実です。
実践的なスキルをつけるにはプログラミングスクールの方が効率的です。
なぜなら、プログラミングスクールだと実践的な課題をやったり、プロのエンジニア講師にいつでも質問できるので独学よりも早く習得できるからです。
初心者の頃は、エラーに遭遇すると挫折しやすいです。プロに教わった方が自分で調べるより遥かに効率的です。
例えば、TechAcademyだとPHPの実践的なコースがあります。
- 「PHP/Laravelコース」 … PHPとLaravelを学んでオリジナルサービスを開発
その他にも、プログラミングスクールでは実践的なプログラムが用意されています。独学ではできない体系的なプログラミング学習と転職支援を受けられます。
プログラミングスクールは当たり外れがあると言われてます。実際に、無料のプログラミングスクールで失敗したという人もいます。
こちらの記事では、失敗しないために厳選したプログラミングスクールをまとめています。すぐにエンジニアに転職した方は検討してくださいね!
【転職もサポート】おすすめのプログラミングスクール3選!【現役エンジニアが厳選】まとめ
この記事では、PHPについてまとめました。
今ではたくさんのプログラミング学習サイトや本があります。実際にコードに触れると、プログラミングの雰囲気を掴めますよ!
皆さんがエンジニアになれるのを応援しています!