Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Require multiple files

I am building a PHP application that uses a select menu to build email templates. The templates are broken into reusable parts (each is a separate html file). Is there an easy way to require multiple files with one expression? (my PHP is really rusty...)

Essentially I want to do something like:

function require_multi() {
    require_once($File1);
    require_once($File2);
    require_once($File3);
    require_once($File4);
}
like image 398
MBguitarburst Avatar asked Jul 09 '11 23:07

MBguitarburst


3 Answers

Well, you could turn it into a function:

function require_multi($files) {
    $files = func_get_args();
    foreach($files as $file)
        require_once($file);
}

Use like this:

require_multi("one.php", "two.php", ..);

However, if you're including classes, a better solution would be to use autoloading.

like image 78
alexn Avatar answered Oct 05 '22 06:10

alexn


EDIT:

Because you want to require or include multiple files, you could use this recursive algorithm to include files in a specified folder. The folder is the root that starts the iterator. Because the algorithm is recursive, it will automatically traverse all subsequent folders and include those files as well.

public function include_all_files($root) {
    $d = new RecursiveDirectoryIterator($root);
    foreach (new RecursiveIteratorIterator($d) as $file => $f) {
        $ext = pathinfo($f, PATHINFO_EXTENSION);
        if ($ext == 'php' || $ext == 'inc')
            include_once ($file); // or require(), require_once(), include_once()
    }
}

include_all_files('./lib');
like image 30
JohnnyStarr Avatar answered Oct 05 '22 07:10

JohnnyStarr


Credit to Tom Haigh from how to require all files in a folder?:

$files = glob( $dir . '/*.php' );
foreach ( $files as $file )
    require( $file );

Store all your required files in $dir and the above code will do the rest.

like image 34
Nahydrin Avatar answered Oct 05 '22 06:10

Nahydrin