Tema za savjete za good i bad practice u PHP-u

Naslov teme je “Tema za savjete za good and bad practice u PHP-u”, ja sam ti odgovorio da ono što ti radiš je bad practice, a ti baš kao i u svim ostalim temama teraš po svome. Korištenjem frameworka, ne da ćeš riješiti probleme, nego ćeš postati i bolji developer, jer ćeš početi sa good practice korištenjem PHP-a, pogotovo ako se orijentiraš na framework poput Laravela. I kroz korištenje takvg frameworka ćeš naučiti puno, puno više nego kroz ovaj ili slične forum. Kod je dostupan i možeš se s njim igrati i raditi što hoćeš, nije to closed source pa da ne vidiš što se dešava ispod haube.

Osobno ti preporučujem Laravel jer je jednostavan za početnike, a opet dovoljan za napraviti ozbiljnu aplikaciju.

I da ovo što ti radiš je bad practice, ne samo da ti onemogućuje TDD nego ti i najmanja promjena negdje u nekoj funkciji može razjebati cijelu aplikaciju, a onda će ti trebati koznakoliko vremena da to otkriješ. U tvom načinu razvoja možeš npr. samo sanjati o DRY metodi programiranja. Interfaceima, inheritance, polimorfizam, abstraktiranju i ostalim stvarima da ne govorim.

Sve u svemu bad practice development će te kad tad koštati i ako ti servis ili aplikacija krene, technical debt će te uništiti.

Ne znam baš …moj code je u potpunosti DRY :wink: …ali ti voliš svoja vjerovanja bazirati na pretpostavkama kojih nisi ni svjestan…

Do jedne takve pretpostavke ćeš sam doći ako pokušaš nadopuniti jednu od njih:

ja sam ti odgovorio da ono što ti radiš je bad practice

Znači, što to radim vidoviti Milane? Nisam primjetio da sam igdje napisao kako nešto radim?

A tema ako se zove good i bad practice…onda si isto tako svojom logikom mogao napisati cijelu knjigu o good practice…

Znači, unutar teme postoje pitanja kako je neki konkretan problem rješiv, koje su solucije i mogućnosti…da se to izvede na dobar način.
Ja sam konkretno pitao koja je prednost klasa spram funkcija kod organizacije includanja istih…i odgovor je bio zaista kratak i jasan: __autoload() / spl_autoload_register()

Tvoj odgovor kojeg si naslovio jednostavnim odgovorom, niti je jednostavan…niti je odgovor na pitanje. Unutar toga odgovora jedina imalo kvalitetna informacija je sugeriranje frameworka, ostalo je considering kao pametovanje s visoka… A tako ja nažalost tebe shvaćam kad god pokušavaš negdje pomoći. Od prvog dana od kad sam ovdje na forumu :wink:
Jedino što si se u zadnje vrijeme čak malo upristojio…prije si bio arogantniji prema svima, uključujući i mene. Dobro ti ja pamtim neke rečene stvari i tvoj stav, ali ajd popravljaš se svakako. Samo ja tvoj ton pročitam između redaka…nemrem te fulat :wink:

I da bude jasno, cijenim ja tvoje znanje…i svjestan sam da moram progutati prvo ■■■■■ od tebe…da bi u konačnici izvukao i neku korisnu informaciju :slight_smile: Navikao sam na to…što više, postalo mi je simpatično upoznavati tvoj lik i karakter xd.

I baba Vanga…kakav sam lik i karakter?

Daj malo u detalje.

Nista od ovog sto je napisao @creatifcode nije netacno.
Mada se da naslutiti da postoji neka averzija prema ulasku u OOP.
Evo tutorijal koji je meni bas dosta pomogao da savladam logiku PHP OOP MVC pristupa.

baba Vanga će tek reći svoje nakon što vidoviti Milan završi misao:

ja sam ti odgovorio da ono što ti radiš je bad practice

…vidoviti Milane, kako ja to radim?? :smiley:

Where Do I Start

Ako je engleski jezik problem, onda prije svega prvo nauči engleski, pa onda slijedi link iznad.

Tu ćeš naučiti prije svega OOP općenito, te OOP u PHPu - što/zašto/kako.
Naučiti ćeš što je Composer, zašto nam uopće treba dependency manager (a svi ostali ih jezici također imaju, samo što se u drugim jezicima ne zovu Composer), a dok učiš što je Composer naučiti ćeš i magije modernog PHPa, što su namespaceovi i zašto ih koristimo i slično… Dok prođeš kroz tu cijelu listu ne samo da ćeš znati PHP, nego i jedan od najboljih PHP frameworka koji postoje - Laravel.

Dalje ti neće biti problem naučiti bilo koji drugi framework, i vidjeti ćeš neke slične i različite pristupe kada budeš radio s nekoliko frameworka, te ćeš sam skužiti što je good a što bad practice u PHP-u.

Definitivna lista ne postoji.

1 Like

Kuda svi turci tu i mali Mujo? Smijem se kladiti u ženine guzove da ste Laravel upoznali nakon što je neko drugi za isti rekao da ga treba naučiti :smiley:

:+1: vidiš ti moj avatar :smiley:

