En dan begin je gelijk met composer?!?
Persoonlijk heb ik composer in de prullenbak gegooit.
Niet dat composer slecht is, de structuur is ruk.
Elk package zijn eigen autoloader, volledige git repo, etc.
En wat doen al die "/tests/" en weet niet wat allemaal voor bestanden op een live server?
Extreem voorbeeld Akeneo PIM:
Met alle niet "live" code: 179 MiB
Zonder alle niet "live" code: 139 MiB
Geheugen gebruik: 3 GiB
Het is goed dat je meer doet dan een "simpele html website" maar begin dan netjes met 2 simpele autoloaders
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
| <?php
set_include_path('.'
.PATH_SEPARATOR.'.'.DIRECTORY_SEPARATOR.'vendor'
.PATH_SEPARATOR.get_include_path()
);
if ('/' === DIRECTORY_SEPARATOR) {
// Default FAST lowercase detection
spl_autoload_extensions('.php');
spl_autoload_register();
// Slower case-sensitive standard "everyone" uses
spl_autoload_register(function($name){
if ($file = stream_resolve_include_path(strtr($name, '\\', '/') . '.php')) {
include_once $file;
}
});
} else {
// Slower buggy Windows OS
// Because people on Windows OS are case-insensitive and produce bugs when uploading to POSIX
// So the strpos() verifies case-sensitive to prevent errors when uploading from Win32 to POSIX
spl_autoload_register(function($name){
if ($file = stream_resolve_include_path($name . '.php') && false !== strpos($file, $name)) {
include_once $file;
} else {
$name = strtolower($name);
if ($file = stream_resolve_include_path($name . '.php') && false !== strpos($file, $name)) {
include_once $file;
}
}
});
} |
En plaats Twig "src/*" als /vendor/Twig/ (je hebt immers alleen de "src" map nodig, de "lib" map is oldschool)
En plaats Illuminate/Database als /vendor/Illuminate/Database/
etc,
Sleek, snel en duidelijk wat je echt nodig hebt voor je website.
Op deze manier rol ik zelf websites uit.
Ok, in de basis is dit iets meer werk maar je kan (als je POSIX gebruikt en NIET Windoes) symlinks maken.
Zo heb ik WEL een composer voor het beheer en updaten van alle packages.
Vervolgens heb ik in een project op mijn PC:
code:
1
2
| ln -s /home/USER/composer/vendor/Twig/src /home/USER/public_html/PROJECT/vendor/Twig
ln -s /home/USER/composer/vendor/Illuminate/Database /home/USER/public_html/PROJECT/vendor/Illuminate/Database |
Ik zeg NIET dat je het zo moet doen, maar het heeft mij in ieder geval nog nooit een 500 Error opgeleverd

Vroeger toen ik nog Windows gebruikte wel hoor, had ik bijvoorbeeld ergens ILluminate getypt, uploaden naar Linux server en hoppa, stuk
[
Voor 17% gewijzigd door
DJMaze op 04-01-2018 13:06
. Reden: Fix autoloader code voor Windows ]