Upogonio sam ovaj router , ovo je samo za učenje.
Interesira me best practice, kako automatski napraviti autoload controllera?
Imamo ovako
$router = new \Bramus\Router\Router();
$router->get(’/test’, ‘test@index’);
$router->run();
Treba loadati controller test i pozvati metodu index, dakle ono što frameworci rade automatski.
Imam neke svoje zamisli, ali interesiraju me i druga mišljenja.
Jasno je to meni, ali prije toga treba rucno napraviti include controllera.
Moze se skemijat da se u bazi drzi pattern i onda dinamicki includa controller.
Pa netreba rucno napraviti, to ce napraviti funkcija koju regstriras.
Ukoliko ne registriras niti jednu, ondak ce defaultno to uraditi spl_autoload, koja ce:
By default it checks all include paths to contain filenames built up by the lowercase class name appended by the filename extensions .inc and .php.
evo primjera, u example.php nigdje rucno ne includa “controllers/HomeController.php”:
Još jedan parametar što treba koristiti composer autoload je da Symfony od verzije 4 i Zend od verzije 3 (obe aktuelne) koriste composer autoload standard isključivo. U prethodnim verzijama su korišteni i drugi (dodatni) načini autoload-a (Zend u Module.php fajlu, Symfony kroz ClassLoader.php).
2 Likeova
Ubo nekoliko seminara na udemy, izmedju ostalog php mvc from scratch gdje je objasnjen i composer i autoload, tu sam imao rupe.
Za jedan sat seminara, ako se pise i code i sve radi kako treba, treba otprilike 2-3sata rada.
Sve ovisi sa kojom verzijom autor radi itd.
Super. Svakoga dan u sakom pogledu napredujemo
Mozes li sa nama podjeliti kako si rjesio problem?
Composer, autoload i namespace.
Namespace i autoload sam do sada zanemarivao.
tpojka
veljača 2019 13:43 8
11
Poprilično sam siguran da ti se otvara novi realm PHP-a.
I nadopuna:
composer
, git
, i phpunit
.
1 Like
Da…
Git znam, a php unit krenuo sa seminarom. Drugi po redu na udemy.
1 Like
tpojka
veljača 2019 14:46 8
13
jorgovan:
Drugi po redu na udemy.
Ja lupim pretragu i izbaci mi cijenu od $125 za kurs.
Aj’ mislim se baš da ga stavim u wishlist, medjutim kad sam se ulogov’o spusti se cijena za 77% tj. na $29.
belmin
veljača 2019 14:55 8
14
Tako ima je sa svim tutorialima Dignu cijenu u nebo, i odmah kao neki offer naprave 80% popusta koji traje samo jos par sati, a u biti traje zauvijek
tpojka
veljača 2019 15:39 9
15
Sad mi Udemy posla mejl sa nepristojnom ponudom no. 2:
1 Like
tpojka
veljača 2019 15:46 9
17
Pa ne, sve je ok.
Juče sam se logov’o i stavio na wishlist kurs.
Danas ga nude po nešto jeftinijoj cijeni a ja još uvijek tvrdim pazar.
@tpojka
ako imam psr4 autoload npr. ovako:
"autoload": {
"psr-4": {
"Core\\": "System/",
"App\\": "App/"
}
},
I sad u App imam tisuće klasa, da li se uvijek loadaju samo one kalse koje se koriste ili sve?
ili da ručno imam autoloader?
class Autoloader {
private static $extension = '.php';
private static $path = '/';
public static function Load($path) {
if (isset($path) && !empty($path)) {
self::$path = $path . '/';
spl_autoload_register(
function ($file) {
$file = str_replace('\\', DIRECTORY_SEPARATOR, $file);
echo $file."\n";
require_once Autoloader::$path . $file . Autoloader::$extension;
}
);
} else {
return false;
}
}
}
u ovom drugom primjeru mi se loada smao ono što se koristi, clasa controller, bl class i modeli koji se koriste.
ognjen
veljača 2021 07:08 16
19
Samo one koje se koriste.
Kad prvi put instanciras ili ako je staticka kad prvi put pozoves neku metodu.
tpojka
veljača 2021 07:29 16
20
composer
isto koristi autoloader ako je to pitanje.
Pregledom nekol’ko artikala, evo izdvajam ovaj: