DevProTalk

DevProTalk (http://www.devprotalk.com/index.php)
-   PHP (http://www.devprotalk.com/forumdisplay.php?f=9)
-   -   PHP 5.3 i PHP6 deprecetated features (http://www.devprotalk.com/showthread.php?t=7975)

bluesman 18. 10. 2009. 22:12

Mister, prvo da ti kažem da mi se čini da ti samo "preletiš" preko onoga što napišem, ne pročitaš šta sam napisao nego požuriš da daš odgovor. Zatim, kada pričamo o nekim primerima, računam da nisi počeo da pišeš php kod prekjuče već da imaš iskustva i od ranije. Ima na ovom forumu dosta ljudi koji pišu php bar 10 godina i imaju gomilu napisanog koda, a vi konstatno insistirate da su od "pre nekoliko meseci preporučili ovo-ono". To je ok samo za ljude koji su počeli pre nekoliko meseci, a drugima pravi problem sa starim sajtovima.

Kada napišem:

Citat:

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,..
To znači "kada sam pokušao prvi put pre 10-11 godina u php 3, očekivao sam da je sintaksa kao u C - ali NIJE, pa sam bio prinuđen da koristim {} umesto [].

Dakle, ranije je $string[4] generisao error, pa si morao da koristiš $string{4}. To je bilo totalno nelogično i tu nema dileme. Pa radiš tako godinama i onda od jednom izbace tu sintaksu, sada više ne može {} nego mora [] (kako je od početka i trebalo da bude). Pa kada su već napravili zabunu od početka, najmanje što mogu da urade je da (zbog ljudi koji su počeli da rade u php mnogo pre verzije 5.3) ostave da radi i jedno i drugo.

Nadam se da je sada jasnije zašto se bunim?

dinke 18. 10. 2009. 22:32

PHP 2??? Pretpostavljam da mislis na PHP/FI?

http://www.php.net/manual/en/history.php.php

Ajd da se ne foliramo ovde, sumnjam da je bilo ko sa ovih prostora radio ista ozbiljno pre verzije 3.0 (ja sam istu ukacio 2000-te ali sam ozbiljno programiranje u PHP-u poceo bas u trenucima kada se pojavio PHP4).

Inace ne mogu da kazem da sam isprobavao $foo[x] ali u manualu je jasno bilo navedeno da se koristi viticasta zagrada. Uostalom evo i dokaza iz Web Archive (PHP manual iz 2003 godine) :)

http://web.archive.org/web/200304011...pes.string.php

Citat:

String access by character

Characters within strings may be accessed by specifying the zero-based offset of the desired character after the string in curly braces.

Note: For backwards compatibility, you can still use array-braces for the same purpose. However, this syntax is deprecated as of PHP 4.

Example 7-3. Some string examples

PHP kôd:

<?php
// Get the first character of a string
$str 'This is a test.';
$first $str{0};

// Get the third character of a string
$third $str{2};

// Get the last character of a string.
$str 'This is still a test.';
$last $str{strlen($str)-1}; 
?>



bluesman 18. 10. 2009. 22:49

Hvala dinketu na trudu, ja bih samo iskoristio ovo što je pronašao da dodam u prilog neozbiljnosti. Obratite pažnju na ovu rečenicu:

Citat:

Note: For backwards compatibility, you can still use array-braces for the same purpose. However, this syntax is deprecated as of PHP 4.
Na stranu to što sam siguran da mi je generisao error kada sam probao sa "array braces", koliko je ovo neozbiljno? Znači u verziiji 4 su stavili da je "depricated" [] i preporučuju {}, da bi u verziji 5.3+ uradili upravo obrnuto.

To nije prvi put niti jedini slučaj da "lutaju", čak i njihove implementacije ostaju baš to "njihove" a ne "standardne", tako imamo pomepzne najave nekih "features", ali je implementacija delimična i nepotpuna, ili što je još gore "specifična" (njihova vezija).

holodoc 18. 10. 2009. 23:27

Citat:

Originalno napisao bluesman (Napišite 74285)
Mister, prvo da ti kažem da mi se čini da ti samo "preletiš" preko onoga što napišem, ne pročitaš šta sam napisao nego požuriš da daš odgovor. Zatim, kada pričamo o nekim primerima, računam da nisi počeo da pišeš php kod prekjuče već da imaš iskustva i od ranije. Ima na ovom forumu dosta ljudi koji pišu php bar 10 godina i imaju gomilu napisanog koda, a vi konstatno insistirate da su od "pre nekoliko meseci preporučili ovo-ono". To je ok samo za ljude koji su počeli pre nekoliko meseci, a drugima pravi problem sa starim sajtovima.

Ne znam zbog čega imaš takav utisak ali odgovorno tvrdim da ne "prelećem" preko postova, čak štaviše dosta vodim računa o detaljima koje sagovornici iznose pa je često to razlog nesporazuma :) Isto tako da dodam da niti sam sujetna osoba niti imam nameru da bilo koga ovde diskreditujem već jednostavno, bar ja mislim da je tako, pokušavam da vodim argumentovanu raspravu.
Citat:

Originalno napisao bluesman (Napišite 74285)
To znači "kada sam pokušao prvi put pre 10-11 godina u php 3, očekivao sam da je sintaksa kao u C - ali NIJE, pa sam bio prinuđen da koristim {} umesto [].

Dakle, ranije je $string[4] generisao error, pa si morao da koristiš $string{4}. To je bilo totalno nelogično i tu nema dileme. Pa radiš tako godinama i onda od jednom izbace tu sintaksu, sada više ne može {} nego mora [] (kako je od početka i trebalo da bude). Pa kada su već napravili zabunu od početka, najmanje što mogu da urade je da (zbog ljudi koji su počeli da rade u php mnogo pre verzije 5.3) ostave da radi i jedno i drugo.

Nadam se da je sada jasnije zašto se bunim?

Uz svo dužno poštovanje ali sa ovime nažalost ne mogu da se složim jer jednostavno nije tačno :) Doduše možda se u trenutku testiranja koda radilo o nekoj bagovitoj reviziji PHPa koja nije radila kako treba pa su se otuda javile greške. PHP 3 kao i PHP 2 u potpunosti podržavaju sintaksu "uglastih" zagrada koja omogućava da se indeksima stringa pristupi recimo ovako $string[index].

