プログラミング言語を学んでみたい人や、プログラムの開発を委託したい人なら、必ずと言っていいほどPHPという言葉は聞いたことがあるはずです。
現段階で、有名なプログラミング言語には、Java・Python・C++などがありますが、PHPもとても有名であり、かつ開発に多数、使われている言語です。
現在のシステム開発のほとんどがwebシステムというインターネットを使ったものです。PHPはwebシステムの開発にはかかせない言語としての地位をもっています。
プログラミング言語を学びたい、システムの開発を委託したいという人にとってPHPの基礎的なことを知っておくのは、とても重要なことだとおもいます。
この記事ではPHPの基礎的なことについて解説していきます。
※この記事を読んで、本格的にPHPを習得したくなったという方は別途、書籍を買ったり、教育してくれるサイトがあるので、そちらを参照してください、
![Nao Yanagisawa](https://xs691486.xsrv.jp/wp-content/themes/JITERA/images/director-nao-1.png)
2014年 大学在学中にソフトウェア開発企業を設立
2016年 新卒でリクルートに入社 SUUMOの開発担当
2017年 開発会社Jiteraを設立
開発AIエージェント「JITERA」を開発
2024年 「Forbes 30 Under 30 Asia 2024」に選出
アプリ・システム開発は生成AIを活用することで、従来の開発ではあり得なかった、低コスト・高品質開発・スピード開発が同時に実現できます。
▼従来の開発とAIを使った開発の違い
![](https://xs691486.xsrv.jp/wp-content/uploads/2024/06/ad10-table.png)
![](https://xs691486.xsrv.jp/wp-content/uploads/2024/06/メイン画像-1-1.png)
システムソリューションを得意とし、新規事業からDX推進まで幅広いジャンルの開発実績があります。
PHPとはどのようなプログラミング言語か
プログラミング言語の中でも、PHPはスクリプト言語という位置付けです。
プログラミングは通常、プログラム言語で書かれたソースを、コンピュータが理解できる機械語(OnかOffか、0か1で表します)という形に変換(翻訳とかコンパイルとも言う)して、実行されます。しかし、スクリプト言語は、機械語にする工程をなくして実行されます。
そのため簡易プログラミング言語とも、呼ばれます。簡単に実行ができ、学習も比較的簡単なので、習得しやすいという特徴があります。
今、ご覧になってるwebの画面は、HTMLという言語で作られています。HTMLは厳密に言うとプログラミング言語では、ありません。
マークアップ言語と言って、画面の構成を記述するものです。なので、動き(変化)を記述することはできません。
※最新のHTMLでは、一部は動きが記述できます。
PHPはHTMLに組み込んで記述でき、条件によって、画面を変化させます。
ここでは、PHPの歴史や、用途について解説します。
PHPの歴史とシェア
PHPはRasmus Lerdorf (ラスマス・ラードフ)というカナダ人のプログラマによって1994年に作られました。最初は、ラードフ氏が自分の履歴書の公開とアクセス数を見るために作成したCGIプログラム(CGIプログラムというのは、WEBサーバ上でプログラムを実行する仕組みです。実行されるとHTMLの形で応答を返します。)でした。
当初は「Personal Home Page tools」、略されて”PHP tools”と呼ばれていました。その後、ラードフ氏がデータベース(データを保存するためのソフトウェア、現代の開発では必ずと言えるほど使われます。)へのアクセス機能などを追加したバージョンがオープンソースとして公開されました。そのため1995年がPHPの公開日ともいわれます。オープンソースとは簡単に言うと誰でも自由に使っていいよというライセンスをもつものをそう呼びます。
GNUというグループが有名ですが、GNUはソフトウェアは自由に扱われる知的財産であるべきだということで、多くのオープンソースを公開しています。ちなみにオープンソースというのは、そのソフトウェアの元となるソースさえ自由に扱えるということです。PHPのソースはC言語で作成されています。
オープンソースということで多くの人が自由に機能の追加や、改善ができるので、PHPは多くの人に好かれ、いまではPHP8というバージョンで、25周年を迎えました。
WEBアプリケーション(アプリケーションは通常ソフトウェアと同じような意味です。)の開発では、下記のように使われる言語のトップとなっています。
- 1位:JavaScript / PHP
- 3位:Python
- 4位:Ruby
- 5位:Java
- 6位:TypeScript
- 7位:Go
- 8位:Swift
- 9位:Kotlin
参照元:エン・ジャパン
PHPの主な用途
PHPは、PHP3(最後の数字がバージョンを表します。この場合は3つ目のバージョンということです。)になると、PHP:Hypertext Preprocessorが正式名称となりました。(正式名称の中にすでにPHPという名前が入っているので、再帰的に略してPHPと呼びます。)
PHPは動的にHTMLのデータを作り出して、動的なWEBページを作り出します。
※Hypertext Preprocessorとは、HTMLを作り出すものですよ的な意味です。なので、HTMLの中に組み込んでというか、一緒に記述して使います。実行はWEBサーバーで行われるためサーバーサイドのプログラムとも呼ばれます。
※Javascriptという言語は、WEBブラウザ上で実行されるので、フロントエンドとよばれます。(最新のJavascriptはサーバーサイドにも適応しています。)特にそのあたりの仕組みを詳しく知る必要はありませんが、PHPはWEBサーバとPHPを実行させる環境がサーバ上に必要になるとだけ覚えておけばいいです。
サーバーサイドは、動的なサイトをつくることができます。
PHPはWEBアプリケーションを作るための機能が豊富に揃っているので、WEBの開発に特化して使われます。
PHPを使って開発できるもの
PHPはwebに関するものを開発する時に、使える機能というか命令、仕組みが豊富に用意されています。
先程も歴史で説明したととおり、もともとがwebのCGI用に作られているので、そうなのですが、その後もデータベースへの接続や、数々の機能が追加されて、進化しています。
PHP3では、オブジェクト指向にも対応しています。オブジェクト指向というのは、プログラミングの技法のひとつで、オブジェクト指向で書かれたプログラムは、保守や再利用が便利であったり、非常にシンプルなプログラムが書けると言われています。最近のプログラミング言語ではほとんどのものがオブジェクト指向に対応しています。
※一部、関数型というものもある。
ここでは、PHPで何が開発できるかを解説していきます。
※保守というのは、プログラムは一度作ったら終わりではなく、なにかがあると改訂をおこなったり、不具合があると修正したりすることを示します。車でも故障すると治すというようなことです。
ウェブサイト
PHPは、動的なウェブ(web)サイトを作成します。動的なという意味は、使っている人の要求によって表示させるものを変えることができることを示します。
これを説明すると少し長く、難しく、専門用語が必要になるのですが、簡単な説明すると、(簡易的な説明なので厳密には少し違う場合もあります。)webのページをまず開くにはURLをクリックして、webサーバーに保存してあるHTMLファイルを開きます。
ページにあるボタン、例えば「登録」とか「開く」などを押してもサーバーのHTMLファイルを開くのですが、静的なウェブサイトというのは常に決まったHTMLファイルしか開きません。
※HTMLで書かれたファイルは、今、みなさんが使っているwebブラウザで解釈され、画面として表示されます。
HTMLはマークアップ言語と呼ばれ、画面にどのように表示しろという構成を記述するものです。
もしもユーザ(お客様)ごとに違うページを開きたいなら、ユーザごとにHTMLのファイルが必要です。
これは現実的には不可能です。動的なウェブサイトは、ボタン(ボタンでなくてもなにかのリクエストすると)が押されて、サーバー側に要求がいくと、サーバー側で処理を行ない、一つのHTMLファイルからユーザの要求にあわせた画面を、お客様のwebブラウザに返します。
HTMLファイルの中にPHPのプログラムをそのまま組み込むというか、記述するので、そういうことが可能となります。サーバー側でPHPのプログラムを実行してHTMLとして作り出し返します。
というような仕組みを使うとサーバー側で、いろいろな処理ができるようになり、ある条件(大抵はユーザごとに)によって、変化するwebサイトを作成できるようになります。
以上の説明が、PHPでプログラミングするとできることの基本となります。
上記のような仕組みというかプログラミングを利用して、PHPで作られたCMSというものがあります。
CMSは、【コンテンツ管理システム】と呼ばれて、HTMLとか、CSSを知らない初心者でも、簡単に、webサイトが作れて、更新や運営が行えるシステムです。
※ちなみに、CMᏚで、ホームページが作れますという言葉もよくききますが、ホームページはwebサイトの1番最初の画面のことを言います。
※他にも、webサイトとwebページの違いは、webサイトは複数のwebページを溜めていて、その溜めているコンピュータや関連するソフトウェアなどを全部ひっくるめているものことを示します。しかし、通常、同じような意味でも使われることもあります。
CMSで、有名なところでは、wordpressがありますが、個別のECサイト(ネットショップのサイト)用に特価されたCMSも多く存在します。それらの多くがPHPで作られています。
ウェブアプリ/Webシステム
先程、説明しましたが、サーバー側でいろいろな処理ができるということは、高度な、ウェブアプリやwebシステムを作ることが可能となります。
それによって、下記のようなWEBアプリを作成するのに主に使われます。
- SNSサービスの制作
- ECサイトの制作
- CMSの開発とカスタマイズ
- システムの構築
- 入力フォームの作成
- 予約システムの実装
- ログインや認証機能の実装
ログインや認証機能の実装とデータベースへの操作を組合せて、社内の業務用システムの構築ができます。
下記は、PHPを使って作られたサイトの例です。有名なところが多いです。webアプリケーションのほとんどがPHPで作られていると言ってもいいでしょう。
上記のサイトを見ると、ログイン認証や、データベースの操作(検索)などの機能が実装されていることがよくわかります。
また。ユーザとして、一度、ログインするとずーと同じユーザとして他の画面に移動しても自分の情報を反映した画面が表示されます。これは、セッション管理と言われるものですが、PHPを使わなくて、実現しようとすると難しく、セキュリティも問題になります。
そのように、動的なwebアプリがPHPによって実現することができます。
PHPの習得難易度
PHPの習得は、それ程、難しくはありません。それがPHPがよく使われる利点でもあります。
プログラミング言語はデータの定義と命令というものから構成されますが、PHPは命令がとても短く、覚えやすいです。
ただ、HTMLと組合せて使うため、最初にHTMLをある程度知っておく必要があるかとはおもいます。
また、難しくないと言っても、プログラミング言語を初心者が覚えようとするとそれはそれなりに難しく感じるでしょう。
独学で勉強するなら、サンプルを見ながら、何度も作ってみるのが必要だとおもいます。
基本文法の習得
プログラミング言語は、言語と呼ばれるぐらいなので、文法というものがあります。各々の命令はこう書きなさいというルールが決められており、それを破ると文法エラーというエラーになります。
文法に従って、命令を組合せて、プログラムを組み立てていきます。もともとPHPはC言語というプログラミング言語で作られているので、C言語の命令や文法にかなり似ています。
C言語も命令が短く簡単なので、PHPも命令や文法を覚えて使うのはそんなに難しくはありません。また、自由度が高いので、簡単に使うことができますが、
自由度が高いだけ、変数のスコープという、プログラム内のデータの扱いが難しいところはあります。
また、最近のPHPはオブジェクト指向に対応していますが、オブジェクト指向は、なれないとちょっとわかりにくい点があります。特にオブジェクト指向になれてない他の言語を知ってる人は、オブジェクト指向の考え方になかなか変えられないところがあります。
まとめると文法は解りやすく、簡単なシステムを作るのはすぐにできますが、実務で使う場合は難しくなります。
実践力の修得
PHPは基本文法は簡単で使いこなせるのですが、実務でPHPを使うには、フレームワークを使いこなすことが必要となります。
フレームワークとは何かといえば、フレームを日本語に訳すと枠という意味です。その日本語とおりで、枠組みという言葉がフレームワークを現しています。
wordやExcelを使っている人はテンプレートというはご存知かとおもいますが、テンプレートを使うとすでに一定の形が決まっているものに、指定箇所を修正するだけで使えるようになります。
フレームワークはテンプレートとはちょっと違いますが、似てるのはすでにある程度の処理の形ができているところで、後は、一定の規則に従って変更を加えれば望むようなシステムがつくれます。
家を建てる時、すでに雛形があって、少しの手を加えると、同じような家が完成するようなものです。
例えばデータベースに使うためには、データベースに接続するための定義と、データベースを開く、閉じる、そしてSQLという言語を使ってデータを登録、更新、削除します。
フレームワークを使わなければこれらすべてのことをひとつづつ書き込まないといけないのですが、フレームワーク使うと単純な少しの文だけで済んでしまいます。
そのため、フレームワークを使った方が開発の工数が減って、予算が少なくすむという利点があります。
また、PHPはサーバーサイドのプログラミング言語なので、画面を作ったり、画面上の動きなどを作るのは不得意なのですが、フレームワークを使うとその部分を補ってくれて、自動的に画面を作ってくれます。
そのような点から、実際の開発の現場では、必ずと言えるほど、フレームワークを使います。
しかし、フレームワークはいくつかの種類があるのですが、書き方の規則があって、その規則を習得しなくてはなりません。そのため、使いこなすまでに時間がかかります。
しかし、一度、覚えてしまえば、とても簡単にシステムを組むことができます。
フレームワークが使えるかどうかで、フリーで仕事する場合などは、仕事が、できるかどうかを決定されます。
開発を委託する場合でもフレームワークを使いこなすことができる開発会社を選ぶことがシステム開発を成功させることとなります。(工数に差が出るために、システムの構築の単価が変わってしまうことがあります。)
実務でよく、使われるPHPフレームワークについて、紹介します。
-
- 1. Laravel
- 2. CakePHP
- 3. Symfony
- 4. Codelgniter
- 5. ZendFramework
これ以外にもフレームワークは何種類もあります。どのフレームワークがよいかは、開発するシステムによって違います。なので、開発する技術者や、会社は、フレームワークの知識や使ったことがある経験が実務では求められます。
PHP開発を依頼するポイント
システムを開発する時には、システム部門が会社内にあれば、自社で開発をおこなうことができる場合もあります。
しかし、自社内にはシステム部門がないとか、システム部門ではPHPを使ったシステム開発の経験がないなどの場合、通常は、外部のシステム開発会社に開発を依頼します。
また、最も多いのは、自社のシステム部門と外部のシステム開発会社で、共同で開発をおこなうことですが、そうした場合にどのようなシステム開発会社に依頼(委託とも言う)するのがよいかをここでは解説します。
実績と開発体制
開発会社を選ぶ時にとても大事なことは、あたり前かもしれませんが、PHPの開発の実績が豊富かどうかです。
先程も述べましたがPHPのシステム開発には、フレームワークが必須と言っていいでしょう。しかしフレームワークは使ったことがない、もしくは経験が浅いという場合は、開発の工数が大きくなり、納期に間に合わなくなるということも発生する可能性があります。
また、開発体制として、充分な人員が確保できる会社かということも大事な観点となります。また、人員のすべての人がかなりの経験者であることは現実的に難しいかもしれませんが、少なくとも、リーダーの人か何人かはかなりの経験者を立ててくれる会社が必要です。
他のメンバーがわからないことがある場合に対処ができる人が何人かいることは必須となります。
また、別の観点から言うと、実績のある会社でも、最初にきちんと要件定義をしてくれるかも大事です。要件定義は、システム開発の1番最初の段階でおこないますが、業務について、どのようなシステムが必要か、この時点で開発会社とのコンセンサスをかなり取っておかないとできてみるとおもっていたのが違うという場合も発生するかもしれません。
そういう意味では、PHPの開発知識だけでなく、ある程度は、業務知識もある開発会社であることが望ましいです。
保守体制
ソフトウェアシステムの開発は、実際のリリース(お客様が実務で使えるように開発したシステムを本番環境で実際に使える様にすること)した後でも、バグ(不具合)がどうしても発生したり(システムの開発工程では、単体、結合、総合と何度もテストしますが、見つけられなかったバグは悲しいかな存在します。)
また、使い方がわからないことがでてきたり、システムを改訂しないといけない(例えば消費税が変わったとか)ということはでてきます。
そういったことに対応するのを保守といいますが、システム開発会社によっては、開発が終わって、リリースしたら後は知らないというところもあります。
なので、保守してくれる体制があるかどうかも大事となります。ほとんどのシステム開発では、リリースして、1年くらいはバグ対応は無償でおこないますが、これは確認した方がいいことだとおもいます。
あるいは開発とは別に保守契約を結ぶということも大事になります。保守に柔軟に対応してくれるシステム開発会社を選ぶのもポイントてす。
phpのまとめ
PHPは、1994年にRasmus Lerdorf (ラスマス・ラードフ)によって作られたプログラミング言語です。1995年には、データベースへの対応が追加され、GPLからオープンソースとして公開されました。その後、25年間の間に改良と機能追加が行われて、現在まで多くの開発に使われています。
PHPはサーバーサイドのプログラミング言語です。サーバーサイドというのは、サーバー側で処理が行われる言語です。また、PHPはスクリプト言語でもあり、HTMLのなかに組み込むことができます。
PHPは、webサイト(webアプリケーション)の開発に向いており、多くのwebサイトがPHPで作成されています。
有名なものとして、CMSでもあるwordpressがありますが、ECサイトを作成するのにも適しています。
PHPは、基本文法が簡単で、命令も短い名前なので、覚えやすく習得するのは比較的見やすいです。
しかし、実務で使う場合は、フレームワークを使って、システムを構築するため、フレームワークについての知識や使い方を知っておくことが必要です。
PHPでの開発を、外部の会社に依頼する場合は、実績がある人員が確保できる、保守の体制が準備できるところに頼むのが成功するポイントです。
Webアプリ開発会社の選定に迷った場合は、実績豊富な株式会社Jiteraに一度ご相談ください。貴社の要件に対する的確なアドバイスが提供されると期待できます。