Archive for the ‘PHP’ Category

PhpStorm -- новият AK-47 на web developer–ите

August 5th, 2013   

phpstoПокрай работата ми по системата за Отворена политическа партия за пореден път си скъсах нервите с Eclipse базирания PDT. Преди време го бях похвалил, но просто тогава наистина нямаше нищо по-добро. Основният проблем на PDT-то е, че става адски бавно, когато се работи по-големи проекти, които включват няколко външни (големи) библиотеки/framework-а. Какво значи бавно? Ами на ето такава машина  като натиснеш Ctrl-space и му трябва около секунда да ти изкара предложенията. Като превключваш между табовете има едно отвратително забавяне от около половин секунда, което е адски дразнещо. Отделно, че забива когато си реши…

Преди няколко седмици си бях свалил trial версията на PhpStorm и ми направи страхотно впечатление колко е бързо всичко в него: Ctrl-space -- мигновено; превключване на tab -- мигновено; скрол на много дълъг файл -- в реално време и т.н. Отделно това IDE е пълно с много други благини, но тъй като все още го разучавам засега няма да ги изброявам.

Само едно нещо искам да кажа на колегите PHP developer–и: Разликата между PDT и PhpStorm е като между 20 годишен изпърдян Голф 2 и примерно последен модел Honda Civic -- разликата в бързината и комфорта просто е зашеметяваща. В крайна сметка,  реших да се разделя с едни 200 лева и си го купих. Ползвам го вече десетина дни и ми се струва, че това са най-добре похарчените ми пари за последните няколко години. Препоръчвам го на всеки.

Lines Of Code (aka Лайна От Код) :-)

May 19th, 2012   

Заради предстоящата презентация пред инвеститори днес седнах да генерирам малко статистика за мегаломанския проект, по който работя последните 12+ месеца. При все уговорката, че нещата са писани с доста бързане, все пак, кода е в изтествано и добро състояние (поне за PHP частта гарантирам, че е по-добра от 90% от проектите, които съм виждал (както open source, така и proprietary)). Java (android) приложенията, не са толкова добре направени -- имам само година и половина опит в тази област (сравнено с PHP: 8+ год), а и доста бързах(м) с нещата и тук-там минавам напряко… Интересното е, че и за двата програмни езика производителността ми като LOC на ден е почти една и съща: ~250 непразни, некоментирани реда.

За HTML, CSS и javascript умишлено не се опитвах да правя статистика, защото там термина LOC е много (по-)непоказателен.

Фрапиращото в случая е, че когато съм си мерил производителността при работа в средно голям екип (5-6 човека), никога не съм преминавал границата от (more…)

Новите неща в PHP 5.4 -- I-ва част http://goo.gl/kJ9Ph

March 4th, 2012   

В другият ми блог, който е само за прорамистки неща съм публикувал:

Новите неща в PHP 5.4 -- I-ва част

 

PHP: Алгоритъм за проверка на Единен идентификационен код (ЕИК) на фирма – БУЛСТАТ

December 4th, 2011   

Покрай суперсекретния ми И публичен мега--мегаломански проект ми трябваше да валидирам ЕИК номера на фирми. Питах чичо Гугъл да ми каже къде мога да намеря PHP реализация, но за моя голяма изненада се оказа, че точно за PHP няма (или поне аз не успях да намеря, но не съм се ровил след 1-ва страница). В най-добрите традиции на синдрома NIH написах един клас за проверка за валидност. Надявам се да е полезен на някой и да му спести време.

Важна забележка: тестван е само с 9-цифрови ЕИК, защото не можах да намеря примери за 13-цифрени, така че ако ще го използвате с такива е необходимо да проверите дали работи ОК с тях.

 

Senior PHP Developer's Skillset

August 2nd, 2011   