Pošto zaista ne volim da bilo šta tvrdim bez argumenata nisam bio lenj pa sam napravio mali test i na brzinu instalirao PHP 3.0.17 na jednom od računara i propustio kroz njega onu istu skriptu od malopre. Kao što se može videti na priloženoj slici PHP nije prijavio apsolutno nijednu jedinu grešku a skript se uspešno izvršio. Apsolutno sam siguran da bi test bio uspešan i sa starijim revizijama "trojke" pa čak i sa "dvojkom" ali nažalost to sada ne mogu da demonstriram jer je za instalaciju "dvojke" potrebno malo previše muke :)

Za one koji možda misle da sam na bilo koj inačin namestio rezultate mogu slobodno preuzeti bilo koju verziju "trojke" PHPa sa sledeće adrese jer nažalost matični sajt od pre par meseci više ne nudi download starih verzija PHPa :(

http://www.oldapps.com/old_version_php.php



Citat:

Originalno napisao dinke (Napišite 74288)
PHP 2??? Pretpostavljam da mislis na PHP/FI?

http://www.php.net/manual/en/history.php.php

Ajd da se ne foliramo ovde, sumnjam da je bilo ko sa ovih prostora radio ista ozbiljno pre verzije 3.0 (ja sam istu ukacio 2000-te ali sam ozbiljno programiranje u PHP-u poceo bas u trenucima kada se pojavio PHP4)

Pa da... Zvanični naziv je tada bio PHP/FI 2.0 ali skoro svi tu verziju jednostavno zovu "dvojka" :) Što se tiče mojih početaka iako nisam pristalica "čiji je duži" sindorma napomenuću da naravno da nikada nisam koristio "dvojku" za bilo šta smisleno osim za eksperimente. Moj prvi kontakt sa PHPom je bio sada već davne 1999. godine sa tadašnjom "ganc taze" verzijom 3.0.12. Doduše, PHP nije postao moj jedini programski jezik, ni tada a ni sada, tako da sam tek kasnije počeo da eksperimentišem sa raznim verzijama koje su bile dostupne u arhivi matičnog sajta koja nažalost više ne postoji :(

holodoc 19. 10. 2009. 00:44

Nažalost izmena poruke očigledno ne radi tako da moram da postujem u novom postu. Malopre sam pogrešio i link ka starijim buildovima PHPa u stvari još uvek postoji.

http://museum.php.net/

Doduše većinu stvari u njemu je potrebno prethodno buildovati ali to ne bi trebalo da bude neki problem.

dinke 19. 10. 2009. 00:50

^Dakle tvoj je veci al samo za par mm ;)

Da se vratimo na temu, ja nemam potrebu da proveravam da li radi jer kao sto sam u ranijim postovima i rekao nikada nisam ni isprobavao tu (tada) "deprecated" sintaksu, vec sam se drzao manuala. E sad ova nekonzistentnost u razvoju PHP-a bila bi vredna jednog Blog posta na temu, ali nedelja je vece tako da ... :)

bluesman 19. 10. 2009. 00:51

Mister, ne mislim da želiš da me "diskredituješ", da je tako ne bi ni diskutovali. Šta više, totalno mi je nevažno čak i da to pokušavaš. Ja samo kažem da ne čitaš pažljivo šta sam napisao, već 2 puta prepričavaš moj post i daješ mi nepotrebna dodatna objašnjenja odvlačiš priču na neku stranu koja nije ni sporna.

