Php router -- autoload controllera


#1

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.


#2

Za autolaod pogledaj spl_autolaod tj spl_autoload_register

http://php.net/manual/en/function.spl-autoload.php
http://php.net/manual/en/function.spl-autoload-register.php

A taj ruter ce sam pozvati metodu, negdje u ovom bloku: https://github.com/bramus/router/blob/e1a2b6da8e555fd5344706900861375852d22bea/src/Bramus/Router/Router.php#L391


#3

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.


#4

Samo Composer PSR-4 autoloading.


#5

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”:


#6

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).


#7

Rijeseno…


#8

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.:innocent::innocent:
Sve ovisi sa kojom verzijom autor radi itd.


#9

Super. Svakoga dan u sakom pogledu napredujemo :slight_smile:
Mozes li sa nama podjeliti kako si rjesio problem?


#10

Composer, autoload i namespace.

Namespace i autoload sam do sada zanemarivao.


#11

:+1: Poprilično sam siguran da ti se otvara novi realm PHP-a.

I nadopuna:
composer, git, i phpunit.


#12

Da…
Git znam, a php unit krenuo sa seminarom. Drugi po redu na udemy.


#13

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. :open_mouth:


#14

Tako ima je sa svim tutorialima :smiley: Dignu cijenu u nebo, i odmah kao neki offer naprave 80% popusta koji traje samo jos par sati, a u biti traje zauvijek :smiley:


#15

Sad mi Udemy posla mejl sa nepristojnom ponudom no. 2:


#16

Sad se moraš zabrinuti, da te netko ne prati.
Paranoja, paranoja …:smile::smile::smile::smile:


#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. :relaxed: