PHPがプログラミング言語じゃないと揶揄される理由を、特徴や将来性を踏まえて元WEBプログラマーでPHPでウェブサイトを製作していた筆者が解説します。
PHPはれっきとしたプログラミング言語ですが、使えないと揶揄されたり嫌われたりするのは、型や関数で使用される演算に許容性というか寛容性があり過ぎて、他の言語と比べるとまとまりのないようなコードに見える事に起因しています。
言語の使用例の話をするとFacebook・ホワイトハウスのCMS(ワードプレスと似ているドゥルーパル)・私たちがブログで良く使用しているワードプレスはPHP言語で作られています。
本記事では、PHPがプログラミング言語じゃないと揶揄される理由や、PHPというプログラミング言語の将来性について、元エンジニアが解説しています。
スポンサーリンク
PHPがプログラミング言語じゃない?特徴や将来性を考察ポイント
- PHPは関数や型などの処理に許容性と汎用性が高く誰でも扱いやすい一方、見た目が煩雑になりがちなのが揶揄される原因。
- PHP言語は動いただけでは危険な部分がある。きちんと対策しないとハッキングの対象になる事がある。(XSSクロスサイトスクリプティング・SQLインジェクション攻撃など)
- PHPは使えないという訳ではない。使い方次第!今でもホワイトハウスを始めワードプレスやFacebookはPHP言語で書かれている。(ワードプレスを深く知りたいならPHPの習得は必須)
PHPがプログラミング言語じゃないと嫌われる理由や将来性
PHPがプログラミング言語として嫌われる理由は、多岐にわたります。
まず、冒頭でも挙げた通り、PHPは他の言語に比べてセキュリティ上の脆弱性が指摘されやすい点が挙げられます。
特に、初学者が簡単に習得できる反面、適切なコーディングガイドラインに従わない場合、不正アクセスやデータ流出などのリスクが高まります。
また、PHPの設計そのものが古く、モダンな開発環境と比べると冗長であると批判されることがあります。
そのため、開発者コミュニティの一部では、PHPは「プログラミング言語」としての正当性が薄いと見なされがちです。
しかし、PHPは依然としてウェブ開発において強い地位を保持しています。
多くのウェブサイトやCMS(例:WordPress)がPHPで動作しており、その市場シェアは依然として大きいです。
ワードプレスの関連記事で人気記事の、ワードプレスの投稿と同時に記事内容を(X)旧Twitterに自動投稿する方法として、現時点で最もおすすめの方法を記載!
PHP言語で書かれたワードプレスでは、近年連帯するプラグインがXのAPIの仕様変更で、全く使えなくなってしまいました、そこで、現時点で確実にXに記事を自動投稿できる方法について解説しています。
さらに、PHP 7以降のバージョンアップにより、パフォーマンスやセキュリティ面で大幅な改善が見られます。
将来的には、PHPの利用が減少する可能性もありますが、すでに広範に使われているため、完全に消滅することは考えにくいでしょう。
SEOの観点から見ると、「PHP」「嫌われる理由」「将来性」といったキーワードを含む記事は、多くの開発者やウェブマスターにとって関心が高いテーマです。
PHPの特性やデメリットを理解しつつ、その進化や将来性についても触れることで、読者に有益な情報を提供できるでしょう。
PHPとHTMLはどっちから入門・勉強するのが適切?
PHPを学ぶ上でHTMLは避けては通れませんが、どちらから勉強するのがおすすめかを結論から言うとHTMLです。
HTMLが理解できていない状態ではPHP言語の習得には進めませんので、最低限HTMLとそれに付随する言語であるCSSを学んでからPHPを学びましょう。
それでは、HTMLとPHPで具体的にどんな事が出来るのかをもう少し詳細に解説します。
HTMLはサイトの枠組みを作り文章を整える
仮に、HTMLが全くないサイトでPHPだけを使ったらどのようなウェブサイトが出来上がるでしょうか。
答えは簡単で、何の装飾も無いただの文章が並んでいるだけです。
画像を配置したりするのも文章の段落や改行を作るのもHTMLの仕事なので、HTMLが無いとただつながった文字が並ぶだけのサイトが出来上がる事になります。
HTMLは見出しのH1タグやtitleタイトルタグを使用してSEOを行います。(SEOとは簡単に説明すると検索エンジンに上位表示するために必要な施策の一つです)
上記の様にhtmlが無いとサイトの枠組みが整わないばかりか、検索エンジンにウェブサイトに必要な情報を与える事が出来ませんので、自分のサイトをサーチコンソールに登録してインデックス申請を行っても検索にヒットさせる事ができません。
HTMLのソースの表示を行い、HTMLが表示されないと焦る方がいる様ですが、ワードプレステーマの高速化設定が原因ですので、それを切ればHTMLを表示する事が出来ます。
上記の事からも、PHPのプログラミング言語を学ぶ上でHTMLは切り離せない関係なのです。
CSSはウェブサイトの見た目を整えるのが仕事
HTMLに対して、CSSはサイトの見た目をととのえるのが専門です。
HTMLでも文字の大きさやテキストの位置などの変更は出来ますが、CSSではHTMLでは出来ない更に細かな設定が出来ます。
CSSが理解できるようになると見た目を整えるのは勿論、fontawesomeなどのサイトを利用して当サイトのようにテキストの前に好きなアイコンを配置する事も可能です。
ちょっと内容が抽象的なので、もうすこし具体的に多くのブロガーが使っているワードプレスに絞って考えると、私はワードプレスのテーマにCSSを独自に変更する事でオリジナル処理を読み込ませています。
具体的には外観→テーマファイルエディタ→style.cssに処理を追加する事で既存のテーマに直に変更を加えずに、オリジナルの変更を読み込ませる事が出来ます。
『使っている検索窓のアイコンの色やサイズが気に入らないから変更』『この部分の要素はいらないから非表示(HTMLのソース上では表示される)』他にも色々ありますが主にこれらの用途で使用しています。
例えば、既存サイトのロゴにdisplay:none;を指定してロゴを消そうとする場合を考えてみます。
ソースを見ながら画像のファイル名で検索して該当箇所を探すのもアリですが、そんなことをしなくてももっと便利な機能がクロームでは標準で備わっています。
それがデベロッパーツールです。
キーボードのF12ボタンを押すと、右サイドに画像のようなデベロッパーモードが出現します。
2番のボタンを押すとセレクトモードになり、各部分の要素を選択できるようになります。
試しに画像のロゴの要素を選択すると、画像の様に4番の部分が赤で反転します。
ここで出てきた要素にスタイルシートで変更を加えるわけです。
スタイルシートの選択は、ワードプレスの管理画面のダッシュボードから外観をクリックし、テーマファイルエディターへと進みます。
デフォルトで選択はされていますが、該当するテーマでは必ず子テーマになっているか確認しましょう。
styel.cssが出てきますのでここで選択した要素に変更を加える記述をします。(ピックアップされ反転された部分をコピーしました)
<img class="site-logo-image header-site-logo-image" src="https://jpprepper.com/wp-content/uploads/2024/02/header-logo-kawane-lab-e1708826503428.png" alt="川根本町ラボ" width="499" height="150">
この部分の画像のロゴを見てみるとclassに”site-logo-image header-site-logo-image”が指定されていますので、このスタイルに対して変更を加えればよいことが分かります。
試に子テーマのstyle.cssに以下を入力して意図的にロゴを消してみましょう。
/*画像ロゴさようなら!出てこないでください*/
site-logo-image.header-site-logo-image {display: none;}
すると、サイトのロゴが消えれば成功です。
コクーンcocoonを使用しているユーザーであれば上記の方法で意図的にCSSでロゴを非表示にする事が出来ます。
ワードプレスを使い、CSSでデベロッパーツールの操作方法と見た目の変更を行う方法の一例を紹介しました。
PHPのプログラミング言語とHTMLを組合せると何が出来るのか
PHPで出来る処理の範囲や内容が細かすぎてすべて網羅する事は出来ませんが、大体以下のような事が出来ると捉えて後は勉強しながら知識を蓄えるのが良いでしょう。
これはPHPポケットリファレンスというもので、PHPで使える関数や処理が網羅されたリファレンスです。
私もPHPのソースコードを編集する時は必ず使っています。
PHPはサーバサイドの言語でHTMLやCSSはクライアントサイドのスクリプトです。
これはつまり、HTMLやCSSはサイトをまるごとダウンロードしてオフラインでネットを切った状態でも表示する事が可能ですが、お問い合わせフォームはサーバとのやり取りが必要なのでPHPでなければ実現できません。(PHPだけがサーバサイドの言語という訳ではない。Perlなどもサーバサイドの言語)
アクセスカンターなども分かりやすいです。
CSSやHTMLでは見た目だけなので、アクセスをカウントする事が出来ません。
PHPはサーバサイドの言語と書きましたが、これは自宅にLinux/Apache/MySQL/PHPをインストールすれば実現できますが、実際に運用するとなると管理が大変です。
殆どの人はワードプレスやPHPを使用するのにレンタルサーバを借りるとこになります。
そこで、最もお勧めのレンタルサーバですが、数多くのレンタルサーバを使ってきた筆者のおすすめはXserverです。
国内最安値と謡っていますが、その実力は本物でクレジットカードを使用したサーバ負荷の高いショッピングカートも通常のプランでも十分に動作する程です。
プログラミング言語であるPHPは言語仕様がひどい。将来性がないのか?
私は個人的な見解として、PHPはまだまだ需要がある言語だと思います。
最近はAIでPHPスクリプトを出力する事も多いですが、やはり基本的な使い方が分かったエンジニアが居ないと動かす事は出来ませんし、AIも完璧ではないのでやはりAIで作ったスクリプトを最終的にチェックする人も必要です。
先に何度か書いたように、汎用性や許容性の高さから誰でも習得しやすい言語でPHPの言語仕様がひどいと勘違いされがちですが、正しく使えばそんなことはないとおもいます。
因みに、私が学生でPHPを勉強始めたばかりの頃、本屋で初めて手に取ったのが独習シリーズです。
この独習シリーズはPerlのも持っていますが、本当に分かりやすいです。
例題や問題を解いていると自然とPHPが理解できるようになっています。
PHPの開発に必要なオブジェクト指向についてもきちんと記述されているので、PHP言語について勉強したい方やPHPプログラマーを目指すならおすすめの書籍です。
PHPを勉強するなら、最終的にはオブジェクト指向が理解できるようになる事がこのプログラミング言語習得する事の基本であり、第一歩です。
PHPプログラミング言語を知る上で、単にifやforeachなどの構文の他に、必要なフレームワークやMVCモデル、オブジェクト指向について理解が無ければ現場で仕事をする事は出来ません。
ここでそれらの概念や仕組みについて解説すると、とても解説しきれない位のテーマなので、興味のある方は、先に紹介した独習シリーズの本を読んで勉強するのがお勧めです。
PHP言語はちゃんと理解しないとセキュリティ的に脆弱!注意点も
PHPプログラミング言語は、型の汎用性が高く、これがしばしばエラーの原因になったりもします。
ただエラーが出て表示されない位ならまだいいのですが、やり方によってはサイトのDBを全て消去されたり盗まれる可能性があるので、セキュリティ対策の意識をもってプログラミングする事が大切です。
意図しないウイルスが仕込まれた、別のサイトにリロードされたりする可能性のあるXSSの脆弱性も、PHPプログラミング言語では良く取り上げられる問題の一つです。
// 意図しないサイトに勝手に飛ばされる
https:// jpprepper.com?user=<script>window.location.href('転送先URL');</script>
<?php
// 表示する部分はHTMLをエスケープする
echo $hoge = htmlspecialchars("hogehoge,fugafuga", ENT_QUOTES, 'UTF-8');
?>
<?php
// エスケープせずに単に変数の内容を表示した場合
echo $hoge;
?>
上記の様に一見エラーではない処理も、一歩間違えれば財産を失いかねない重大なミスにつながりかねないという事を覚えておいてください。
こういった型に対する汎用性の高さが、初学者には理解しやすい一方で、間違えた処理を書くとエラーに繋がる原因になり、これが他のプログラマーからPHPがプログラミング言語じゃないと言われる所以の一つでもあります。
PHPを使うときに必要になる言語一覧は?
先に書いた通り、PHPだけでウェブサイトが作れる訳ではありません。
ウェブサイトを動かすには、PHP言語以外にも様々な言語が相互作用をして動いています。
絵本で例えるなら、HTMLやCSSがなければ文字だけで絵も装飾も無い小説のようなサイトになってしまいますが、PHPを使えば絵本に問い合わせフォームを付けてユーザーとコンタクトする事が出来ます。
更に、JavaScriptを使えば飛び出すような絵本を作る事が出来ます。
これらの言語を一人でコツコツ勉強するのは本当に大変ですので、基礎は自分である程度の事を学び後はスクールを使って効率的に学習する方法をおすすめします。
- HTML/CSS
サイトの見た目を整える為の言語。SEOに強いサイトを作る。 - PHP
サーバサイドの言語で、ショッピングカートやお問い合わせフォーム・アクセスカウンターなどの処理をする。 - JavaScript
文字をじわっと表示させたり、動かしたりとウェブサイトに様々な動作を加える事が出来る。
PHPがプログラミング言語じゃない?特徴や将来性を考察まとめ
最後にPHPがプログラミング言語じゃないという噂についてまとめます。
PHPはサーバサイドで動く言語であるのが、HTMLやCSS、Javascriptにはない特徴です。
将来性は、プログラミング自体はAIにとってかわられるかもしれませんが、AIに命令を伝える人や最終的なチェック要因が必要ですので、PHPプログラマが直ぐになくなるとは思えません。
2024年現在も実際ウェブプログラマーの求人はかなり多いようです。
PHP言語だけ習得してもそれ単体で使用する事はまずありませんので、並行してHTML,CSS,Javascriptの勉強が必要になります。
使用する環境やツール等の設定を始め、これらを独学で勉強するのはなかなかハードルが高いのでスクールを利用したり転職してプログラマーを未経験からスタートするのが第一歩です。
PHPはプログラミング言語じゃないと嫌われがちですが、正しく使えば現在もワードプレスやDrupal等の多くのCMSで使われていますし、今後、利用が増える事は無いかもしれませんが、減る事も無く、全く将来性が低いプログラミング言語という訳でもありません。
最近では、コロナという影響もあってか、在宅ワークや副業でブログやアフィリエイトをする人が増えている印象です。
その過程で、もっとワードプレスやブログについて知りたいという欲求から、PHPを勉強するきっかけになるのです。