ot Andrey(5-12-2002)
S izvestno zabaviane otnovo vi predstaviam novinite pokrai PHP.
- Zapochvam s tova, che v ZE2 be dobavena nova klyuchova duma abstract. CHrez neia mogat da se deklarirat abstraktni metodi. Te niamat tialo i pri opit za tiahno izvikvane se generira greshka.
- V PECL v PEAR (analog na CPAN) se namirat razlichni eksperimentalni i ne chak tolkova eksperimentalni moduli. Edin ot tezi moduli e modul-obvivka za ImageMagick paketa. Niakoi ot vas mozhe bi znaiat, che imagick ima eksportnato API za Perl. Prez izminaliia period se poiavi vtori modul i toi shte zameni dosega sushtestuvashtiia, kato ne se zapazva obratna suvmestimost s dosega napisaniia kod izpolzvasht bibliotekata. Za poveche informatsiia otnosno modula :
tuk.
- Za zanimavashtite se s generirane na grafichni izobrazheniia s pomoshtta na PHP mozhe da e ot interes sledniiat modul: http://mmcc.cx/php_imlib/. Za suzhalenie, ot izvestno vreme nasam modulut ne se razrabotva.
- Ot mesetsi forumut za razrabotchitsite na PHP ne e "vizhdal" takava razgoreshtena diskusiia kato tazi za lokalizatsiiata na suobshteniiata na PHP. Diskusiiata zapochna ot drug problem: za niakoi razrabotchitsi pokazvaneto na E_PARSE greshki e nezadovolitelno i te pozhelaha da ima vuzmozhnost da se prehvurlia potrebitelia na druga stranitsa ili Apache da vrushta greshka 500 kogato se generira E_PARSE. Tova predlozhenie be othvurleno s motiva, che to bi suzdalo oburkvane za povecheto ot razrabotchitsite, oshte poveche, che e vuzmozhna proverkata na skriptove za E_PARSE bez dori da budat kacheni za izpulnenie. Tova mozhe da se izvurshi po sledniia nachin:
php -l file_name.php
Ako imate sintaktichna greshka v skripta shte poluchite informatsiia kude e.
No da se vurna na diskusiiata za lokaliziranite suobshteniia. Povecheto osnovni PHP razrabotchitsi se obiaviha sreshtu tova. Biaha dadeni idei suobshteniiata da budat prehvurleni v XML ili CDB failove za po-lesna poddruzhka. Osnovnite argumenti protiv tazi promiana sa:
- Uvelichena poddruzhka pri neuvelicheni chovekoresursi.
- Po-malka veroiatnost za pomosht za programisti, koito tursiat pomosht i davat suobshteniia na ezik razlichen ot angliiski. Po tazi prichina ako razrabotchikut si niama predstava kakvo e "Sintaktichna greshka", mnogo po-maluk krug hora mogat da mu pomognat.
Pokrai lokalizatsiiata na suobshteniiata be iziaveno zhelanieto i vsiako suobshtenie da ima svoi sobstven unikalen identifikator, koito da dava vuzmozhnost za po-burza i kachestvena pomosht - kato naprimer burza spravka v help-a ili chrez Google. V kraina smetka be resheno suobshteniiata da ostanat na angliiski, a s izvestna doza veroiatnost da budat suzdadeni unikalni identifikatori na suobshteniiata.
- V skoro vreme v PECL shte se poiavi modul-obvivka za libradius, a modul za rabota sus Samba mozhete da otkriete tuk. Prez perioda Hartmut Holzgraefe kaza, che ima gotov modul obvivasht libuuid. Tazi biblioteka vurvi s ext2fs tools.
- Biaha napraveni niakolko popravki v xmlrpc modula. Mozhe bi veche e vuzmozhna negovata kompilatsiia pod Windows.
- Dokato v ZE1 e vuzmozhno da deklarirate funktsii vuv funktsii (no triabva da deklarirate samo vednuzh - prilaga se zashtita, chrez define()) i da include()-vate kod v lokalnoto prostranstvo na funktsiiata, v ZE2 tova niama da e vuzmozhno. Edno ot vuzmozhnite prilozheniia na gorepokazaniia metod e za simulirane na plugin-i. Vse pak programistite ne triabva da se chuvstvat razocharovani, zashtoto dinamichnoto zarezhdane v ZE2 shte stava chrez agregatsiia. Za tezi, koito ne znaiat kakvo e agregatsiia, preporuchvam da pregledat knigata na Kruglinski za "Visual C++ 6.0".
- Oshte prez dalechnata 1997-ma e bil povdignat vuprosa s preobrazuvaneto na chisla ne v desetichna broina sistema, koito se namirat v nizove:
php
print (int) "0xA" + 0; // prints 0
print (int) ("0xA" + 0); // prints 10
?>
V purviia sluchai "0hA", koeto e shestnadesetichno 10, se preobrazuva do 0 vmesto do 10. Vuv vtoriia sluchai se preobrazuva do 10 i se dobavia kum 0 za da se poluchi 10. Vuzmozhno e v blizko budeshte da bude namereno reshenie na tozi "problem".
- S klyuchovata duma public veche e vuzmozhno da se deklarirat i chlen-promenlivi na klasove (ZE2) - ekvivalent na var ot ZE1, kato se zapazva obratnata sumestimost. Za momenta tova e realizirano chrez psevdonim, poradi koeto e vuzmozhno, no ne i pravilno, da deklarirate metod po sledniiat nachin:
var function a() {}
Vse pak tova niama da bude vuzmozhno v krainata versiia na ZE2. Iskam sushto da dobavia, che ot izvestno vreme nasam ima poddruzhka na private i protected promenlivi. Za metodite neshtata ne sa 100% iasni vse oshte.
- Izlezna RC2 na 4.3.0. Nadiavam se v nai-skoro vreme da izleze krainata versiia. Pisna mi da chakam :)) Za tezi, koito iskat da probvat RC2: http://qa.php.net.
- V predishnite kolonki obiavih nova versiia na APD. Izleze i novata stabilna versiia sled 0.2 - tova e versiia 0.4p1. Vizhte tuk.
- Za zavurshek iskam da predstavia edna nova funktsiia, koiato se poiaviava vuv 4.3.0. Tova e debug_backtrace(). Purvonachalno tova beshe vuzmozhnost samo na ZE1, no sled razgoreshteni diskusii be dobavena i v ZE1 ot Thies Arntzen (edin ot razrabotitsite na modulite za Oracle). Tazi funktsiia vi vrushta mnogomeren masiv sus steka na izvikvaniiata. Ako oshte ne vi e iasno - ako ste polzvali Java sigurno ste vizhdali kakvo se poluchava pri izklyucheniia - izpisva se steka s izvikvaniiata. Po tozi nachin mozhe da debugvate po-lesno razlichni prilozheniia. Edin primer: ako ste otdelili koda za rabota s baza danni v klas to e mnogo lesno v sluchai na nepravilna zaiavka da se pokazhe kude tochno e generirana tia (kude e izvikan metoda za izpulnenie na zaiavka) i tochno kakvi parametri sa podadeni. Dosega imashe 2 vuzmozhnosti - pri rabota s Mysql da pravite slednoto:
($_err = mysql_error())
&& log_error_printf(
"Ooops : [%s][%d][%s][%s]\n",
__FILE__, __LINE__ - 1 , $sql, $_err);
ili
$this->db->query($sql, __FILE__, __LINE__);
Purvoto opredeleno zagroziava koda i go uvelichava. Vtoroto e udobno, no vse pak iziskva poveche pisane i da se pishe vseki put na zaiavka.
Tui kato dori var_dump() na masiva vurnat ot debug_backtrace() ne e mnogo chetim, naskoro be dobavena funktsiiata debug_print_backtrace(), s koiato veche e po-lesno da se pregleda informatsiiata.
P.S.
Avtora blagodari na g-n Peio Popov za predlozhenieto za novo ime na kolonkata.
<< SCMxx - Linux softuer za Siemens telefoni | Problemi s ext3 i iadro 2.4.20 >>
|