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:
    1. Uvelichena poddruzhka pri neuvelicheni chovekoresursi.
    2. 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:
    
    
    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 >>