DevProTalk

Forumi IT profesionalaca
web development, web design, e-business, SEO


Idite nazad   DevProTalk > Web development i web aplikacije > PHP
Želite da se reklamirate ekskluzivno na ovoj poziciji? Javite se

PHP PHP aplikacije, Smarty, PEAR

Odgovori
 
Alati teme Način prikaza
Staro 17. 10. 2009.   #1
Gargoyle
old school
Professional
 
Datum učlanjenja: 19.04.2007
Poruke: 372
Hvala: 139
70 "Hvala" u 43 poruka
Gargoyle će postati "faca" uskoro
Default

Citat:
Recimo, sada ja imam sajt na na nekom serveru i provajder upgrade-uje na php6. I onda me cima klijent pa se zali da ne radi sajt a ja kazem "pa nisam nista menjao, nemoguće da ne radi". On u panici kuka "pa ... vidis da ne radi - uzmi i sredi - platili smo ti za to". A ti onda sedi i radi za dzabe jer su brainiacs smislili da poizbacuju gomile funkcija.
Ovo mi se desilo previše puta, i jedno vreme sam mislio da je to stvarno moja odgovornost, i želeći da ispoštujem klijenta, ispravljao sam kôd (besplatno). Problemi su bili u upgrade-ovanju servera sa PHP4->PHP5. Naravno sada mi to ne pada na pamet da radim. U ugovoru jasno preciziram da niko ne može neovlašteno da "čeprka" po projektu koji sam ja izradio, a to uključuje i samog klijenta koji ne može (ne sme) da direktno pristupa na recimo ftp/mysql, ne sme da menja direktno fajlove i sl., niti provajder sme da (bez pitanja) menja konfiguraciju servera (što se inače redovno dešava po jeftinim shared hostingzima) -- osim ako nije posebno drugačije navedeno. Odnosno u slučaju kada oni to ipak rade, garancija ne važi, pa su dalje slobodni da rade šta hoće, o svom trošku. Dakle ili sam ja "gazda" ili je neko treće lice, ali nikako nismo zajedno gazde.

Citat:
Pa upravo zato kod kvalitetnijih hosting provajdera postoji opcija izbora PHP verzije tako da klijent ili osobe zadužene za web sajt mogu da biraju koja verzija PHPa će "terati" njihov web sajt u bilo kom trenutku
Tu dolazimo do ovoga. Pametno je zakupiti ovakav hosting, gde će se moći instalirati verzija po izboru, kada mi to želimo.

I naravno klijenta treba u startu informisati spram koje verzije se radi projekat, šta to znači, koje su implikacije, šta se očekuje u budućnosti i zašto, tako da kada i ako dodje do upgrade-a servera, da ne bude iznenađenja tipa "platili smo, popravljaj za džabe".
Gargoyle je offline   Odgovorite uz citat
Staro 18. 10. 2009.   #2
bluesman
Goran Pilipović
Sir Write-a-Lot
 
Avatar bluesman
 
Datum učlanjenja: 18.05.2005
Lokacija: Beograd
Poruke: 5.450
Hvala: 288
1.247 "Hvala" u 446 poruka
bluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušati
Pošaljite ICQ poruku za bluesman
Default

Jel' vas dvojica mene nešto palite ili šta?

