kei615ykhm’s programming learning blog

プログラミングを0から学んでいる学生の備忘録

【学びの記録】PHPの概要

Keiです。

 

PHPについて学んだことを言語化していきます。

 

 

サーバーサイドプログラミング言語

PHP(Hypertext Preprocessor)はサーバー側で実行されるスクリプト言語で、

HTMLコードの中にPHPコードを埋め込むことが出来る。

また、データベースとの連携もしやすい。

 

シンプルに書くことが出来るため、扱いやすい言語ともいわれている。

 

主な特徴

サーバーサイド言語:サーバー側で実行され、その結果だけがクライアント側(ブラウザ)に送信される。

 

データベースサポート:MySQLPostgreSQLといった、多くのデータベースとの連携が可能

 

ユーザー認証と管理:ユーザーのログイン機能やセッション管理を行える。

これによりユーザー毎に異なるアクセス権限を設定したり、情報を安全に保持できる。

 

メール送信機能:Webフォームからの入力を受け取り、メールを送信する機能をサポートする。これにより、お問い合わせフォームや申し込みなどWebサイトから直接メール送信できるようにできる。

 

ファイル操作:サーバー上のファイルを作成、読み取り、更新、削除することが出来る。これにより、Webアプリケーション内でユーザーがアップロードした画像やドキュメントなどのデータを管理できる。

 

APIの統合:外部APIとの連携をする際に使用できる。例えば、SNSAmazon Payのような決済システム、GoogleMapなどのAPIと連携して、これらサービスをひとつのWebアプリケーションに統合することが出来る。

 

HTMLと統合するメリット

動的なコンテンツ生成:PHPを使ってデータベースから情報を取得し、その情報を元にHTMLページを動的に生成することが可能。

例えば、ユーザーによって異なる情報を表示するログインシステムはこれに該当する。

 

フォームデータの処理:ユーザーが入力したデータを取得し、それを処理する為のスクリプトPHPで書くことが一般的になっている。

例えば、お問い合わせフォームのデータを受け取り、それをメールで送信するなどの処理はこれに該当する。

 

ユーザーインタラクションの強化:サーバーサイドで処理を行うことによって、セキュリティを高めつつ、ユーザーのアクションに応じて迅速な返答を行うことが出来るようになる。

 

要するに、静的なHTML文書に動的な要素を追加することが出来るため、より対話的な体験を提供できるようになる。

 

言語の欠点

一貫性がない:関数の命名規則やパラメータの順序に一貫性がなく、これが学習を難しくしている原因になっている。

 

エラー処理:初期のPHPはエラーが適切に捕捉されず、デバックが難しい状況が発生していた。現代のバージョンでは改善はされているものの、エラー処理の方式には過去のなごりが見られている。

 

セキュリティ:人気ゆえに多くのセキュリティの脆弱性が指摘されている。初期のプログラマーが危険性の高いコードを書いてしまうことがあるため、問題を起こしてしまう可能性があるとか。

 

パフォーマンス:PHPはインターフリタ型の言語であるため、コンパイル言語に比べると実行速度が遅くなることがある。その為、大規模なアプリケーションを開発する場合はこの問題が顕著になる場合がある。

 

大規模アプリケーションに不適切:シンプルなアプリケーションや中小規模のプロジェクトには適しているが、大規模で複雑なシステムを構築する場合は、コードの維持と管理が難しくなってしまう。これはPHPが元々持っている構造の緩さや厳密さに欠けるために起こる問題だとか。

 

このように様々な欠点があるにもかかわらず、昨今の開発現場では非常に高い使用率を誇っている言語でもある。

その理由は、これら欠点を補うことが出来るフレームワークの登場のおかげといえるだろう。

 

まとめ

PHPはサーバーサイドで機能するスクリプト言語であり、フロントエンド言語であるHTMLの中にコードを記載することで動的なページを作ることが可能になる。

 

サーバー側で機能する言語ということもあり、データベースとの連携がしやすい。

 

シンプルな記述法であるため、現代でも多くのエンジニアが使用しているプログラミング言語だが、欠点も多くある。

 

それらを解決するためのフレームワーク技術を合わせて扱うことが前提になりつつあるが、どの欠点を補うものなのかを理解した上で適切な技術選定を行うことが重要。