REGPATH - sintaksa za selektiranje foldera i fileova

Sa nekim tko ne može priznati da je pogriješio i kada je skroz očigledno da je pogriješio na skroz trivijalnoj stvari gdje nema N od Nedoumica … sa takvom osobom se niti ne može razgovarati o kompleksnijim stvarima uz svo njeno znanje. Jer ta osoba nikada neće znati kada griješi.

S tobom sam to prošao već više puta … i zato me sa tobom ozbiljne rasprave niti malo ne zanimaju.
Čak i da griješim, svoje naume uz tebe ne mogu preispitati.

Ali oke si kao priručna interaktivna enciklopedija…dok god ta enciklopedija ne počme pokazivati da nije knjiga nego da ima ego.

Reče čovjek kojem sam riješio jedno 30+ problema minimum. Pa lol

Drugi put kad uzmeš nečiji kod, navedi izvor jer je najveća kradja da uzmeš a da ekplicitno ne navedeš upotrebu tudjeg koda. Da čisto ljudi ne pomisle da prisvajaš i kitiš se tudjim radom.

Gdje to imas potrebe raditi toliko sa file-ovima?

Pročitaj sada još jednom prvi dio posta sa razumjevanjem, jer slažem se da možeš pomoći.

Pogubio si se…ne znaš po čemu bi sve pljuvao, pa ovako neartikulirano prosipaš jal i gluposti.

Ja se pogubio a ti doslovno uzeo nečiju funkciju i implicitno prikazuješ k’o dio svog koda™? Važi.

Imam bitnijeg posla nego da se naganjam s tobom. Pišem PHP dokumentaciju.

Pa vrtim sve na svom frameworku, tako da se ima što raditi sa fileovima.
Osim toga automatizirao sam poprilično toga na relaciji framework - webpack, pa i tu imaš raditi sa fileovima.
Nadalje, kreirao sam svoj programski jezik PHML, koji se parcijalno isto vrti na tom frameworku. Jednog dana možda uspijem i u potpunosti sve upogoniti na PHML-u, za sada mi ovo parcijalno odlično rješava probleme zbog kojih je napravljen, a usput nadograđujem onda taj PHML po svojim potrebama.
To je ipak long-term zalogaj …no tu svakako opet imam štošta raditi sa file-ovima.

Cilj mi je PHML dovesti na razinu da mogu direktno upošljavati programere da rade na mom codu, a da je PHML sigurnosni štit da ne mogu ući dublje u jezgru programa nego ja dopustim određenom programeru putem dozvola.
Na taj način je dugoročno cilj napraviti alat koji će moći razvijati zajednica međusobno nepoznatih ljudi, gdje će postojati striktne dozvole tko što smije raditi na projektu…i te dozvole će cirkulirati hijerarhijom od samog vrha do svakog čovjeka koji je uključen na projektu. I svatko će naravno kontrolirati granu ispod sebe…i u nju moći uključivati svoje ljude.

Jer PHP mi je po tom pitanju pre-slobodan…svatko može pisati code koji želi.
PHML za konačnog programera može biti identično po sintaksi što i PHP, ali framework te fileove tretira kao .phml file-ove i parsira ih u safe-php. A taj safe-php ne može probiti ograničenja koja se nameću sa spomenutim dozvolama onoj osobi koja je kucala .phml iz kojeg je nastao taj safe-php.

To mi se čini preduvjet za veliku firmu gdje bi puno ljudi radilo na istom projektu…a velim, na taj način na isti projekt se mogu uključivati i ljudi koji se međusobno ne poznaju i nužno nemaju garanciju da si međusobno vjeruju.

I nije samo do zajednice programera…nego PHP ovakav kakav je …jednostavno nije imun na viruse. Što svjedočimo recimo na WP-u gdje se različiti ljudi uključuju preko pluginova koje kreiraju…pa vidimo kako se lako ubacuju virusi u priču. PHML je STOP tome. …i onda možeš imati ogrmnu zajednicu koja će štrikati zajednički code. (Isto po principu pluginova i nadoštukavanja na jezgru koju ću ja napraviti. Tj. jezgra već postoji, ali je u razvoju.)

Osim toga i composer je slab na isti vrag…čudi me još da nije pošteno naguz*** zajednicu. Jer tehnički nemaš pojma što ti može sve nakeljiti na projekt … i možeš imati grdih probelma ako si zakačiš neki virus.

Nije da se nisam dobro oznojio da istjeram jedan virus sa 50+ projekata, tako da znam da može biti pakleno ako ti se to desi. I sa takvim nedaćama sam se odlučio boriti na način PHML. A osim toga, proširit će mi se mogućnosti nenormalno…

Inače, PHML tema je ovdje: PHML - preparsed PHP i on fino napreduje.

Svakako, kada djeluješ na ovoj razini na kojoj ja volim raditi, sa file-ovima uvijek ima posla.
Otvorio sam i temu “zašto prekompajlirati code” i objasnio da ako se radi u toj domeni, da ne može postojati “nemoguće”: Zašto pre-kompajlirati code

