目次
PHPライブラリとは?
PHPはWebアプリの開発に使用され、現在でも広く使われているプログラミング言語です。PHPはサーバーサイドのプログラミング言語にあたり、アプリ内でユーザーがログインしたり、Twitterのように投稿したりする際の制御は、主にPHPによって行われています。
また、PHPはHTML内に直接埋め込んで使用することができるのも特徴的です。PHPを埋め込むことでデータベースとの連携からファイルやセッションの管理、ユーザー認証、メール送信など、多くの機能を付与できます。つまり、PHPを使うことでHTMLやCSSだけで作成したサイトやアプリを、より動的にさせることができます。
このように、様々な機能を持つPHPですが、習得が比較的簡単なので初心者でも簡単に始めることができます。一般的には、HTMLとCSSを取得した後でPHPを学習し始める方は多いでしょう。
PHPは無償で一般公開(オープンソース)のプログラミング言語であり、多くのライブラリが利用できます。ライブラリはよく、プログラミング言語の「部品」に例えられますが、言語をある程度組み合わせて機能を持たせたもので、単体で使用することはできません。しかし、ライブラリを組み合わせることでアプリやサイト制作が便利になり、開発の時間を短縮することができます。
この記事では、PHPでよく使われるライブラリについて15点を紹介します。
PHPライブラリおすすめ14選
Requests for PHP – HTTPリクエスト
Requests for PHPライブラリをダウンロードして読み込むと、HTTP通信が簡単に利用できるようになります。アクセス制限のBASIC認証や、暗号化してデータを送受信するSSL通信にも対応しており、安全性も高いです。
ダウンロードした圧縮ファイルを見ると、いくつかのファイルがあります。その中の「library」フォルダを開き、「requests.php」ファイルを作成中のプログラムに移動させます。
ローカル開発環境に必要なソフトウェアが一通り含まれている「XAMPP(ザンプ)」を使用する場合、Web上に公開できるデータを階層的に配置している「htdocs」の直下に「requests.php」のライブラリを組み込みます。
Request for PHPは公式HPの「Download Now」ボタンからダウンロードできます。また、Composerから「composer require rbdwllr/reques」と入力してもインストール可能です。Request for PHPをダウンロードする
kriswallsmith/assetic – minify
kriswallsmith/assetic(クリスウォールスミス/アセチック)は、Webアプリ上で常に同じ画像を表示する際に必要な静的ファイルの生成や、データサイズの最適化、バージョン管理、ファイルのキャッシュ制御などを行うことができるPHPライブラリです。CSSやJavaScript、画像などこれらのファイルをまとめて1つのファイルにまとめること(バンドル)で、ページの読み込み速度の向上につながります。
なお、「kriswallsmith/assetic」のライブラリ名は、フレームワークSymfonyの開発に携わったKris Wallsmith氏の名前から来ており、asseticは「資産」という意味です。Symfonyフレームワークにもkriswallsmith/asseticは組み込まれていますが、単体でもライブラリとして使用することができます。
kriswallsmith/asseticはGitHub上で公開されているので、簡単にダウンロードできます。また、Composerを使用し「composer require kriswallsmith/assetic」を入力する方法でもインストール可能です。kriswallsmith/asseticをダウンロードする
whoops! – デバッグ
whoops!はデバッグ用のPHPライブラリで、エラーの追跡を簡単にするために使用されます。シンプルかつ便利なライブラリで、他のライブラリとの依存関係がなく単独で動作します。
whoops!導入後にエラーが発生した場合、エラーメッセージやエラーが発生するまでの過程(スタックトレース)、追加のデバッグ情報などが表示されます。例えば打ち間違いの時は「Type error」、不足がある場合は「add」と表示され、対象の行が赤くなります。これにより、エラーの原因を迅速に特定でき、修正が容易になります。
Whoops!はPHP 5.4以上で動作し、主に開発途中の段階で使用されます。LaravelやSymfony、CakePHPなどのフレームワークを使用する際は、Whoops!が予め組み込まれているので、別途ダウンロードは不要です。
Whoops!はGitHubから利用できます。また、Composerを使用して「composer require filp/whoops」を入力する方法でもインストール可能です。Whoops!をダウンロードする
briannesbitt/Carbon – 日付
briannesbitt/Carbon(ブライアンネスビット/カーボン)は、PHPで日付と時間を挿入したい時に使うライブラリです。このライブラリを使用すると、簡単に日付と時間の操作ができます。
briannesbitt/Carbonは、PHPで日時を表示するDateTimeクラスを拡張し、より使いやすくライブラリ化したものです。PHPのDateTimeには、日付や時間の足し引きやフォーマットを指定するメソッドがありますが、briannesbitt/Carbonでは、これらの機能をよりシンプルに利用できるように拡張しています。
例えば今から5日後の日時を表現する場合、PHPのDateTimeでは「$now = new DateTime(); 」で現在の日時を取得した後、「$now->modify(‘+5 days’); 」で取得データを5日後に変更し、「echo $now->format(‘Y-m-d H:i:s’); 」で表示させる必要があります。この作業をbriannesbitt/Carbonで表現するには、「$now = Carbon::now();」とした後で「$futureDate = $now->addDays(5);」で表現できます。
また、briannesbitt/Carbonは、Webアプリ開発でよく使われるフレームワーク「Laravel(ララベル)」でも標準的に使われています。
briannesbitt/CarbonをComposerでインストールする場合は、「composer init」でインストールします。またGitHubからもダウンロード可能です。briannesbitt/Carbonをダウンロードする
fzaninotto/Faker – ダミーデータ
zaninotto/Faker(フィザニノット/フェイカー)は、ダミーデータを生成するために使用されるPHPライブラリです。例えばWebアプリのテストで、実際には個人情報を入力する所にダミーデータが必要な時や、アプリが成長した時のために容量を開けておきたい時などにzaninotto/Fakerのダミーデータが役立ちます。
zaninotto/Fakerでは専用のアルゴリズムによってダミーデータを生成しています。ダミーデータの種類は、名前や住所、電話番号、メールアドレスのような基本的な個人情報から、テキストや画像といったデータまで豊富にあります。
ダミーデータの作成は簡単で、例えばダミーの名前を生成したいときは「$name = $faker->name;」 と「echo $name;」で表示できます。
また、zaninotto/Fakerは多言語対応なので、生成したいデータの言語を指定することができます。日本語で生成したい場合は、「$faker = Faker\Factory::create(‘ja_JP’); 」と入力します。
ダウンロードは、Composerで「composer require fakerphp/faker」を入力してインストールする方法か、GitHubから可能です。zaninotto/Fakerをダウンロードする
メール送信「PHPMailer」
PHPMailerはPHPでメールを送信するためのライブラリです。添付ファイルの送信や、送信先が正規の利用者かを確かめるSMTP認証、HTMLメールの送信まで、PHPMailerを使用すると多くの機能を簡単に実装することができます。
例えばPHPMailerを使用してSMTP認証をする場合、まず「$mail->isSMTP();」と設定します。それぞれの設定方法は以下の通りです。
PHPMailerでSMTP認証するコード | 内容 |
$mail->Host = ‘smtp.gmail.com’; | SMTPサーバーのホスト名を指定する |
$mail->SMTPAuth = true; | SMTP認証を有効にする |
$mail->Username = ‘your_email@gmail.com’; | SMTP認証に使用するメールアドレスを指定する |
$mail->Password = ‘your_password’; | SMTP認証に使用するパスワードを指定する |
$mail->SMTPSecure = ‘tls’; | TLS暗号化を使用する ※TLSはSSLよりも強い暗号化技術で、今は一般的に使われている |
$mail->Port = 587; | SMTPサーバーのポート番号を指定 ※一般的に使われているポート番号は587番 |
PHPMailerはSMTP認証をサポートしており、SMTPサーバーにユーザー名とパスワードを入力するだけで、SMTPサーバーに接続してメールを送信できます。実際のメール送信では、CCやBCCを使って複数の宛先に送信できたり、テンプレートを使用して定型メールを簡単に作成することもできます。
PHPMailerはComposerを使って「composer require phpmailer/phpmailer」でインストールできる他、GitHubからダウンロード可能です。PHPMailerをダウンロードする
グラフを描く「pChart」
pChartは、棒グラフや円グラフ、レーダーチャートなど、Excelのようなグラフを作成するためのPHPライブラリです。
pChartはグラフを描く際に必要な計算を自動でしてくれる他、グラフの背景やタイトル、軸、グリッド線、凡例などの色やスタイルを細かくカスタマイズできます。フォントやテキストの位置設定も簡単です。
pChart入力例 | 内容 |
new pChart(width, height) | 新しいグラフオブジェクトを作成する |
setFontProperties(font_file, font_size) | フォントのプロパティを設定する |
setGraphArea(x1, y1, x2, y2) | グラフの描画領域を設定する |
drawScale(scale_config) | 目盛りを描画する |
drawLineGraph(data, data_config) | 折れ線グラフを作成する |
drawBarGraph(data, data_config) | 棒グラフを作成する |
drawPieGraph(data, data_config) | 円グラフを作成する |
上記の他にも、pChartをダウンロードした際に添付される「examples」フォルダの中にはソースコードが豊富に保存されています。
pChartはComposerを使って「composer require pchart/pchart」でインストールできる他、GitHubからダウンロード可能です。pChartをダウンロードする
バリデーションチェック「Respect/Validation」
Respect/Validationはバリデーション用のPHPライブラリです。
バリデーションとは、入力したデータが、決められた文法や規定を守っているかを確認する作業を指します。バリデーションによってデータの妥当性をチェックすることで、不正な入力を防止でき、セキュリティ向上に繋がります。
例えば、Webサイトの「お問い合わせフォーム」に入力してもらう際に、入力必須の箇所すべてを入力できているか、問い合わせ内容の文字数制限を超えていないか等をチェックし、条件を満たしていない時にエラー画面を返すのもバリデーションです。
Respect/Validationでは、数値・文字列の長さや、パスワードの強度、ファイルのサイズ、日付の文字列などさまざまな種類のバリデーションに対応しています。
Respect/Validationがサポートするバリデーションの例は、以下の通りです。
Respect/Validationの項目 | 内容 |
numeric() | 数字であることを確認する |
stringType() | 文字列であることを確認する |
url() | 有効なURLであることを確認する |
notBlank() | 文字列があり、空白がないか確認する ※空白も文字列に含む場合はnotEmpty()を使用する |
length($min, $max) | 文字列の長さが最小値と最大値の範囲内か確認する |
上記以外にもRespect/Validationできるバリデーションについて知りたい場合は、GitHub内で確認できます。また、独自のバリデーションルールを作成することも可能です。
Respect/ValidationのダウンロードはComposerで「composer require respect/validation」と入力するか、GitHubからダウンロードできます。Respect/Validationをダウンロードする
画像投稿「PHP Image Upload Class」
PHP Image Upload Classは、画像のアップロードに役立つPHPライブラリです。画像のアップロード以外にも、画像のリサイズや圧縮などの操作も簡単に行えます。
PHP Image Upload Classの入力例は以下の通りです。
PHP Image Upload Classの入力例 | 内容 |
upload($file) | 画像ファイルをアップロードする ※$fileはファイルアップロード時の$_FILES配列のキー |
getWidth() | アップロードされた画像の幅を返す |
getHeight() | アップロードされた画像の高さを返す |
getMimeType() | アップロードされた画像のMIMEタイプを返す |
getFileName() | アップロードされた画像のファイル名を返す |
getExtension() | アップロードされた画像の拡張子を返す |
compress($quality) | アップロードされた画像を圧縮する |
PHP Image Upload ClassのダウンロードはComposerで「composer require verot/class.upload.php」と入力するか、GitHubからダウンロードできます。PHP Image Upload Classをダウンロードする
ユーザー認証・登録「Sentinel」
Sentinelはユーザー認証やユーザー登録など、ユーザーデータを管理する時に便利なライブラリです。Sentinelを使用するにはLaravelフレームワークをインストールする必要があります。Laravelは記述の容易さや拡張性、機能が充実していることから、Webアプリ開発の中でも人気が高いフレームワークです。
Sentinelでできる機能は、以下の通りです。
- ユーザー認証
- ユーザー登録
- ユーザーパスワードのリセット
- ユーザーのグループ管理
- ユーザーのパーミッション管理
- ソーシャルログイン
- OAuth 2.0サポート
- JWTサポート など
Sentinelを使用するには、まずComposerを使って「composer require cartalyst/sentinel」を入力し、LaravelにSentinelをインストールします。Sentinelのインストールが完了したら、Laravelの設定ファイルであるconfig/app.phpにプロバイダーとエイリアスを追加します。データベースマイグレーションを実行し、認証ルートの設定が完了したら、最後にユーザー認証を実行します。
Sentinelのインストールや詳細な使用方法については、公式HPのドキュメントを参照して下さい。Sentinelの公式HPでダウンロードや使用方法を調べる
チャット「Ratchet」
RatchetはWebSocketsを利用してチャットを作成するためのPHPライブラリです。WebSocketsとはウェブサーバーとブラウザの双方向通信を、共通した方法で行うためのシステムを指します。WebSocketsを使用すると、サーバーとクライアントが常に接続された状態となり、互いにデータをやり取りできるようになります。
通常のチャットツールには、メッセージの送受信以外にも、ユーザーのログイン・ログアウトや、チャット履歴の表示と保存といった機能が必要です。しかしRatchetでは、WebSocket接続を処理するための 「メッセージコンポーネントインターフェース」を実装することで、クライアントから受信したメッセージを処理し、他のクライアントに送信することができます。
また、Ratchetには、接続や切断に対応できるコールバック関数が用意されています。コールバック関数を使用することで、ユーザーのログインやログアウトを処理できます。
Ratchetで使用できるコールバック関数は、以下の通りです。
Ratchetコールバック関数 | 内容 |
onOpen | 新しいWebSocket接続が確立されたときに呼び出される |
onClose | WebSocket接続が閉じられたときに呼び出される |
onError | エラーが発生したときに呼び出される |
onMessage | WebSocket接続が受信したメッセージを処理する |
onTick | WebSocketサーバーの動作中に一定時間ごとに呼び出される |
尚、Ratchetでは、データベースのアクセスを容易にするモジュールPHP Data Objects(PDO)やDoctrine ORMを使用しています。
Ratchetのインストールは、Composerで「composer require cboden/ratchet」を入力すると簡単にできます。また、公式HPからもダウンロードが可能です。公式HPでRatchetをダウンロードする
API開発「Guzzle」
GuzzleはサーバーにHTTPリクエストを送る際に便利なPHPライブラリです。
Guzzleを使えば、例えばリクエストの送信やヘッダー設定、エラーやリダイレクトの処理、Cookieの管理など、HTTPに関連するタスクのほとんどを処理できます。また、サーバーに1つずつ要求するHTTP / 1.1と、複数要求が可能なHTTP / 2の両方のプロトコルをサポートしているので、従来のサイトから将来性のあるサイトまで広くカバーできます。
Guzzleを使用してHTTPリクエストを行う際の基本的なコードは、以下の通りです。
コード例 | 内容 |
$client = new \GuzzleHttp\Client(); | クライアントを作成する |
$response = $client->request(‘GET’, ‘URL’); | GETリクエストを送信する |
echo $response->getBody(); | レスポンスボディを表示する |
また、LaravelやSymfonyなどのPHPフレームワークには、Guzzleが標準装備されています。
Guzzleを単体で使用する場合は、Composerを使用して「composer require guzzlehttp/guzzle」を入力するとインストールできます。また、GitHubからダウンロードも可能です。GitHubでGuzzleをダウンロードする
データベース管理「Propel」
Propel(プロペル)は、オブジェクトとリレーショナルデータベースとの間で相互に変換を行うためのPHPライブラリです。PHPコードだけでデータベースにアクセスできるため、Webアプリ開発でデータベースとのやりとりが簡単にできます。
具体的なPropelの機能は、クエリを使ってデータベースにアクセスや変更、トランザクションが失敗した時に直前の状態に戻す作業などです。特にクエリは簡単な構文になっており、複数クエリを一度に実行できるため、効率的にデータベースにアクセスできる仕組みになっています。
PropelのインストールはComposerで「composer require propel/propel」と入力する以外にも、GitHubでダウンロード可能です。また、SymfonyやCakePHP、Yii FrameworkPHPなどのフレームワークには、Propelがあらかじめ組み込まれています。GitHubでPropelをダウンロードする
決済サービス「Stripe」
Stripeはクレジットカードの支払い機能をPHPで実装するためのライブラリです。クレジットカード以外にも、デビットカードでの支払いや銀行振込が可能です。2020年からは、Apple payやGoogle Payなどのキャッシュレス決済にも対応しています。尚、支払い機能の安全性は、主にStripeのAPIを開発者が利用することで成り立っています。
Stripeのインストールは、Composerを使用する場合は「composer require stripe/stripe-php
」を入力します。また、GitHubからもダウンロード可能です。
インストールが完了したら、ダッシュボードより「\Stripe\Stripe::setApiKey(‘sk_test_APIキー’);」を入力してAPIキーの設定を完了して下さい。GitHubでStripeをダウンロードする
その他PHPライブラリの探し方
今回おすすめした14種類以外にも、PHPには豊富なライブラリがあります。PHPライブラリの使用用途やキーワードが明確な場合は、以下の3サイトを利用すると探しやすいでしょう。
Qitta
Quitta(キータ)は、ITエンジニアやプログラマを対象とした情報投稿サイトです。ライブラリやフレームワーク、ITテクノロジー関連の情報が投稿されています。
QuittaにはTwitterのように「いいね」やフォロー、コメント機能があり、SNSユーザーにとっては使いやすいのが特徴です。また、2023年時点でのQuitta会員数は75万人を超えており、誰でも自由に投稿やコメントができるため、多くのエンジニアと交流できるというメリットがあります。
QittaでPHPライブラリを検索する場合は、トップページの検索バーより「PHP ライブラリ」等で検索してください。QittaでPHPライブラリを探す
GitHub
GitHub(ギットハブ)は、プログラミングコードの共有やバージョン管理などができ、世界中で利用されているオンラインサービスです。
GitHubでPHPライブラリを検索する場合、トップページから「PHP」で検索した後、LanguageでPHPを選択すると絞り込めます。使用用途が明確な場合は、「PHP 使用用途」で検索すると、よく使われているライブラリが分かります。英語サイトなので、必要に応じて翻訳ツールを使用すると良いでしょう。GitHubでPHPライブラリを探す
Packagist
Packagistは、Composerを使用してインストールできるライブラリの保管サイトです。トップページの検索バーにライブラリの名前やキーワードを入力します。こちらも英語サイトなので、必要に応じて翻訳ツールを使用して下さい。
詳細ページの右側にある「Installation」には、Composerを使用してライブラリをインストールするための手順が示されています。PackagistでPHPライブラリを探す
PHPライブラリのインストール方法
Composerとは
Composer(コンポーザー)は、「PHPの依存関係管理ツール」と呼ばれています。Composerを使用すると、開発に必要なライブラリやフレームワークを、手動でライブラリを探してインストールするよりも簡単にインストールできます。
Composerを使ったライブラリのインストール方法
Composerを利用するには、まず公式HPからComposer自体のインストールが必要です。プロジェクトのルートディレクトリで 「”composer init”」 コマンドを実行して、Composerの設定ファイルである composer.json を作成すると使用できるようになります。
開発に必要なPHPライブラリをインストールするには、コマンドラインにて「composer require ライブラリ名」を入力します。先ほど「ComposerはPHPの依存関係管理ツール」と述べましたが、例えば「他のライブラリをインストールしていないと使用できないライブラリ」があったとしても、Composerで目的のライブラリをインストールすると、そのライブラリを使用するのに必要なライブラリまでも自動でインストールしてくれます。
また、「composer update」を入力すると、PHPライブラリのバージョン更新も簡単に行えます。
PHPを効率よく学ぶには?
PHPを効率よく学ぶには、まず基礎的な機能や構文の理解が大切です。「Progate」や「ドットインストール」など、無料でPHPを学べるオンライン講座の活用や、初心者向けに書かれたPHPの参考書を活用すると良いでしょう。PHPの参考書は、「気づけばプロ並みPHP」「スラスラ読めるPHPふりがなプログラミング」がAmazonでも評価が高く、おすすめです。
また、独学するよりもPHP開発者のオンラインコミュニティに参加して、他の開発者と交流すると、分からない事でもすぐに解決でき、挫折しにくくなります。
実際にPHPを使った開発をする場合、今回紹介したライブラリを使うのも良いですが、LaravelやSymfonyなどのフレームワークを利用すると、より効率的にPHP開発ができます。また、LaravelやSymfonyを使った開発をしているエンジニアは多いので、情報量が多いのもメリットです。
まとめ
今回の記事では「PHPライブラリのおすすめ14選」について紹介しました。PHPはプログラミング言語の中でも取得難易度が低く、開発しやすい言語です。
また、ライブラリが充実しており、Composerを使えばライブラリのインストールや管理が便利になるのもPHPの特徴です。
今回おすすめしたようなライブラリを取り入れることで、より効率的にWebサイトやアプリの開発ができるでしょう。
コメント