Преди около 2 години бях направил долната схема, която представя един от възможните комплекти необходими познания, за да може един PHP developer  да бъде класифициран като "Senior". Включва само базови неща, един пълен осъвременен набор би включвал и няколко различни framework-а / системи като например Zend framework, Cake, Simphony, WordPress и т.н.

Вчера случайно попанах на нея и ще използвам случая специално да поздравя PHP екипа на TRS: Пичове, спрете за  5 секунди да се мислите за господ, прегледайте схемата и вземете да учите и отмятате едно по едно. Със сегашното си поведение се излагате и пред колегите си, и пред клиентите си…

Отделно, надявам се схемата да е полезна на начинаещите PHP developer-и, които тепърва навлизат и искат след време да станат "Senior".

Размерът на "балоните" съответства грубо на размера на знанията и колко време отнема да се научат на "достатъчно ниво". Примерно ако PHP балона е 20 пъти по-голям от CSS балона, това означава, че ще е необходимо 20 пъти повече време да се отдели на PHP.

(click за пълен размер)

Новият Eclipse Helios + PDT -- много по-добър за PHP IDE

October 20th, 2010   

eclipse helios logoКакто бях споменал в тази публикация, безплатната алтернатива на Zend Studio за IDE за PHP е Eclipse + PDT. За съжаление предишните версии (Ганимед и Галилео) бяха прекалено бавни (почти неизползваеми, когато се ползва голям PHP фреймуорк + голям сайт). За щастие вече имаме Eclipse Helios, който е значително по-бърз, когато става дума за редактиране PHP код (най-лесно е да забележите това в метод на обект на голям клас с много "бащи" -- напишете $this->, shift-space и предложенията излизат веднага (при първо натискане е бавно, но всички следващи вече работят за част от секундата) . При Ганимед и Галилео това отнемаше при мен понякога над секунда-две(! (фуцк)).

Можете да го свалите оттук. Юруш (you rush) на маслините. :-)

Загуба на обратна съвместимост в PHP 5.3

March 19th, 2010   

Тия дни експериментирам с PHP в областта на тестване на бързодействието и profiling. Покрай това инсталирах xampp на win машината, който идваше с PHP 5.3.1 (на линукса съм с 5.2.х). В един момента забелязах, че някой файлове гърмят, защото били използвани deprecated функции (примерно ereg()). Отне ми известно време да разбера, защо, аджеба, става така и ето резултата:

По някое време са въвели error_reporting флага E_DEPRECATED (вероятно в 5.3), който сега участва в E_STRICT. При мен (в tangra framework) има два режима на работа -- нормален E_ALL | E_STRICT и php4 режим (използва се, когато се включват php4 или просто калпаво написани външни библиотеки), който е само E_ALL. По подразбиране в 5.3.1 в php.ini (поне в xampp пакета) error_reporting е E_ALL & ~E_NOTICE & ~E_DEPRECATED. Получава се така, че с моята настройка E_ALL | E_STRICT аз де факто активирам E_DEPRECATED и оттам ми идват проблемите.

