рдореИрдВ рдХрд╕реНрдЯрдо рдлрд╛рдЗрд▓ рд▓реЛрдбрд░ рдХреЗ рд╕рд╛рде рдСрдЯреЛрд▓реЛрджрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдФрд░ рдореБрдЭреЗ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореЗрд░рд╛ рд▓реЛрдбрд░ рд╡рд┐рдХреНрд░реЗрддрд╛рдУрдВ рд╕реЗ рдХреБрдЫ рд╡рд░реНрдЧреЛрдВ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╡рд┐рдХреНрд░реЗрддрд╛ рдХреЛ рд▓реЛрдбрд░ рд╕реЗ рдкрд╣рд▓реЗ рдореЗрд░реЗ рд▓реЛрдбрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
рдпрд╣рд╛рдБ autoloader.php
рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИ:
<?php
// autoload.php generated by Composer
if (!class_exists('Composer\\Autoload\\ClassLoader', false)) {
require __DIR__ . '/composer' . '/ClassLoader.php';
}
return call_user_func(function() {
$loader = new \Composer\Autoload\ClassLoader();
$composerDir = __DIR__ . '/composer';
$map = require $composerDir . '/autoload_namespaces.php';
foreach ($map as $namespace => $path) {
$loader->add($namespace, $path);
}
$classMap = require $composerDir . '/autoload_classmap.php';
if ($classMap) {
$loader->addClassMap($classMap);
}
$loader->register();
require $baseDir . '/Nella/loader.php'; // <-- my libs
require $vendorDir . '/nette/nette/Nette/loader.php'; // <-- vendor libs
return $loader;
});
рдореБрдЭреЗ рдЕрдкрдиреЗ lib (_Nella_) рд╕реЗ рдкрд╣рд▓реЗ _Nette_ рд▓реЛрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореЗрд░реЗ (_Nella_) рд▓реЛрдбрд░ рдХреЛ _Nette_ рд╕реЗ рдХреБрдЫ рд╡рд░реНрдЧреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
@Seldaek рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣рд╛рдБ рдкрд░ рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рд╣рд▓ рдХрд░рддреЗ рд╕рдордп рдорд┐рд▓реЗ рдЖрджреЗрд╢ рдХрд╛ рд╕рдореНрдорд╛рди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рддрд╛рдХрд┐ рдирд┐рд░реНрднрд░рддрд╛ рдХреА рдСрдЯреЛрд▓рдбрд┐рдВрдЧ рдлрд╝рд╛рдЗрд▓ рдкреИрдХреЗрдЬ рдХреЗ рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдкрд╣рд▓реЗ рд▓реЛрдб рд╣реЛ рдЬрд╛рдПред
рд╣рд╛рдБ, рдЬреЛ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдкрд╣рд▓реЗ рд░рди рдХреЗ рдмрд╛рдж рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд╛рдлреА рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╣реИред
рдореБрдЭреЗ рдкреВрд░реА рддрд░рд╣ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдпрд╣ рдорд┐рд▓ рдЬрд╛рдПрдЧрд╛? рд╕рднреА рдСрдЯреЛрд▓рд░реЛрд▓рд░реНрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдФрд░ рдлрд┐рд░ рдЖрджреЗрд╢ рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рдирд╛ рдЪрд╛рд╣рд┐рдП?
рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдХрднреА рдирд╣реАрдВ рдореИрдВ рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд :)
рд╕реЙрд▓реНрд╡рд░ рдХреЛ рд▓реЗрди-рджреЗрди рдХреЗ рд╕рд╣реА рдХреНрд░рдо рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрдиреНрд╣реЗрдВ рд╡рд╛рдкрд╕ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрд┐рд╕рдореЗрдВ рдорд╛рдорд▓рд╛ рднреА рд╢рд╛рдорд┐рд▓ рд╣реИ рдЬрдм рдкреИрдХреЗрдЬ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕реНрдерд╛рдкрд┐рдд рд╣реИрдВ, рддреЛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрджреЗрд╢ рдЧрд▓рдд рдХреНрдпреЛрдВ рд╣реЛрдЧрд╛ред
рдпрд╣рд╛рдБ рдореЗрд░рд╛ _composer.json_ https://github.com/nella/framework/blob/composer/composer.json рд╣реИ
рдореИрдВрдиреЗ рдЕрднреА kdyby/forms-replicator
рд╕рд╛рде рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдЕрдиреБрднрд╡ рдХрд┐рдпрд╛ рд╣реИ
{
"name":"kdyby/forms-replicator",
"require":{
"php":">=5.3.2",
"nette/nette":"*"
},
"autoload":{
"files":["Replicator.php"]
}
}
require
autoload_real.php
рдХрд╛ рдХреНрд░рдо рдЗрд╕ рдмрд╛рдд рдХреЗ рдЕрдиреБрд░реВрдк рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдкреИрдХреЗрдЬреЛрдВ рдХреЛ рдПрдХ рджреВрд╕рд░реЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреИрд╕реЗ рд╣реЛрддреА рд╣реИред
@HosipLan рдХрд╛ рдареАрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╡рд┐рд▓рдпред
рдпрд╣ рдХреИрд╕реЗ рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП рдХрд┐ рд╣рдорд╛рд░рд╛ рдкрд░рд┐рд╡рд╛рдж рдкрд╣рд▓реЗ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП?
рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ, рдпрд╣ рджреВрд╕рд░реЗ рдкрд░ рдирд┐рд░реНрднрд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдкрд╣рд▓реЗ рдХреБрдЫ рдФрд░ рд▓реЛрдб рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдореЗрд░реЗ рдкрд╛рд╕ @onlyongunz рдЬреИрд╕рд╛ рд╣реА рдкреНрд░рд╢реНрди рд╣реИ - рдореИрдВрдиреЗ рд╡рд┐рд╢реНрд╡ рд╕реНрддрд░ рдкрд░ apigen/apigen
рдФрд░ symfony/var-dumper
, рд▓реЗрдХрд┐рди рдЬрдм рдореИрдВ dump()
рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ tracy/tracy
(ApiGen рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ) рд╕реЗ рдХрд░рддрд╛ рд╣реВрдВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдореИрдВ VarDumper рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред
рдЖрджреЗрд╢ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред рдпрд╛ рдЗрд╕рд╕реЗ рднреА рдмреЗрд╣рддрд░: рдЙрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд┐рдХрд▓реНрдк рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдкрд╣рд▓реЗ рд▓реЛрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдорд╛рдорд▓реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ: рд▓рд╛рд░реНрд╡рд╛ рдХреЗ рд╕рд╣рд╛рдпрдХ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдирд╛ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЙрд╕ рдорди рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдП рдЧрдП рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕рдВрдЧреАрддрдХрд╛рд░ рдХреЛ рдпрд╣ рдмрддрд╛рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореЗрд░реА рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЛ рд▓рд╛рд░реНрд╡рд╛ рдХреЗ рдореВрд▓ рдПрдХ рд╕реЗ рдкрд╣рд▓реЗ рдЖрдирд╛ рд╣реИред
рд╕рдВрджрд░реНрдн: https://laracasts.com/index.php/discuss/channels/general-discussion/override-functions-in-supporthelpersphp
рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб: https://github.com/funkjedi/composer-include-files
рдЦреИрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ sugest рдЬрд╛рдПрдЧрд╛ load_first
рд▓реЛрдб рдкрд░ рдкреИрдХреЗрдЬ рдХреА рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рддрдп рдХрд░рдиреЗ рдЬрдм рдпрд╣ рдЕрдиреНрдп liblary рдкрд░ рдирд┐рд░реНрднрд░ рдирд╣реАрдВ рдерд╛ (рдЬрдм рддрдХ рдпрд╣ рдХреЗ php рдпрд╛ рдХреБрдЫ рдФрд░), рдФрд░ рдЬреЛрдбрд╝рдиреЗ --ignore-order
рдЕрдирджреЗрдЦреА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП load_first
ред
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдЖрджреЗрд╢ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред рдпрд╛ рдЗрд╕рд╕реЗ рднреА рдмреЗрд╣рддрд░: рдЙрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд┐рдХрд▓реНрдк рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдкрд╣рд▓реЗ рд▓реЛрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдорд╛рдорд▓реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ: рд▓рд╛рд░реНрд╡рд╛ рдХреЗ рд╕рд╣рд╛рдпрдХ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдирд╛ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЙрд╕ рдорди рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдП рдЧрдП рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕рдВрдЧреАрддрдХрд╛рд░ рдХреЛ рдпрд╣ рдмрддрд╛рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореЗрд░реА рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЛ рд▓рд╛рд░реНрд╡рд╛ рдХреЗ рдореВрд▓ рдПрдХ рд╕реЗ рдкрд╣рд▓реЗ рдЖрдирд╛ рд╣реИред
рд╕рдВрджрд░реНрдн: https://laracasts.com/index.php/discuss/channels/general-discussion/override-functions-in-supporthelpersphp
рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб: https://github.com/funkjedi/composer-include-files