A ako radiš sa prekompajlerima, uvijek radiš i sa file-ovima. :slight_smile:
Jer se uvijek priča svodi na koji source, koji kompajler, koji build folder…

Uglavnom, igram se…i vjerujem da idem dobrim putem da nastane nešto stvarno veliko. :slight_smile:
A znam i što to pravim…no otom potom.

Majkemi, ti si pukao.
O čemu ti pričaš… to što koristim ovaj line koji je podijeljen na forumu da se testira assoc array:

return array_keys($arr) !== range(0, count($arr) - 1);

…da sam negdje zgriješio?
Sramotiš se.

Ako si slučajno ozbiljan…pa onda ću ti samo reći da razmišljam ko ti da nikada nigdje nebi stigao. Više manje ako gledaš one-line code, svaka linija je već istipkana u tom nekom sličnom obliku, ako ne i identičnom.
Koliko ti vremena gubiš da sve provjeriš gdje je prvi puta nastalo? Koja si ti smijurija …

Kakav si smjehotres.
Pa provjerio sam jedinu liniju iz te gomile smeća a koja ima smisla.
Provjerio sam je zbog toga što nisam bio siguran da l’ postoji princip il’ funkcija u PHP-u jer se ne sjećam da sam kad vidio. I prvi link mi daje ovo što sam postavio a što si plagir’o.
Da si a ono makar ostanio po nazivu funkcije nego si smislio svoj? lol

Ti prvo nemaš pojma šta znači termin peer review. A drugo, a’ da radim bitnije nešto nego što tebi moram objašnjavati bazične stvari. :vulcan_salute:

Ček da rezumiram.
Uvijek me napadaš jer po tvome uvijek izmišljam toplu vodu … i onda u cijeloj metodi vidiš samo jednu preuzetu liniju (što nije ilegalno, heh…Bože oprosti mi što sam ovako jako zgriješio xd) …i sada napadaš što plagiram? Hjooj… ma jel ti stvarno ovoliko obraza nemaš? Tj. jel si stvarno toliko jalan da padaš na ovu razinu?

I ovo je glupost…koja dolazi iz nerazumjevanja dobrih praksi programiranja.
Naravno da ću zadržati svoju naming konvenciju. Radim u nekoliko jezika i nastojim da mi se metode jednako zovu u svim jezicima. Onda prijenos neke logike (određenog komada algoritma, jel) .se lako transformira iz jezika u jezik. Jer ako ti se metode jednako zovu, skoro da možeš copy paste prenositi code iz jezika u jezik. (Osim ako ne radiš to pomoću kompajlera nekog …a i tada je lakše da se metode isto zovu.)
Sem toga, lakše je i pisati code u više jezika, ako si istim metodama normirao nazive, pa u svakom jeziku po istom imenu pozivaš istu metodu. Onda sve fino leti… uvijek igraš na domaćem terenu. :slight_smile:
Zato nakraj krajeva imena i služe… da iste stvari zovemo istim imenom.

No to ćeš saznati sa normJS-om, jer to je projekt da se ostvari upravo to na relaciji više jezika.
Ali to uz sav moj trud nikako nisi uspio shvatiti, niti ćeš čini se ikada shvatiti… ako ne možeš shvatiti da ono gore nije regex…

Post can’t be empty
Post must be at least 20 characters

Dozvoli da napravim mali osvrt na kod koji si postavio.

Ovako, imaš dosta nepotrebnih stvari u primjeru koji si dao.

Npr.

function take($array,$x,$defaultValue=null){

	if(isset($array[$x])) return $array[$x];
	else return $defaultValue;
}

Ono šta me stvarno bode u oči je nedostatak type hintinga, kako za ulazne parametre tako i za output. PHP 8 donosi puno dobrih stvari baš po tom pitanju pa možda ne bi bilo loše da pogledaš. Isto tako else u ovoj funkciji je redundantan.

function isAssocArray($arr){
	    
	    return array_keys($arr) !== range(0, count($arr) - 1);
	}

Moram priznati jako čudno rješenje, zar ne bi bilo dovoljno napraviti ovo?

return array_values($arr) !== $arr

Ovo je isto nepotrebno iz više razloga.

function isString($x){
	return (gettype($x)==='string') ? true:false;
	}

PHP već ima ugrađenu is_string funkciju koja je ujedno i brža od ovog što ti radiš. Isto tako nepotrebno je koristiti ternary operator jer ako napišeš samo return (gettype($x)==='string') dobiješ istu stvar. Ovo je junior level. Ista stvar je sa tvojom isArray funkcijom, postoji is_array nativna PHP funkcija.

function last($item){

	if(isString($item)){
		if(strlen($item)) return $item[strlen($item)-1];
		return null;
	}

	if(isArray($item)){
		if(count($item)) return $item[count($item)-1];
		return null;
	}

}

