Споделям един pdf документ, който ми се струва интересен
http://files.zeroturnaround.com/developer-productivity-report/zeroturnaround-developer-productivity-report-2012.pdf има включени няколко интервюта като основно е наблегнато на Java но предполагам че и с другите езици положението е почти същото.
За една от задачите си се наложи да "пакетирам" javascript обект и да го изпратя чрез $.post. За целта превръщаме js обекта в json масив чрез https://raw.github.com/douglascrockford/JSON-js/master/json2.js
json = JSON.stringify(js_object);
$.post('http://demo.bg/test.php',{'params':json},function(){});
а в php
$r = $_POST['params']; $r = json_decode($r);
Въпреки че основната ми работа не включва писането на CSS от няколко дни си експериментирам доста успешо с LESS CSS и мога да кажа че ще бъде чудесен заместител на използваното от мен до момента
xCSS разработен от Anton Pawlik.
Разликата между двата проекта е че less css поддържа css3 properties докато xCSS все още не (не че не е невъзможно да се добавят :) )
Идеята на подобен род framework-s е ясна: спестяване на време + някое друго парче код по-малко за писане. Като включим и php променливи във css-кода който се генерира полученият резултат е повече от приятен.
За "компилиране" на LESS файловете използвам PHP компилатора http://leafo.net/lessphp/ ( тъй като в нашите географски ширини да се очаква подръжка на технология като Node.js би била само една хубава химера).
ps: да се похваля написах няколко функции от паметника "Альоша" :) използвайки мобилния и-нет осигурен от фирмата ми, чувството е интересно и определено е приятно място за писане на код.
В един от сайтове по които работя имат навика да качват 2-3 MB снимки които после чрез редактора ги "смаляват" което не е добра идея. Та за да предотвратя тегленето на излишна информация използвам следното скриптче:
function html_fix($html_string){
$work_url = 'http://images.yuksbg.net/';
$work_dir = '/home/yuks/images/';
$convert_path = 'convert';
preg_match_all('/
]*>/im',$html_string,$matches);
if(!count($matches)) { return $html_string; }
foreach($matches[0] as $match){
$width=0;
$height=0;
if(preg_match('/width="[0-9]*"/i',$match) && preg_match('/height="[0-9]*"/i',$match)){
$width=preg_replace('/.*width="([0-9]*)".*/i','\1',$match);
$height=preg_replace('/.*height="([0-9]*)".*/i','\1',$match);
}
else if(preg_match('/style="[^"]*width: *[0-9]*px/i',$match) && preg_match('/style="[^"]*height: *[0-9]*px/i',$match)){
$width=preg_replace('/.*style="[^"]*width: *([0-9]*)px.*/i','\1',$match);
$height=preg_replace('/.*style="[^"]*height: *([0-9]*)px.*/i','\1',$match);
}
if(!$width || !$height)continue;
$imgsrc=preg_replace('/.*src="([^"]*)".*/i','\1',$match);
if(!preg_match('/^http/i',$imgsrc))$imgsrc=preg_replace('#^/*#','http://'.$_SERVER['HTTP_HOST'].'/',$imgsrc);
list($x,$y)=getimagesize($imgsrc);
if(!$x || !$y || ($x==$width && $y==$height)) { continue; };
$dir=md5($imgsrc);
$newURL= $work_url.$dir.'/'.$width.'x'.$height.'.jpg';
$newImgHTML=preg_replace('/(.*src=")[^"]*(".*)/i',"$1$newURL$2",$match);
$html_string=str_replace($match,$newImgHTML,$html_string);
$imgdir= $work_dir.$dir;
@mkdir($imgdir);
$imgfile=$imgdir.'/'.$width.'x'.$height.'.jpg';
if(file_exists($imgfile)) { continue; };
$str= $convert_path.' "'.addslashes($imgsrc).'" -geometry '.$width.'x'.$height.' "'.$imgfile.'"';
exec($str);
}
return $html_string;
}
Zend Framework е една чудесна рамка (дали това е правилната дума на бълграски за framework ?!) за бързо разработване на сложни (и не чак толкова сложни) системи базирани на PHP. Един от най-лесните начини да се подкара на споделен хостинг е да се копира всичко на framework-a в public_html/www директорията и да се добави следния .htaccess
RewriteEngine On
RewriteRule ^(media|template) - [L]
RewriteRule ^\.htaccess$ - [F]
RewriteCond %{REQUEST_URI} =""
RewriteRule ^.*$ /public/index.php [NC,L]
RewriteCond %{REQUEST_URI} !^/public/.*$
RewriteRule ^(.*)$ /public/$1
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^.*$ - [NC,L]
RewriteRule ^public/.*$ /public/index.php [NC,L]
като по този начин ще си спестим описването на virtual хостове в apache за public директорията :)
Освен ако не е посочено друго, всички текстове и снимки в този блог са защитени от лицензното споразумение на Creative Commons Attribution-Share Alike 2.5 Bulgaria