Pomoć oko pregleda codea, principa, savjeta, pokuda... :)

18 godina koristim linuxu, ne mogu zamislit život bez console.

1 Like

Ima ljudi kori razvaljuju php, pa ne koriste OOP, nego funkcionalno programiranje u php-u, jer im to radi posao.

Zašto nekog kritizirat ovako ili onako?

Ako netko koristi samo funkcije ili funkcionalno programiranje ili OOP ili framework, ne treba se nikome smijati.

Ima ljudi koji rade u frameworku, pa neznaju složiti ručno običan pagination, a govore kako su frameworci super i popuše posao, a rade kao 5 godina developeri.

Uglavnom 70 % što rade php, imaju usko znanje, a posebno novi klinci koji su odma počeli koristiti frameworke.

A da ne govorim o routingu, acl i sl., većina nema viziju šo je to , kako složiti, zašto koristiti i kako. Čitam po raznim forumima pitanja iz kojih odma vidiš da nemaju pojma , a rade programiranje.

Ili nauče osnovne stvari i otvaraju blogove za programiranje.

Zašto se nitko ne smije ekipi koja radi wordpress, zato jer rade bez frameworka?

Sve ima svoje, ako je netko brži sa funkcionalnim programiranjem u php-u, zašto ne bi koristio tu paradigmu?

I dan danas ima firmi koje rade top stvari u php-u bez frameworka.

Problem kod frameworka je kad si mala/manja firma imaš 20-30 zaposlenih ljudi i radiš ključ u ruke i sa nekim frameworkom, i sad ako imaš god. 5-10 klijenata, kroz 5 godina 30-70 projekata, kako češ to upgrade-ati, jer stara i nova verzija nisu kompatibilne, tko će to platiti?

Klijenta ne zanima što to nije kompatibilno.

Ako imaš i manje projekata migracija sa jedne verzija na novu verziju frameworka je jako teška, govorim iz iskustva, a kamoli sa jednog frameworka na drugi, jer nitko ne može pravdati taj trošak koji nije mali i nikog ne zanima.

Badava što si sa frameworkom brže gotov i klijenta u startu to manje košta, kad na duge staze klijent je u banani.

Dohvat/paginacija necega sto uzimas iz nekog repozitorija – bila to baza, vanjski servis ili nesto sedmo – je vise infrastrukturalni problem. Developeri trebaju sto manje vremena gubiti na infrastrukturalne probleme, a rjesavati domenske probleme.
Tu frameworci i libraryji pomognu jer obicno imaju plug’n’play rjesenja za mnoge infrastrukturalne probleme tako da se ne mora izmisljati kotac svaki puta.

Zasto bi itko radio iz nule paginaciju, ACL ili router kad je taj problem vec rijesen milijun puta i moze se jako brzo iskoristiti neko popularno open-source rjesenje koje je provjereno, pokriveno testovima i kojemu contributea obicno nekoliko desetaka ili stotina developera?

Mozes navesti neke?

Ovo je toliko pogresno da ne znam kako prokomentirati.

U biti citam tog jorgovana i mislim si WTF??? i to ne samo na ovoj temi nego na skoro svakoj, ali nekako mi se neda ulaziti u diskusiju s njim.

Cuj ti funkcionalno programiranje u PHPu. :man_facepalming::

Ali moram uzeti malo vremena za neku diskusijicu. :smile:

Ajde da se kladimo da nisi mislio na functional programming nego na procedural programming i ajde da se kladimo da PHP nije functional programming programski jezik, ali da se mogu primjemiti neke tehnike tog nacina programiranja u PHPu.

Tako je dobro je rekao creatifcode to je proceduralno programiranje.

Funkcionalno programiranje ti je npr.

https://www.haskell.org/
https://www.scala-lang.org/

Nigdje nisam napisao da je php funkcionalni jezik , ali da, mogu se primijeniti tehnike.

Mislio da na primjenu functional programming u proceduralnom stilu.

I što je tu loše?

Znaš kako se kaže, tisuću ljudi, tisuću čudi.

Netko voli ovo, netko ono, netko ovako, netko onako.

Poštujem svačiji izbor, ako netko voli rad sa laravelom recimo, super, podržavam ili ako netko radi samo OOP, podržavam itd…

