Include php files of subfolders at once
In PHP I have a folder with subfolders that contain .php files with either classes or interfaces. There are no further subfolders below that level.
Some classes extend other classes which are specified in other folders.
Structure:
MAINFOLDER
- FOLDER1
-- Class1.php
-- Interface1.php
-- Class2.php
- FOLDER2
-- Class3.php
-- Class4.php
-- Interface2.php
- FOLDER3
-- Interface3.php
-- Class5.php
I have tried this code:
$foldernames = ['FOLDER1','FOLDER2','FOLDER3'];
foreach ($foldernames as $foldername) {
foreach (glob('MAINFOLDER/'.$foldername.'/*.php') as $file) {
include_once $file;
}
}
The code doesn't work.
Anyone has an idea how to easily include all classes and interfaces at once?
php
add a comment |
In PHP I have a folder with subfolders that contain .php files with either classes or interfaces. There are no further subfolders below that level.
Some classes extend other classes which are specified in other folders.
Structure:
MAINFOLDER
- FOLDER1
-- Class1.php
-- Interface1.php
-- Class2.php
- FOLDER2
-- Class3.php
-- Class4.php
-- Interface2.php
- FOLDER3
-- Interface3.php
-- Class5.php
I have tried this code:
$foldernames = ['FOLDER1','FOLDER2','FOLDER3'];
foreach ($foldernames as $foldername) {
foreach (glob('MAINFOLDER/'.$foldername.'/*.php') as $file) {
include_once $file;
}
}
The code doesn't work.
Anyone has an idea how to easily include all classes and interfaces at once?
php
2
I have a feeling that you should research on an autoload ... the manual
– RiggsFolly
Nov 20 '18 at 12:22
You can also use Composer's autoloader and stick to its conventions.
– jeroen
Nov 20 '18 at 12:27
add a comment |
In PHP I have a folder with subfolders that contain .php files with either classes or interfaces. There are no further subfolders below that level.
Some classes extend other classes which are specified in other folders.
Structure:
MAINFOLDER
- FOLDER1
-- Class1.php
-- Interface1.php
-- Class2.php
- FOLDER2
-- Class3.php
-- Class4.php
-- Interface2.php
- FOLDER3
-- Interface3.php
-- Class5.php
I have tried this code:
$foldernames = ['FOLDER1','FOLDER2','FOLDER3'];
foreach ($foldernames as $foldername) {
foreach (glob('MAINFOLDER/'.$foldername.'/*.php') as $file) {
include_once $file;
}
}
The code doesn't work.
Anyone has an idea how to easily include all classes and interfaces at once?
php
In PHP I have a folder with subfolders that contain .php files with either classes or interfaces. There are no further subfolders below that level.
Some classes extend other classes which are specified in other folders.
Structure:
MAINFOLDER
- FOLDER1
-- Class1.php
-- Interface1.php
-- Class2.php
- FOLDER2
-- Class3.php
-- Class4.php
-- Interface2.php
- FOLDER3
-- Interface3.php
-- Class5.php
I have tried this code:
$foldernames = ['FOLDER1','FOLDER2','FOLDER3'];
foreach ($foldernames as $foldername) {
foreach (glob('MAINFOLDER/'.$foldername.'/*.php') as $file) {
include_once $file;
}
}
The code doesn't work.
Anyone has an idea how to easily include all classes and interfaces at once?
php
php
asked Nov 20 '18 at 12:20
Kent MillerKent Miller
1811315
1811315
2
I have a feeling that you should research on an autoload ... the manual
– RiggsFolly
Nov 20 '18 at 12:22
You can also use Composer's autoloader and stick to its conventions.
– jeroen
Nov 20 '18 at 12:27
add a comment |
2
I have a feeling that you should research on an autoload ... the manual
– RiggsFolly
Nov 20 '18 at 12:22
You can also use Composer's autoloader and stick to its conventions.
– jeroen
Nov 20 '18 at 12:27
2
2
I have a feeling that you should research on an autoload ... the manual
– RiggsFolly
Nov 20 '18 at 12:22
I have a feeling that you should research on an autoload ... the manual
– RiggsFolly
Nov 20 '18 at 12:22
You can also use Composer's autoloader and stick to its conventions.
– jeroen
Nov 20 '18 at 12:27
You can also use Composer's autoloader and stick to its conventions.
– jeroen
Nov 20 '18 at 12:27
add a comment |
1 Answer
1
active
oldest
votes
spl_autoload_register() is made for that.
It will use the callback given in parameter to include automatically a missing class.
In example :
spl_autoload_register(function ($className)
{
$foldernames = ['FOLDER1','FOLDER2','FOLDER3'];
foreach ($foldernames as $foldername)
{
//This example requires, of course, a correct naming of class files
$file = 'MAINFOLDER/' . $foldername . '/' . $className . '.php';
if (file_exists($file))
include $file;
}
});
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53392873%2finclude-php-files-of-subfolders-at-once%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
spl_autoload_register() is made for that.
It will use the callback given in parameter to include automatically a missing class.
In example :
spl_autoload_register(function ($className)
{
$foldernames = ['FOLDER1','FOLDER2','FOLDER3'];
foreach ($foldernames as $foldername)
{
//This example requires, of course, a correct naming of class files
$file = 'MAINFOLDER/' . $foldername . '/' . $className . '.php';
if (file_exists($file))
include $file;
}
});
add a comment |
spl_autoload_register() is made for that.
It will use the callback given in parameter to include automatically a missing class.
In example :
spl_autoload_register(function ($className)
{
$foldernames = ['FOLDER1','FOLDER2','FOLDER3'];
foreach ($foldernames as $foldername)
{
//This example requires, of course, a correct naming of class files
$file = 'MAINFOLDER/' . $foldername . '/' . $className . '.php';
if (file_exists($file))
include $file;
}
});
add a comment |
spl_autoload_register() is made for that.
It will use the callback given in parameter to include automatically a missing class.
In example :
spl_autoload_register(function ($className)
{
$foldernames = ['FOLDER1','FOLDER2','FOLDER3'];
foreach ($foldernames as $foldername)
{
//This example requires, of course, a correct naming of class files
$file = 'MAINFOLDER/' . $foldername . '/' . $className . '.php';
if (file_exists($file))
include $file;
}
});
spl_autoload_register() is made for that.
It will use the callback given in parameter to include automatically a missing class.
In example :
spl_autoload_register(function ($className)
{
$foldernames = ['FOLDER1','FOLDER2','FOLDER3'];
foreach ($foldernames as $foldername)
{
//This example requires, of course, a correct naming of class files
$file = 'MAINFOLDER/' . $foldername . '/' . $className . '.php';
if (file_exists($file))
include $file;
}
});
answered Nov 20 '18 at 12:29
CidCid
3,51221027
3,51221027
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53392873%2finclude-php-files-of-subfolders-at-once%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
2
I have a feeling that you should research on an autoload ... the manual
– RiggsFolly
Nov 20 '18 at 12:22
You can also use Composer's autoloader and stick to its conventions.
– jeroen
Nov 20 '18 at 12:27