Това, което ме дразни е, че PHP пичовете са включили E_DEPRECATED в E_STRICT и изненадват неприятно всички, които го използват. Доста приложения ще поизгърмят и ще съсипят съня на не един и двама php developer-и. В интерес на истината, проблемът се оправя относително лесно и бързно, ама може ли така безхаберно да чупят обратната съвместимост. Да бяха направили E_DEPRECATED независим флаг, а не да го включват в E_STRICT… :-(

Допълнителни инструменти за PHP програмисти

October 7th, 2009   

php_nekoiВ предишния постинг говорих за основните инструменти като редактори за PHP код, HTML и изображения. Освен тях всеки PHP програмист използва и други tool-чета с които си улеснява живота и тук ще стане дума за тях. Ще стане дума като за stand-alone продукти, така и за плъгини. Ориентацията основно е към Windows, но ще се радвам ако постнете в коментарите алтернативи и за Linux.

1. SSH клиент

SSH клиента е необходим, когато искате да се логнете в Linux/*BSD сървър. По принцип на много PHP developer-и рядко им се налага да го правят, но ако си поддържате ваш линукс сървър вкъщи или трябва от време на време да свършите нещо на служебния, за да не губите времето на сисадмина ще ви е необходим.

Аз съм се спрял на PuTTY. Има всичко, което ми е необходимо (т.е. достатъчно настройки за разни дреболии). Единствения недостатък, който съм открил е, че не върви кажеш на някоя колежка: "Отвори си путито, за да ми влезеш в сървъра" ;-).

2. Администрация на БД

(more…)

Избор на редактори / IDE-та за PHP, HTML, изображения или "Майсторът се познава по инструментите"

October 6th, 2009   

php_nekoiС годините работата на PHP програмистите започна да става все по-сложна и обемиста. Ако едно време обичайния проект беше да се направи проста регистрационна форма и няколко динамични странички и всичко това подплатено с 4-5 DB таблици, то днес нерядко се сблъскваме с проекти, които имат 30-40 форми, 50-60 динамични страници, 30-40 DB таблици, cron job-ове, ajax-и, CVS-и, XML-и и т.н. Накратко казано: нещата загрубяха и вече не можем да си позволим да губим време за глупости. Един от проблемите, който забелязвам доста често е, че много developer-и използват "кекави" текстови редактори за работа с PHP код и по този начин си "спестяват" възможността да си ускорят работата, като едновременно с това я направят по-лесна и като страничен резултат -- по-качествена.

Има един принцип в удобството за използване и той гласи "На човек най-удобно му е това с което е свикнал". Макар, че е донякъде казано на майтап, всъщност, до голяма степен това изречение описва защо много хора са изключително негативно настроени към смяна на редактора, който използват. Когато си "копал" примерно  UltraEdit в продължение на 2 години после и най-доброто IDE като Zend Studio Client ти се струва тегаво и досадно и трябва да мине поне месец, за да свикнеш с него. Една от най-добрите мотивации, които може да получи човек за смяна на досега използвания продукт е да липсват в него полезни / удобни функции, които са налични в друг. По-долу ще бъдат изброени различни продукти заедно с кратко описание на "изкушенията", които могат да ви накарат да си "смените вярата".

(more…)

N съвета за PHP програмисти

October 5th, 2009   

php_nekoiПреди около месец за пореден път се учудих как е възможно PHP програмисти, които имат над 3-4 години опит все още да си ограничават собствената продуктивност, поради неследването на няколко относително прости правила в работата си. Това ми даде необходимата мотивация да напиша серия от постинги, които съдържат съвети, които е възможно да улеснят живота на немалко колеги (предварително се извинявам на тези, на които ще се сторят прекалено елементарни -- просто тези постинги не са предназначен за вас).

Поредицата ще включва статии относно:

  • избор на редактори / IDE-та за PHP, HTML, изображения или "Майсторът се познава по инструментите"
  • използване на Template engine (Smarty). Разделение между логика и презентация или как да не си стъпваме по пръстите с дизайнерите;
  • използване на Database abstraction layer (ADODB) или как да не зависим от конретна RDBMS;
  • PHP5 и какво е наистина новото и полезното в него спрямо PHP4 или краят на "едно си баба знае -- едно си баба бае";
  • система за контрол на версиите (svn) или как да не си стъпваме по пръстите с колегите програмисти;
  • основни линукс познания или как да не изглеждаме като ламери;
  • проектиране на DB за web приложение или как да не си скубем косите, когато дойдат късни change requests
  • колекция от дребни трикове за улесняване на живота;
  • PHP frameworks или защо е по-добре да участваме в надревара във въоръжаването, отколкото да откриваме топлата вода отново и отново.

Ще гледам поне веднъж седмично да написвам по един постинг от изброените горе, а когато ги привърша -- теми за нови -- бол.