Ali nikome ne govorim što bi bilo dobro i sl. samo zato jer je to moda.
Moda dolazi i odlazi.

Netko prkosi tome i uspijeva

1 Like

Samo što developer to mora znati.
Bilo testiranje za posao, zadatak je bio napraviti pagination, nema nikakvog ograničenja.

Većina filozofirala , bootstrap, framework , ovo , ono i nisu ništa napravili.
Toliko o njihovom znanju.

Funkcionalno programiranje u PHP, JS-u i slicnim ne postoji, postoji samo funkcionalni stil programiranja tj. moguce je primjeniti neke tehnike.

Jedan odlican talk na tu temu

Kad smo već kod toga (FW i OOP), da se izjasnim zašto do “danas” nisam radio u php-u sa tim okruženjem i tim tehnikama.
Prvo, slažem se s @jorgovan u svezi problema s updateom FW-a. Konkretno Laravel ima lošu povijest s kompatibilnosti upgrade-ova. Sa 3-ke na 5-icu mnogi kažu da je lakše nanovo napisati code koji je napisam u L3 nego ga prilagoditi za L5.
Drugo, kao što davno rekoh, pisao sam nekad u VB6 koji je objektni jezik. Napravio nekoliko aplikacija, međutim kako ga jaaaako dugo nisam koristio, zaboravio sam gomilu stvari.
PHP nije objektni jezik. I toga sam se držao. PHP je sposoban za OOP ali nije objektno orijentiran. Isto kao što je sposoban i za funkcionalno programiranje ali nije funkcionalno orijentiran jezik. Međutim kako je ta tehnika uzela maha, i kako želim otić iz države i nać posao vani, morao sam ga savladat (inače se ne bih uopće zamarao time).
I treba priznati, FW pruža brži razvoj (uvjerih se i oduševih i sam).

1 Like

Niko nije primoran da vrši upgrade verzije.
Ali mislim da se update-i home-made aplikacija ne vrše kako bi trebalo (često) pa se onda obrće logika da je upgrade FW-a prečest. Dva su moguća (osnovna) razloga za upgrade:

  1. security update
  2. a) adding new functionalities
    b) rewriting old ones for better purposes

Ako ti ne trebaju nove funkcionalnosti (tipa, u Laravel-u: nove direktive u blade-u npr.) koristi 5.1, nije smak svijeta što se routes.php fajl nalazi na nekom drugom mjestu (funkcija mu je ista).
Ali stvar je da su security updates ono što treba konstantno pratiti a to se uglavnom popravlja u novim verzijama. Nikom nije zabranjeno da koristi staru verziju i popravlja istu.
Valjda bi se očekivalo da to isto radi i na home-made aplikaciji. Samo što na home-made aplikaciji dok uradiš tako nešto trebaju ti nekol’ko sedmica a često i mjeseci. A ovamo imaš gotovo sa sve
step-by-step uputstvom kako da izvedeš.
Recimo, od Laravel verzije 5.7 minimum PHP-a koji laravel traži je 7.1.3 verzija. Može da se prepravi composer.json i postavi 5.6 (nisam prob’o, pretpostavljam da bi možda moglo, možda i ne) ali fakt je da je 7.1 napredniji od 5.6 i da koristi dodatne pakete koji sami po sebi zahtijevaju v7+.

Što se tiče koncepta koda, savjetujem da se pregleda Zend kojeg odobravaju vodeća imena PHP-a danas. Ne nužno da se koristi (mada bi bilo poželjno) već čisto da se vidi koje paradigme koristi i prati.

Pa baš da nije primoran… :slight_smile:
Ajmo reć napravio si web app u Laravelu 3 prije x godina kad je izišao.
Na serveru se vrtio php 5.x verzija i sve super.
I hosting stavi najnoviju verziju php-a (7-icu) i app krene bacat warninge i/ili greške.
I nema druge nego preć na Laravel 5. Osuđen si :slight_smile:

Ali to se uopšte ne razlikuje od in-house aplikacije ako je hosting odlučio to što je odlučio.
Jedino što bi’ mog’o povezati je da se potrebni update-i in-house aplikacije ne vrše kako (često) bi trebalo.

