rATRIJS Posted February 2, 2010 Report Share Posted February 2, 2010 Sīkāk par šo 'projektu' var palasīt šeit: http://developers.facebook.com/news.php?blog=1&story=358 Īsumā - PHP koda pārtūlkošana un optimizēšana uz C++ kodu, lai tas būtu mazāk 'rijīgs'. Kādas ir Jūsu domas par to? Ir tas kaut kā vērts vai nav? Manā darba vietā, mēs šobrīd izmantojam XCache un domājam notestēt šo HipHop'u, lai redzētu uzlabojumus/neuzlabojumus. Quote Link to comment Share on other sites More sharing options...
codez Posted February 3, 2010 Report Share Posted February 3, 2010 HipHop for PHP: Move Fast Īsumā: Facebook katru mēnesi apstrādā 400 miljardi PHP lapu pieprasījumu, tāpēc ātrdarbība ir viens no viņu attīstības stūrakmeņiem. Tā kā PHP ir ātri apgūstama un tai ir pieejams liels jaunu un talantīgu programmētāju skaits, tad Facebook tā vietā, lai pilnībā pārrakstītu savu kodu citā valdoā, izvēlējās interesantu ceļu - izveidot automātisku PHP koda pārveidotāju par C++ kodu. Quote Link to comment Share on other sites More sharing options...
Aleksejs Posted February 12, 2010 Report Share Posted February 12, 2010 Up! Kā izskatās, tad šajā sadaļā jānospiež approve, pirms parādās visiem redzams topiks. Quote Link to comment Share on other sites More sharing options...
rATRIJS Posted February 12, 2010 Author Report Share Posted February 12, 2010 Ehh - es jau domaaju, ka kaut ko ne taa uzrakstiiju, ka neapstiprina :) Lai nu kaa - HipHop, droshi vien, ljoti labi iet kopaa ar XHP, kas arii ir jauns Facebook izgudrojums :) Links: Buutiibaa tas atljauj pa taisno PHP kodaa rakstiit XML un xHTML (kas buutiibaa ir tas pats). Taatad shis: <?php if(true) { ?> <p>Kaut kas patiess</p> <?php } else { ?> <p>Kaut kas nepatiess</p> <?php } ?> kljuutu par sho: <?php if(true) { echo <p>Kaut kas patiess</p>; } else { echo <p>Kaut kas nepatiess</p>; } ?> No vienas puses interesanti, un dazhos gadiijumos noderiigi, tachu es parasti template'oju visu taa kaa man tas noderiigi nebuutu. Kaa arii uz plika PHP tas buutu ljoti leeni :) Quote Link to comment Share on other sites More sharing options...
2easy Posted February 12, 2010 Report Share Posted February 12, 2010 (edited) ok, tā ideja no php ģenerēt c++ un uz servera darbināt machine code, protams, ir apsveicama. ja kompilēts c++ kods izpildās 10x ātrāk nekā interpretējams php kods, tad iespējams ir izdevīgāk uztaisīt tādu translatora softu nekā nopirkt 10x jaudīgākus dzelžus bet par to XHP man gan smiekli nāk. taisīt kko tādu tikai tāpēc, lai stringi nebūtu jāliek apostrofos un vēl htmlspecialchars() automātiski izsauktos. nju nez. man liekas, ka cilvēki bik pārcenšas. php jau tā ir tik vienkārša valoda, cik vien vienārša var būt, un salikt multi line pēdiņas un izsaukt htmlspecialchars() jau nu gan var turklāt to viņu bloated, gļukaino un nevalīdo piemēru <?php if ($_POST['name']) { ?> <span>Hello, <?=$_POST['name']?>.</span> <?php } else { ?> <form method="post"> What is your name?<br> <input type="text" name="name"> <input type="submit"> </form> <?php } es rakstītu šādi: if (isset($_POST['name']) && $_POST['name']) echo '<span>Hello, ' . htmlspecialchars($_POST['name']) . '.</span>'; else echo '<form action="" method="post"> What is your name?<br /> <input type="text" name="name" /> <input type="submit" /> </form>'; īsi, kompakti un tikpat vienkārši ;) EDIT: vsp man būtu pat vēl mazāk jāraksta, jo es ērtības labad izmantoju pāris standarta shortcut funkcijas: function arg($k) {return isset($_POST[$k]) ? $_POST[$k] : (isset($_GET[$k]) ? $_GET[$k] : null);} // web applikācijas arguments - izdod attiecīgā post/get parametra vērtību function hx($s) {return htmlspecialchars($s);} // html encode kā rezultātā būtu tik vien koda: if (arg('name')) echo '<span>Hello, ' . hx(arg('name')) . '.</span>'; else echo '<form action="" method="post"> What is your name?<br /> <input type="text" name="name" /> <input type="submit" /> </form>'; Edited February 12, 2010 by 2easy Quote Link to comment Share on other sites More sharing options...
Kaklz Posted February 12, 2010 Report Share Posted February 12, 2010 2easy, XHP lielākā problēma ir ātrdarbība ( http://toys.lerdorf.com/archives/54-A-quick-look-at-XHP.html ) , pats koncepts ir pat salīdzinoši ļoti labs. Ja tu uzmanīgāk palasīsi XHP dokumentāciju, tad redzēsi, ka viņi jau PHP parsēšanas laikā nodrošinās pret iespēju, ka tu varētu uzrakstīt nevalīdu HTML: One advantage that XHP has over string construction is that it enforces correct markup structure at compile time. That is, the expression $foo = <h1>Header</h2>; is not a valid expression, because you can not close an h1 tag with a /h2. When building large chunks of markup it can be difficult to be totally correct. With XHP the compiler now checks your work and will refuse to run until the markup is correct. Iespējams, ka XHP ātrdarbības problēmas var mēreni izskaust tieši izmantojot HipHop ( ne velti abi risinājumi ir parādījušies plašākai publikai praktiski vienlaicīgi ) + tur ir vēl pāris interesantas iespējas, kuras varētu būt dikti ērtas pat tādam lieko simbolu necietējam, kā tev: $countInDaTable = mysql_fetch_row(mysql_query('select count(*) from table'))[0]; PHP currently only allows you to use the [] operator on variables. This is just a stupid restriction so I figured while I was mucking around with PHP’s syntax I might as well fix this. In XHP when you use the [] operator on something that would be a syntax error in vanilla PHP it will rewrite it into a call to __xhp_idx(). For instance, foo()['bar'] will become __xhp_idx(foo(), 'bar'). __xhp_idx is a C function defined in the PHP extension which behaves identically to the [] operator. Quote Link to comment Share on other sites More sharing options...
2easy Posted February 12, 2010 Report Share Posted February 12, 2010 (edited) + tur ir vēl pāris interesantas iespējas, kuras varētu būt dikti ērtas pat tādam lieko simbolu necietējam, kā tev: $countInDaTable = mysql_fetch_row(mysql_query('select count(*) from table'))[0]; lol, priekš tam ir mysql_result() ftw $countInDaTable = mysql_result(mysql_query('select count(*) from table'), 0); RTFM okok, piekrītu, ka ja visur varētu pielikt [], tā protams būtu fīča js jau no paša sākuma tā var, un tas ir ērti/ātri un tātad pareizi ;) Edited February 12, 2010 by 2easy Quote Link to comment Share on other sites More sharing options...
rATRIJS Posted February 12, 2010 Author Report Share Posted February 12, 2010 (edited) Tas no Kaklz puses bija tikai piemeers. Tik pat labi tas vareetu buut shaads: $s = 'mans_kruts_strings'; echo 'Mans strings ir ' . explode('_', $s)[1]; Jaa protams, vienmeer visu var rakstiit savaadaak: $s = 'mans_kruts_strings'; echo 'Mans strings ir ' . array_pop('_', $s, -1); bet, IMO, tas ir labs uzlabojums, kuram atrastu pielietojumu. Protams, gan es nelietoshu XHP tikai taadeelj :D P.S. btw echo'ot HTML kaa stringu vajadzeetu aizliegt :) echo '<div class="omg">' . '<p>omg</p>' . '</div>'; //DELIIIIIIIT!!!!! Edited February 12, 2010 by rATRIJS Quote Link to comment Share on other sites More sharing options...
2easy Posted February 12, 2010 Report Share Posted February 12, 2010 (edited) Tas no Kaklz puses bija tikai piemeers. es tač to saprotu ;) bet, IMO, tas ir labs uzlabojums, kuram atrastu pielietojumu jau pateicu, ka tam 100% piekrītu btw echo'ot HTML kaa stringu vajadzeetu aizliegt :) lol, why? un kāpēc tu katru rindu liec savā stringā??? kad var vnkārši echo '<div class="omg"> <p>omg</p> </div>'; btw, prikols tāds, ka js savukārt tā nevar :P tur gan rindas beigās vajadzētu arī stringu finišēt un likt + lai nākamajā rindā sāktu no jauna. šajā ziņā atkal php ftw :D Edited February 12, 2010 by 2easy Quote Link to comment Share on other sites More sharing options...
motion Posted February 12, 2010 Report Share Posted February 12, 2010 Kā vienmēr oftopiks. Dīvaini ir tas, ka šādu tēmu šajā sadaļā izveidoju labu laiku atpakaļ, bet tā arī neparādījās. :< Quote Link to comment Share on other sites More sharing options...
2easy Posted February 12, 2010 Report Share Posted February 12, 2010 izlasi augšā "Noteikumus" Quote Link to comment Share on other sites More sharing options...
rATRIJS Posted February 12, 2010 Author Report Share Posted February 12, 2010 2 2easy: pirms edita tavs teksts bija nedaudz savadaks :P Kaadeelj neizvadiit kaa stringu: gruutaaks pieraksts. Sintakses hailaiteri, parasti, nestraadaa uz taadiem. Indent'ings buus nedaudz gljukains (gan rakstot, gan skatoties source). Un vispaar templates ir ruljit!!! :P Quote Link to comment Share on other sites More sharing options...
2easy Posted February 12, 2010 Report Share Posted February 12, 2010 2 2easy: pirms edita tavs teksts bija nedaudz savadaks :P true ^^ bet tu to varēji pamanīt iekš preview, ja jau postoji pēc mana edita Kaadeelj neizvadiit kaa stringu: gruutaaks pieraksts. Sintakses hailaiteri, parasti, nestraadaa uz taadiem. Indent'ings buus nedaudz gljukains (gan rakstot, gan skatoties source). Un vispaar templates ir ruljit!!! :P "gruutaaks pieraksts" - kā kuram :D "Sintakses hailaiteri" - personally i dont need it for html (its 2 simple 4 me :D). kr4 man pilnīgi pietiek ar php sintakses hailaitošanu "Indent'ings buus nedaudz gljukains" - ka tik ne tā. indent taču var likt! anyway, who cares par source, ko ģenerē php? kamēr nav jārāda kkādā html sources skaistumkonkursā, tikmēr būs labi arī tāpat :P "Un vispaar templates ir ruljit!!! :P" - njaa kārtējo reizi pierādās tas, ka katram savi darba instrumenti vairāk patīk ;) Quote Link to comment Share on other sites More sharing options...
marrtins Posted February 13, 2010 Report Share Posted February 13, 2010 Pirms pāris dienām uzgāju šim video par HipHop. Vispār liekas ļoti interesants. Quote Link to comment Share on other sites More sharing options...
Maaren Posted September 5, 2010 Report Share Posted September 5, 2010 Varbūt kāds būs izmēģinājis? Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.