A kako se to ti upoznas sa tehnoloskim inovacijama? Dobijes u snu viziju da se pojavio XY framework koji bi trebalo isprobati ili procitas tu i tamo o njemu kako bi uopste cuo da tako nesto postoji pa se tek onda odlucis ili ne da to isprobas? Ja nesto mislim da je ovo drugo u pitanju ali eto sve je moguce…

I da je istina, jel bi to značilo da je framework loš?

Ne, nisam rekao da je loš, no sve mi liči na histeriju koja se ponavlja godinama unazad: “što se mučiš instaliraj mambo /joomlu, wordpress, PHP je out, počni koristiti R’o’R, Django je zakon, Symfony je sve što trebaš”…

Sigurno ne zato što mi je neko na nekom forumu rekao da naučim to i to.

Kada sam iz praktičnih razloga odlučio koristiti php framework krajem 2007 god. sjeo sam i pogledao dokumentaciju od tada dostupnih. Prvi kriterij kojim sam se vodio je da framework ima dobru dokumentaciju, drugi da je ima aktivnu razvojnu zajednicu. Odabrao sam tri fw, sjeo i napravio prototip tražene web aplikacije u sva tri, na kraju sam znao što ću koristiti u budućim projektima, iako sam imao raznih savjeta (gore spomenutih).

Prije 2-3 godine, ukazala se potreba za php aplikacijom koja će morati obraditi veliki broj upita, opet malo googlanja php+c php cpp, pronađem dva, jedan je imao bolju dokumentaciju i to je to.

1 Like

I sto mislis da drugi nisu sposobni isto to uraditi vec su eto “na nagovor nekog drugog se odlucili za laravel”?

Ja mislim da su sposobni, no oni koji dijele savjete što treba učiti očito ne misle tako :wink:

Ako nesto koristi veliki broj ljudi to ocito znaci da to nesto valja i nije neko smece…
Mislim da ovaj graf govori sve…

Nigdje nisam tvrdio da neki framework ne valja, nego je “bad practice” instruirati ljudima da uče jedan framework ili cms. Razvijati framework je biznis u koji se ulaže kroz oglašavanje i PR, što popularniji framework to ima bolji PR, što razvojni timovi imaju veći priliv sredstava to više ulažu u promidžbu, ta se poslovna spirla vrti sve dok se ne uruši, već viđeno u projektima sa te liste, Symfony, CI, Yii, Zend, CakePHP, TYPO3,…

Lijep pozdrav.

Iznenađujuce visoko stoji Nette… To valjda samo Cesi koriste. Jedan od bivsih kolega je contributor, pa sam malo prckao po sourceu. Zgodno, ali Cesi vole koristit ceski vise nego engleski, pa je guglanje ili trazenje dokumentacije pomalo uzaludno.

Novo pitanje, problematika je sljedeća: (…i sigurno je vrlo poznata i sigurno je rješena u frameworcima, ali eto…ja bih molio da netko ugrubo objasni koncept kako se radi sljedeće…)

Znači, imamo klasičnu priču nekog website koji se može pojaviti u različitim varijantama:
Recimo prva varijanta je da se site otvara sa samo jednom kolonom: a1
Druga varijanta da se otvara sa dvije kolone: a2-b2
Treća varijanta da se otvara sa tri kolone: a3-b3-c3
(U sve tri varijante imamo header povrh…footer na dnu…)

Sad slažemo stranicu koja će biti tipa: a3-b3-c3 ,
gdje su kolone:
a3 -> vlastiti sadržaj stranice, poneki element zajednički s ostalim podstranicama
b3 -> u potpunosti vlastiti sadržaj stranice
c3 -> u potpunosti zajednički element sa nekim ostalim stranicama (ne svima)

Dali je zdrav pristup sljedeći:

Putem frameworka, definira se kostur stranice. U ovom slučaju kostur je a3-b3-c3 …te mi u postavkama samo chekiramo nesto tipa:
page/subpage_xy => (skeleton => ‘a3-b3-c3’)

E sada, pošto taj kostur zahtjeva tri contenta (za sve tri kolone)…moramo isto tako naznačiti koje contente ćemo povući prema tom kosturu:

page/subpage_xy =>
(
a3=>'nesto’
b3=>‘subpage_xy_main_content.php’,
c3=>‘advertising.php’
)

S time da sve mora funkcionirati hijerarhijski, jer iznad kostura a3-b3-c3, imamo kostur: header-columns-footer,
taj kostur uvijek može povlačiti isti header (a i ne mora), isto tako i za footer…a za columns mu se definira hoće li biti:
a1,
a2,b2,
a3,b3,c3

…i onda po istoj logici ni a3 ne mora biti zadnji content…nego se pak može definirati kao novi kostur kako bi se postiglo da taj a3 povuče, kako je zadano iz primjera, neke zajedničke elemente podstranica…te neke vlastite.

Jel to načelno to ili krivi smjer??
Ako netko ima nešto konstruktivno dodati, bit ću veoma zahvalan! :wink:

Meni je za shvatanje OOP pristupa najviše pomogao tekst “Saga o OOP”, koji je pisan, sada već prilično davno, ali je i dalje jedan od boljih.