Archive for the ‘PHP’ Category

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

Friday, 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 програмисти

Wednesday, 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, изображения или "Майсторът се познава по инструментите"

Tuesday, 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 програмисти

Monday, 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 или защо е по-добре да участваме в надревара във въоръжаването, отколкото да откриваме топлата вода отново и отново.

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