Ovakvo miksanje bi trebalo izbjegavati jer to je osnova za špageti kod. Pogledaj malo Single Responsibility Principle.

Dalje možda analiziram sutra. Moram prizanti da sam malo iznenađen. NHF ali kod koji si postavio nije dobar. Da, vjerujem da radi, ali fali ti dobre prakse i iskreno, nema šanse da bi ovo prošlo code review.
Programiranje i sposobnost programiranja nije ista stvar. Ne bi bilo loše malo poslušati i druge šta govore, ima ih dosta od kojih se može puno naučiti.

Zato imas autoload. Tako se ne radi sa file-ovima kod frameworka.

Kad si vec spomenuo wp, wp je ok za stranice koje su jednostavnije.

Tipa za veci portal se sve radi custom. Da li neki framework, vlastiti framework ili bez frameworka.

Što da ti kažem. Postoji velika razlika između tjeranja maka na konac i ostvarivanja zacrtanih ciljeva.
Ovo kakvo je, poslužit će više nego dovoljno da dođem na cilj gdje želim stići.

Znam da se može i tako pisati …ali nekako mi je ovako preglednije. Volim ponekada ovako. Svakako smatram da je to tjeranje maka na konac. :smiley:

Ako će ti koja milisekunda promjeniti nešto u životu, go for it.
Ja znam zašto sam išao ovako…zato jer na ovaj način svi moduli u različitim programskim jezicima zovu metode koje se isto zovu. Tako se meni ta metoda u svim jezicima tako zove i onda je sve kompatibilno na jednoj višoj razini.

Objasnio sam to u jednom postu iznad tpojki na odgovor.

Uglavnom da ne duljim…to tjeranje maka na konac me ne zanima.
Ako imaš kritiku koja će obrazložiti zašto nešto u konretnoj situaciji neće riješiti problem … onda ću je rado poslušati. Sve ovo ostalo ja gledam ko tvoj problem, a ne svoj. Učestalo sam primjetio da programere baš to koči što ne znaju fokus staviti na ono najbitnije…nego ga razvodnjavaju na nebitne stvari…i onda zaglave tamo negdje zato jer se bave nebitnim stvarima umjesto da se usmjeravaju ka bitnima. :wink:

Code koji se:

  • lako održava
  • koji je skalabilan
  • fleksibilan za modifikacije
    … je dobar code. Sve drugo je nebitno ili manje bitno.

Dobro, ima naravno još bitnih stvari …ali gornje kritike se ne suprostavljaju sa niti jednom od bitnih stvari. Tj. ako se kose sa nekom od bitnih stvari, volio bih čuti sa kojom to bitnom stvari? :slight_smile:

Koja milisekunda u procesiranju codea mi stvarno nije bitna. :slight_smile:

Radim sa autoloadom. To ne znači da nemaš igre sa pahtovima u određenim (mnogim) situacijama.

Također prekompajliranje coda se ne radi sa autoloaderom, nego negdje u koraku koji se najčešće zove onBuild()

To se moze i ako je cisti php bez frameworka.
Ako je code napisan na pametan nacin.

Sto ti znaci prekompaliranje?

Nit sam rekao da se ne može. :slight_smile:

Samo velim, poentiram na to…ako se već kritizira code, zanima me samo ona kritika koja ukazuje da je narušeno nešto bitno.

Ovo tjeranje maka na konac samo da se ukaže da se nešto moglo nijansu bolje…zaboli me ona stvar.

I vjerujem da nemamo svi isti osjećaj za nijanse, ali treba i to trenirati naučiti razdvojiti bitno od nebitnoga. Lakše je imati OKP, nego razumno raspodjeljivati pažnju na uistinu bitno. :slight_smile:

pre - kompaliranje

Pa što radi webpack sa svim svojim file-ovima prije nego kreira radne file-ove?
Što radi kompajler SASSa ili LESS-a?

Pa ne izvršava se sav code direktno…nego imaš određene sintakse koje se moraju pre-kompajlirati, da bi bile kasnije razumljive onome tko će ih čitat/procesuirat.

PHML je jezik koji prekompajliram.
I javascript isto prekompajliram i na taj način širim sintaksu po svojoj potrebi.

Moje mišljenje na tu temu: Zašto pre-kompajlirati code

@ajme Welcome.

Btw. (ne samo sa ove teme) bilo je vrlo interesantno čitati tvoje postove na ostalim temama o programiranju. Vidi se da raspolažeš iskustvom koje je zasnovano na ispravnim principima, industrijskim standardima i dobroj praksi.

@bozoou sve ovo navedeno tvoj kod nije. Možda tebi to tako izgleda, ali stvarno nije.
Jedan od principa s kojim se vodim na poslu prilikom osvrta na moj kod je da ne shvaćam kritiku osobno. Probaj, možda nešto i naučiš :wink:

Preporučam odličan članak na tu temu The 10 commandments of navigating code reviews | TechBeacon

2 Likeova