勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ

PHPで指定したディレクトリ内のファイルを全てincludeする方法

  PHP

PHPでライブラリを利用する際にcomposerからインストールしたものは「vendor/autoload.php」をincludeするだけで良いが、composer以外でインストールした場合は1つずつincludeを書く必要がありこれが面倒。autoload.phpと同じような形になるよう実装方法をメモ。

 

実装方法

ディレクトリ構成

root/
 ├loader.php
 └library(このディレクトリにライブラリファイルをアップロードする)

loader.php

<?php
$pattern = __DIR__ . '/library/*.php';
foreach ( glob( $pattern ) as $filename ){
    include $filename;
}

使い方

以下でloader.phpを呼び出す。

include 'loader.php';

尚、以下を実行するとincludeしているファイルを確認できる。

$included_files = get_included_files();

foreach ($included_files as $filename) {
    echo "$filename\n";
}

 

リファレンス

glob

https://www.php.net/manual/ja/function.glob.php

get_included_files

https://www.php.net/manual/ja/function.get-included-files.php

 

所感

dBugやclass.upload.php等のファイル1枚で導入可能なライブラリをまとめてincludeしたかったので今後はこの方法を使っていく。

 - PHP

  関連記事

PHPでHTMLメールを送信する方法(PHPMailerあり無しの2パターン)
PHPでHTMLメールを送信する方法(PHPMailerあり無しの2パターン)

PHPでHTMLメールを送信したい。また、メール関連の機能を実装する際は環境によ ...

PHPを用いてフォームからzipファイルをアップロードしサーバ上で解凍(展開)させる方法
PHPを用いてフォームからzipファイルをアップロードしサーバ上で解凍(展開)させる方法

formからzipファイルをアップロードしサーバ上で解凍(展開)するという一連の ...

PHPで配列データをCSVとしてダウンロードさせる方法
PHPで配列データをCSVとしてダウンロードさせる方法

PHPでログ的なデータをCSV化したかった。ただ、複数の人間が使うのでCSVファ ...

CodeIgniter4 & reCAPTCHA でお問い合わせフォームを作成する方法
CodeIgniter4 & reCAPTCHA でお問い合わせフォームを作成する方法

以前CodeIgniter4.4.4で簡易的なお問い合わせページを作成したが、今 ...

メモリキャッシュシステムであるMemcachedをPHPにて利用する方法
メモリキャッシュシステムであるMemcachedをPHPにて利用する方法

メモリキャッシュシステムであるMemcachedのインストール方法、IP制限、P ...