A što se tiče "tačno / netačno" ja ti opet kažem da prvi put kada sam probao $string[N] dobio sam error, koja je to verzija bila - nemam pojma, ali sam od tada koristio $string{N}. Bilo kako bilo, opet pričamo o detaljima a suština je daleko važnija: ne možeš (bez velike arogancije) tako lako da "obrišeš" nešto iz sistema koji postoji godinama i kojeg koriste "milijarde" programera ('ajmo cepidlake, rekao sam "ključnu reč" :))

Zbog ovakvih situacija je i izmišljen termin: backward compatibility. Odlično što unapređuješ sistem, ali hajde napravi da i ono postojeće ne postane neupotrebljivo. Šta su oni uradili? Dodali su specijalan E_NOTICE koji su nazvali E_DEPRICATED čisto da te obaveste da će u sledećoj verziji to da postane E_PARSE_ERROR i da ti neće raditi script. To nije backward compatibility.

holodoc 19. 10. 2009. 01:52

Citat:

Originalno napisao bluesman (Napišite 74295)
"milijarde" programera ('ajmo cepidlake, rekao sam "ključnu reč" :))

Bila bi ključna da ima i jedno PHP između "milijarde" i "programera" ;)
Citat:

Originalno napisao bluesman (Napišite 74295)
Zbog ovakvih situacija je i izmišljen termin: backward compatibility. Odlično što unapređuješ sistem, ali hajde napravi da i ono postojeće ne postane neupotrebljivo. Šta su oni uradili? Dodali su specijalan E_NOTICE koji su nazvali E_DEPRICATED čisto da te obaveste da će u sledećoj verziji to da postane E_PARSE_ERROR i da ti neće raditi script. To nije backward compatibility.

To nije problem specifičan samo za PHP. Čak štaviše PHP je i dobar po tom pitanju. Primera radi iskusniji Java programeri verovatno imaju da ispričaju pokoju interesantnu priču o tome kakva je bila tranzicija sa JDK1.4 na JDK1.5 i zašto nijedna ozbiljna kompanija koja se danas bavi razvojem softvera baziranog na Javi ni ne pomišlja da se u potpunosti prebaci na JDK1.6. Probajte njima da objasnite šta je "backward compatibility" ;)

Tako je i sa PHP-om. Stvari se jednostavno menjaju i one koje su da se ne lažemo odavno trn u oku se polako uklanjaju u novijim verzijama. Ključne prelomne tačke su poznate. Za PHP 4 to je bio PHP 4.3 a za "peticu" njen prvi "stabilan" build (ko se seća ovog perioda zna o čemu pričam) dok "šestica" bukvalno nastupa na scenu sa PHP verzijom 5.3. To što se pojavila nova verzija koja nije u potpunosti kompatibilna sa starijom nije ništa novo i ne treba da bude povod za paniku jer ponavljam još jednom svaki ozbiljan provajder imaće razumne tranziocione periode u toku kojih će u svojoj ponudi imati mogućnost izbora PHP verzije. Primera radi podrška za PHP 4 već odavno više ne postoji ali svi kvalitetniji hosting provajderi i dalje nude podršku za poslednju stabilnu verziju "četvroke" (PHP 4.4.8) U suprotnom već na samom početku nemamo šta da pričamo o ozbiljnosti klijenta i provajdera.

Na kraju krajeva ako nekome i za 20 godina bude bilo potrebno da koristi softver koji zahteva PHP 4 šta ga sprečava da iznajmi jedan dedicated server i da na njemu instalira šta hoće? Ne treba da pominjem da ako ta matora aplikacija toliko vredi da se više isplati pokrivati troškove infrastrukture nego napisati novu ili čak prepraviti staru aplikaciju da će sigurno moći da pokrije troškove jednog iznajmljenog linka i jednog (ili više) Unix/Linux baziranog servera ;)

degojs 19. 10. 2009. 04:14

Citat:

Originalno napisao holodoc
Primera radi iskusniji Java programeri verovatno imaju da ispričaju pokoju interesantnu priču o tome kakva je bila tranzicija sa JDK1.4 na JDK1.5 i zašto nijedna ozbiljna kompanija koja se danas bavi razvojem softvera baziranog na Javi ni ne pomišlja da se u potpunosti prebaci na JDK1.6. Probajte njima da objasnite šta je "backward compatibility"

Kod mene na poslu je, baš na moje insistiranje, jedna osrednje velika aplikacija (JSP front-end sa, dosta web servisa, te nekoliko proksija za .NET servise) prebačena sa Jave 1.4 na 1.5, nikakvih problema nije bilo. Istim prilikom je i TomCat prevučen na verziju 5, jedino što nismo smeli da diramo jeste MySQL. Ni pod razno.

Ne kažem da neko nije imao problema, ali mi zaista nismo imali ni najmanjih problema kada smo to radili. Za 1.6 ne znam.

cvele 19. 10. 2009. 09:14

eregi npr nece nestati vec ce biti premesten u pecl kao i jos dosta od navedenih fja.


Vreme je GMT +2. Trenutno vreme je 08:51.

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.