Citat:
Originalno napisao dinke Pogledajte poruku
Sticem utisak da ovo nisi skapirao. Ne radi se o iskljucenju "complex" sintakse (tipa "ovo je string sa varijablom {$var}" vec o tretiranju stringa kao niz (kao u C-u) tipa treci char je $string[2]. Ranije je za to moglo da se koristi $string{2} a sada je to deprecated.
A onda i mister holodoc:

Citat:
Originalno napisao holodoc Pogledajte poruku
"Vitičaste" zagrade u PHP5.3 i dalje omogućavaju da string podaci u sebi sadrže blokove koji referenciraju promenjljive tipa "Nešto {$promenjljiva} još nešto" ali nije moguće više pristupati karakterima stringa putem vitičastih zagrada tipa $promenjljiva{8}.
'ajde? Pa o tome i pričam, od jednom promene sintaksu i ne možeš da pročitaš određeni karakter stringa sa {N} već sa [N]... i to je kao ok u verziji većoj od 0.1 beta promeniti sintaksu jezika? I kada to ostane - ide parse error i pukne script.

I onda dinketovo rešenje je:
Citat:
Originalno napisao dinke Pogledajte poruku
Kao i za ereg(i) i kod ovoga jedan search/replace resava problem
^ Zbog takvog predloga sam siguran da me u stvari zajebavaš . To možda i prođe kada imaš 1 ili 2 sajta. Šta da radim sa ostalim sajtovima? Da menjam jedan po jedan narednih 6 meseci?

Velika je razlika između "depricated" i "parse error", a to drugo će upravo da se desi kada izbace to što su rekli. Za ovo prvo može da se isključi notice, a zbog ovog drugog ti ne radi script. Ne znam da li me razumete? Svi scriptovi u kojima ostanu funkcije koje su ovi odlučili da izbrišu, ili "nepostojeća sintaksa", će generisati error - ne rade - kraj! Nije više ni u pitanju da li ti smeta E_NOTICE ili bilo šta - script se i ne izvrši.
__________________
Goran Pilipović a.k.a. Ugly Fingers Bradley f.k.a. bluesman
I don't always know what I'm talking about but I know I'm right!

Poslednja izmena od bluesman : 18. 10. 2009. u 01:30.
bluesman je offline   Odgovorite uz citat
Staro 18. 10. 2009.   #3
dinke
Super Moderator
Invented the damn thing
 
Avatar dinke
 
Datum učlanjenja: 06.06.2005
Poruke: 2.371
Hvala: 370
701 "Hvala" u 194 poruka
dinke je pravi dragi kamendinke je pravi dragi kamendinke je pravi dragi kamendinke je pravi dragi kamendinke je pravi dragi kamendinke je pravi dragi kamendinke je pravi dragi kamen
Default

^Za Beano kazes lepo adminima da ne stavljaju nista novije od PHP 5.3 i resen problem (pod uslovom da te poslusaju, meni uredno trchi neki mysql 5.1 preview na production masini, bez komentara).

Sto se sajtova ostalih klijenata tice, mozda je stvarno vreme da pocnes da potpisujes ugovor da taj i taj sajt garantovano radi za tu i tu verziju PHP-a, apache-a, mysql-a bla bla bla ... i da odrzavanje (sto ce reci izmedju ostalog i update koda u ovakvim slucajevima kada je narusen backward compability) naplacujes posebno.
__________________
Caught in a Web|Blogodak
With great power comes great responsibility!
dinke je offline   Odgovorite uz citat
Staro 18. 10. 2009.   #4
holodoc
član
Certified
 
Datum učlanjenja: 27.11.2007
Poruke: 71
Hvala: 10
12 "Hvala" u 11 poruka
holodoc is on a distinguished road
Default

Citat:
Originalno napisao bluesman Pogledajte poruku
'ajde? Pa o tome i pričam, od jednom promene sintaksu i ne možeš da pročitaš određeni karakter stringa sa {N} već sa [N]... i to je kao ok u verziji većoj od 0.1 beta promeniti sintaksu jezika? I kada to ostane - ide parse error i pukne script.
Iskreno ni ne sećam se kada sam poslednji put video kod koji tako manipuliše sa stringovima tako da što se mene lično tiče ovo i nije nešto što će mi nedostajati.

S druge strane PHP vuče sintaksičke korene iz C-a u kome se elementima stringa (karakterima) pristupa uglastim zagradama a[0], a[1] tako da ne vidim razlog zbog čega je uopšte i uvedena ova alternativna sintaksa sa vitičastim zagradama osim da se nastavi tradicija PHPa da omogućava previše različitih načina da se jedna ista stvar odradi i tako stvori dodatni prostor za greške.
holodoc je offline   Odgovorite uz citat
Staro 18. 10. 2009.   #5
bluesman
Goran Pilipović
Sir Write-a-Lot
 
Avatar bluesman
 
Datum učlanjenja: 18.05.2005
Lokacija: Beograd
Poruke: 5.450
Hvala: 288
1.247 "Hvala" u 446 poruka
bluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušati
Pošaljite ICQ poruku za bluesman
Default

Da, slažem se da to može da šljaka u takvom "idiličnom" okruženju (mada se i tamo dešava da neko instalira nešto 'nako... da proba), ali postojao je život i pre i posle Beano
__________________
Goran Pilipović a.k.a. Ugly Fingers Bradley f.k.a. bluesman
I don't always know what I'm talking about but I know I'm right!
bluesman je offline   Odgovorite uz citat
Staro 18. 10. 2009.   #6
bluesman
Goran Pilipović
Sir Write-a-Lot
 
Avatar bluesman
 
Datum učlanjenja: 18.05.2005
Lokacija: Beograd
Poruke: 5.450
Hvala: 288
1.247 "Hvala" u 446 poruka
bluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušati
Pošaljite ICQ poruku za bluesman
Default

Molim te, daj mi primer kako ti "izvlačiš" recimo 3 karakter iz nekog stringa. Stvarno me interesuje koje je to bolje i preglednije rešenje.

I da, kada sam ja prvi put pokušao tako nešto, i ja sam probao sa $string[N], očekujući da je ista sintaksa kao u C, međutim ako su već uveli nešto (koliko god se [ne]slagali sa tim) što se vuče jako dugo, kako mogu tek tako da odluče da to izbace od sledeće verzije.
__________________
Goran Pilipović a.k.a. Ugly Fingers Bradley f.k.a. bluesman
I don't always know what I'm talking about but I know I'm right!
bluesman je offline   Odgovorite uz citat
Staro 18. 10. 2009.   #7
dinke
Super Moderator
Invented the damn thing
 
Avatar dinke
 
Datum učlanjenja: 06.06.2005
Poruke: 2.371
Hvala: 370
701 "Hvala" u 194 poruka
dinke je pravi dragi kamendinke je pravi dragi kamendinke je pravi dragi kamendinke je pravi dragi kamendinke je pravi dragi kamendinke je pravi dragi kamendinke je pravi dragi kamen
Default

Potpisujem da je u ranijim verzijama manuala stajalo samo $string{2} tj. u dokumentaciji je stajalo da je obavezno koriscene viticastih zagrada za pristup x-tom elementu niza a ne (kao u C-u) uglastih.

E sad da li je to i ranije radilo i sa uglastim i sa viticastim pre nego se neko setio da to i dokumentuje - ne bih znao.

@bluesman
Fakat najjednostavniji nacin da izvuces n-ti element u stringu je bas ovaj pristup
__________________
Caught in a Web|Blogodak
With great power comes great responsibility!
dinke je offline   Odgovorite uz citat
Staro 18. 10. 2009.   #8
krcko
A suicide bomber!
Certified
 
Avatar krcko
 
Datum učlanjenja: 05.08.2005
Lokacija: Beograd
Poruke: 63
Hvala: 1
2 "Hvala" u 2 poruka
krcko is on a distinguished road
Pošaljite poruku preko MSN za krcko Pošaljite poruku preko Skype™ za krcko
Default

sto se tice {} vs [] sintaxe za pristupanje pojedinacnim karakterima stringa, ja mogu da potpisem da je u predhodnim verzijama manuala (pre nego sto je 5.3 i zapocet) pisalo da {} sintaxa nije preporucljiva i da treba koristiti [].

ja se php-om bavim od verzije 5 (mada sam bio prinudjen i da pisem php4-compatible kod) i nikada nisam koristio {} vec bas []...

a sto se samog PHP 5.3 tj PHP 6 tice meni se neke "novotarije" bas svidjaju (closures.. hell yea!), dok su mi neke mnooogo lose uradjenje (tipa / u nejmspejsima!?!?! to mi toliko izgleda neprirodno i ruzno da nemam reci... mogli su lepo da koriste . ili eventualno : ako im je . previse tesko za implementaciju - a svaki context-aware parser/kompajler bi bez problema mogao u ovakvoj situaciji da podrzi tacku kao delimiter)...

i thumbs up za sve deprecated fje! (mada se slazem da je mnogo bolje ostaviti fju koja ne radi nista nego dizati E_DEPRECATED, ali sa function_exists lako moze da se 90% koda koji koristi te fje natera da igra po pravilima sestice...)
__________________
jQuery addict!
krcko je offline   Odgovorite uz citat
Staro 18. 10. 2009.   #9
holodoc
član
Certified
 
Datum učlanjenja: 27.11.2007
Poruke: 71
Hvala: 10
12 "Hvala" u 11 poruka
holodoc is on a distinguished road
Default

Citat:
Originalno napisao dinke Pogledajte poruku
Potpisujem da je u ranijim verzijama manuala stajalo samo $string{2} tj. u dokumentaciji je stajalo da je obavezno koriscene viticastih zagrada za pristup x-tom elementu niza a ne (kao u C-u) uglastih.
Nažalost koliko god PHP manual bio koristan opšte je poznato da on nije baš bez grešaka pa se često dešavalo da se neke stvari potpuno pogrešno dokumentuju. Da li je to bio slučaj i sa ovim primerom ne bih znao ali kompleksna "vitičasta" sintaksa je uvedena u PHP 4 dok recimo klasično indeksiranje stringova ako me pamćenje ne vara postoji još od PHP verzije 2 (naravno one "prepisane" savremenije).
holodoc je offline   Odgovorite uz citat
Staro 18. 10. 2009.   #10
holodoc
član
Certified
 
Datum učlanjenja: 27.11.2007
Poruke: 71
Hvala: 10
12 "Hvala" u 11 poruka
holodoc is on a distinguished road
Default

Citat:
Originalno napisao bluesman Pogledajte poruku
Molim te, daj mi primer kako ti "izvlačiš" recimo 3 karakter iz nekog stringa. Stvarno me interesuje koje je to bolje i preglednije rešenje.
Pretpostavljam da ovde misliš na pristup "trećem" karakteru ali u svakom slučaju dotaći ću i varijantu "izvlačenja" dela stringa.

Dakle, ako bih ikada bio u situaciji da moram da pristupim sadržaju određenog indeksa stringa u PHPu onda bih sigurno koristio sintaksu sa uglastim zagradama $string[index] ne zato što teram inat ili što je ona možda bolja i preglednija već zato što je svakako logičnija, tradicionalnija i ustaljenija varijanta od "vitičaste" alternative. Drugim rečima svako ko se ikada dotakao bilo kog programskog jezika koji podržava manipulaciju stringova kroz nizove zna da se indeksima stringa pristupa korišćenjem uglastih zagrada. To što PHP podržava i ovu alternativnu sintaksu je jedna od njegovih specifičnosti koja verovatno nikada nije trebala da ugleda svetlost dana ali valjda je postalo jasno do sada da je PHP tehnologija za koju važi pravilo da nove i specifične stvari i ne moraju nužno da budu bolje

Što se tiče "izvlačenja" dela stringa tu verovatno ne bi trebalo da bude nekakve nedoumice. PHP je bar takav da je velika verovatnoća da za sve što može da se reši jezičkim konstruktima postoji i odgovarajuća funkcija. U konkretnom primeru substr bi trebalo da bude dovoljno dobro rešenje.
Citat:
Originalno napisao bluesman Pogledajte poruku
I da, kada sam ja prvi put pokušao tako nešto, i ja sam probao sa $string[N], očekujući da je ista sintaksa kao u C, međutim ako su već uveli nešto (koliko god se [ne]slagali sa tim) što se vuče jako dugo, kako mogu tek tako da odluče da to izbace od sledeće verzije.
Nažalost ovaj deo oko "razlike u sintaksi sa C jezikom" nisam baš razumeo Sledeća dva primera rade potpuno istu stvar a jedina realna razlika koju ja vidim u njima su čisto vezane za sintaksičke razlike u jezicima.
Kôd:
#include <stdio.h>

int main(){
    int i;
    char a[25] = "Test string!";
    
    for(i = 0;i < strlen(a); i++){
        printf("%c", a[i]); 
    }	
    return 0;
}
Kôd:
<?php
$string = "Test string!";
for($i = 0; $i < strlen($string); $i++){
    echo $string[$i];   
}
?>
Da rezimiram. "Vitičasta sintaksa", posebno njen kompleksni oblik, je po meni bila i još uvek jeste potpuno nepotrebna stvar u PHPu i iskreno mogu da kažem da mi se odluka o tome da otpadne u "kastriranoj" 5.3 verziji čini kao potpuno pozitivna stvar. Ono gde ljudi očigledno greše kada kažu da je to potpuno neprihvatljivo zbog kompatibilnosti sa postojećim kodom je što PHP 5.3 smatraju logičnim nastavkom 5.x game što jednostavno nije tačno. PHP 5.3 je čista "izvidnica" novoj "šestici" i kao takvog ga treba i posmatrati a siguran sam da dok nova verzija ne ugleda svetlost dana da će bar još koja velika revizija "petice" da izađe.

Inače svako može da učestvuje u davanju predloga vezanih za nove verzije i revizije PHPa putem ogromnih mailing lista na matičnom sajtu a ono što danas nosi naziv "PHP 5.3" verovali ili ne je uglavnom plod diskusije i smerova na koje je sama zajednica najviše uticala

Poslednja izmena od holodoc : 18. 10. 2009. u 21:57. Razlog: Type loading error...
holodoc je offline   Odgovorite uz citat
Odgovori



Pravila pisanja
Možete ne započinjati nove teme
Možete ne slati odgovore
Možete ne slati priloge
Možete ne izmeniti svoje poruke
vB kôd je Uključen
Smajliji su Uključen
[IMG] kod je Uključen
HTML kôd je Isključen
Pogledajte forum

Slične teme
Tema Početna poruka teme Forum Odgovori Poslednja poruka
Ovo je trebao biti PHP6! Ilija Studen PHP 7 10. 08. 2008. 21:29


Vreme je GMT +2. Trenutno vreme je 11:18.


Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.
Mišljenja, saveti, izjave, ponude ili druge informacije ili sadržaji nastali na Sajtu su vlasništvo onoga ko ih je kreirao, a ne DevProTalk.com, tako da ne morate da se oslanjate na njih.
Autori poruka su jedini odgovorni za ovakve sadržaje. DevProTalk.com ne garantuje tačnost, kompletnost ili upotrebnu vrednost informacija, stavova, saveta ili datih izjava. Ne postoje uslovi pod kojima bi mi bili odgovorni za štetu ili gubitak koji je posledica bilo čijeg oslanjanja na nepouzdane informacije, ili bilo kakve informacije nastale kroz komunikaciju između registrovanih članova.
Web sajt može sadržavati linkove na druge web sajtove na Internetu ili neke druge sadržaje. Ne kontrolišemo niti podržavamo te druge web sajtove, niti smo pregledali bilo kakve sadržaje na takvim sajtovima. Mi nećemo biti odgovorni za legalnost, tačnost ili prikladnost bilo kog sadržaja, oglasa, proizvoda, usluga ili informacije lociranim na ili distribuiranih kroz druge web sajtove, niti za bilo kakvu štetu nastalu kao posledica takvih informacija. DevProTalk.com drži i čuva druga prava vlasništva na web sajtu. Web sajt sadrže materijale zaštićene copyright-om, zaštitne znakove i druge informacije o pravu vlasništva ili softver. Članovi mogu poslatu informacije zaštićene pravima vlasništva njihovih nosilaca i ona ostaju zaštićena bez obzira da li su oni koji prenose te informacije to naveli ili ne. Osim informacija koje su u javnom vlasništvu ili za koje dobijete dozvolu, nemate pravo da kopirate, modifikujete ili na bilo koji način menjate, objavljujete, prenosite, distribuirate, izvršavate, prikazujete ili prodajte bilo koju informaciju zaštićenu pravima vlasništva. Slanjem informacija ili sadržaja na bilo koji deo DevProTalk.com, Vi automatski dozvoljavate i predstavljate garanciju da imate pravo da dozvolite DevProTalk.com ili članovima DevProTalk.com bespovratnu, kontinualnu, neograničenu, globalnu dozvolu da koriste, kopiraju, izvršavaju, prikazuju i distribuiraju takve informacije i sadržaje i da iz takvih sadžaja koriste bilo koji deo u bilo koje svrhe, kao i pravo i dozvolu da koriste gore navedene sadržaje. Svi zaštitni znakovi (trademarks), logotipi, oznake usluga, firme ili imena proizvoda koji se pominju na ovom web sajtu su vlasništvo kojim raspolažu njihovi vlasnici.