Znas da postoje hosting provideri gdje ti nitko ne prcka po serveru, pa da teoretski si mozes compileati PHP 5.6 i vrtiti na serveru do kad god zelis? I time te nitko ne tjera da si dizes verziju icega.

Verzije frameworka bi trebao dignuti ako imas neki benefit od toga – npr nova major ili minor verzija frameworka daje neke feature koje ti se cini super koje zelis iskoristiti, pa zato se upgradeas, a ne jer eto mora se.
Plus naravno uvijek bi trebao teziti da barem vrtis onu najstariju verziju frameworka koja jos uvijek ima security support.

Usput, aplikacija pisana od nule bez frameworka takodjer moze biti nekompatibilna s verzijama PHP-a koje dolaze, tako da ako imas hosting providera koji ce ti dignuti verziju PHP-a jer oni tako zele, u istom si problemu, zar ne? Aplikacijski kod se mora promijeniti da bude kompatibilan s novom verzijom PHP-a.
A ako koristis neki industry-standard framework tipa Laravel kojeg si spomenuo, barem imas upgrade vodic sto tocno moras napraviti tako da ne moras ni razmisljati previse. Ista stvar je i sa npr Symfonyem.
Kod aplikacije pisane iz nule nemas uputa, sam si na svom pa se snadji i nemoj pogrijesiti. Sto je jako veselo, pogotovo ako nemas testove koji ce ti nakon promjena potvrditi da sve i dalje radi kako treba na novoj verziji PHP-a.

Plus da ne pricam da postoje servisi koji za tebe upgradeaju Laravel aplikaciju iz npr verzije 4.1 u 5.7 za male novce -> https://laravelshift.com/, sto znaci da zapravo uopce ne moras niti trositi dragocjeno developersko vrijeme na to.

Tako da topli savjet je da apsolutno sve sto je jorgovan rekao na tu temu trebas ignorirati ako zelis se baviti PHP-om profesionalno.
Framework ti olaksava stvari, ne otezava. Niti kod upgradea, niti kod developmenta, niti kod performansi.
Ako su performanse nekad problem, to se rjesava na druge nacine na produkciji, tipa in-memory kesiranje resursa, front/http cache, opcode caching etc, a ne vadjenjem frameworka iz cijele price.
Pogotovo jer u verziji 7.4 nam dolazi preload, sto ce povecati performanse jos i vise nego opcache i overhead frameworka svesti na nulu.

Ne kažem da je korištenje FW-a loše ili da otežava (upravo suprotno sam gore napisao) samo kažem da nisu savršeni i zašto sam ih izbjegavao. Iskreno, nad onime nad čime nemam gotovo potpunu kontrolu ne volim koristiti. Sa korištenjem smartphonea borio sam se dok god je bilo urednih telefona na tipke. Ubija me u pojam automatsko ažuriranje, a ne kada ja to želim (banalni primjer).

Za hostinge znam da možeš vrtjeti i starije verzije php-a (osobno na jednom domaćem vrtim 5.3 verziju jer mi jedna funkcija ne radi sa novijim verzijama, pa sam zamolio da mi ostave u izborniku tu verziju, i tako radi godinama).
Osobno mi je uvijek lakše bilo krenuti od “nule” nego se hvatati u koštac sa FW (bilo kojim), ali to je moj “problem” i ne znači da je ispravan. Jednostavno je tako - volim kodirati (bila to web app ili mikrokontroler).

Nisam totalni amater, znam i ja ponešto… :slight_smile:

Otvori temu s ovom funkcijom da je nariktamo. :blush:

1 Like

Neću :stuck_out_tongue: :smiley:
Stvar je u klasi koju koristi ta aplikacija, a kako mi se nije dalo prčkat po tome, samo sam zamolio hosting (domaći) da mi ostave 5.3 (nešto je vezano uz ssl, da li open ssl ili štoveć, zaboravih) ako je moguće. I ostavili su te tako radi godinama. Znam da nije htjelo raditi već od verzije 5.5x. Rekoh - ostavi, ne diraj ako radi :slight_smile:

1 Like

Koristite li Yoda conditions?

Yoda conditions pišu samo oni u kojima je sila jaka.