петък, юни 25, 2010

PHP IDE-та, редактори, среди или който както им вика

IDE или Integrated development environment кое е по-добро според вас ? (ще го уточним в движение)

Пробвал съм наистина доста IDE-та, под доста операционни системи и обикновено мнението ми за тях се движат от "Обикам го" до "Боклук".
Да уточним нещо PSPad, Notepad++, Gedit и другите подобни не са среди за разработка, ако ги смятате за такива ползвайте поне Nano, има същата функционалност при това с по-хубав syntax highlightning. PSPad има едно единствено предимство пред останалите в тази категория - вградения ftp клиент, но това пък е свързано с една порочна практика да се работи директно на сървъра. Notepad++ винаги го слагам под Windows, но никога, абсолютно никога не го използвам за друго освен редактиране на конфигурационни файлове.

След като оплюхме останалите да кажа какво съм харесал до момента:

си е "оригиналното" IDE за php. Все пак го правят Zend и уж е най-доброто и най-невероятното и т.н. Може и да било така, но от версията от която аз започнах да го ползвам - 6, вече бяха започнали да ползват за основа Eclipse и според мнението на повечето ми тогавашни колеги това много го е развалило. При версия 7 нещата бяха по-лъскави, но не и оправени. Както и да, аз лично смятам, че е нелоша среда, но страда от Windows синдрома - колкото повече го ползваш, толкова по-лагаво става, докато накрая не започне на крашва, да чупи файлове и т.н. Неприятна картинка. Особено много "обича" import на големи проекти - пригответе си кафенце, пакет цигари и вестник.


или PHP Development Tools си е чисто и просто Eclipse за php писачи. На теория би трябвало да бъде почти същото като Zend, ама не е. Никак не е лошо, но спрямо комерсиалния си братовчед е доста по-бавничко като autcomplete примерно. В началото го отдавах на бавния ми лаптоп, тъй като вкъщи бях с него, а на работа с Zend, но когато ги пробвах на една и съща машина разликата е осезаема. Ако не искате да си купувате (или да си "купувате" по другия начин) софтуера това е един от възможните избори.

Когато го пробвах за пръв път разбрах какво се има предвид под Integrated. Идва с доста благинки - вграден уеб сървър, DB manager, терминален клиент, четец на документация, php, дебъгер и още какво ли не. Освен това в сравнение с eclipse базираните среди е доста пъргаво. Вградения уеб сървър става за основните неща, но ако ви трябва mod_rewrite искате или не, ще си слагате отделно apache (което между другото не е проблем за PHPED. Db manager-a става колкото да си погледнете как ви се казват полетата на таблиците, но не върши работата на phpmyadmin или пък MySQL Workbench. Идеята да отвориш ssh терминал като таб в редактора все още ми изглежда странна, но пък не е чак толкова неудобно. Ако пък сте свикнали да проверявате документацията в php.net, вградения четец за chm файлове ще ви е полезен само ако сте offline.
Autocomplete има, но определено не е на нивото на Zend и PDT, но за сметка на това е доста по-бърз и поддържа code templates. Аз примерно си бях направил шаблончета за controller-и модели в codeigniter така че за да създам нов такъв трябваше просто да напиша името му. Бързо и удобно.
Това е може би най-пълното IDE за PHP, идва с почти всичко необходимо, но все пак някои неща куцат.

е новата ми любов. Дълго време го смятах за запазена територия за java-ери, но се оказа че не е така. Поддържа почти всичко, което и останалите, изглежда мазничко и работи прилично бързо. Има някаква доста странна поддръжка за табулации и не се разбира много с останалите, но иначе е супер. Това заради, което ми допадна най-много е, че има пакет за java, c++ и php в едно, а на мен напоследък ми се налага да пиша и на трите. Добро е, пробвайте.

Под Mac нямам голям опит, но така като гледам масово се използва TextMate и TextWrangler, което не го разбирам особено. Най-доброто, което съм ползвал е Coda, за него определението е само едно - мазничко, но пък под Mac всичкия софтуер влиза в тази категория :)


Update: Пробвах Komodo Edit, поработих с NetBeans, нещо не ми харесаха. Не знам какъв компютър ми трябва, но с core i7 дразнещо много се бави NB.
Върнах се обратно на PhpED

Бачках няколко дена под линукс. Бях забравил какво е да се пише html/css без Dreamweaver - ужасно е. Кой каквото ще да говори по-добър autocomplete от DW за html/css не съм виждал, той просто чете мисли.

Другото интересно е как различните IDE-та гледат на autocomplete-a. Понеже на CodeIgniter библиотеките се зареждат по начин по който никое IDE не може да ги autocomplete-не, единствено PhpED се съгласява с мен, че съществуват такива обекти и започва да ги "разбира", всички останали продължават да предлагат каквото вече са си решили, че трябва.

четвъртък, юни 24, 2010

Използване на CI Active Record в скрипт извън CodeIgniter


Добре, ясно, ползвате CodeIgniter и ви се налага да напишете някакъв малък скрипт (примерно нещо, което ще се изпълнява с cron) и се налага да правите някакви си нещица с базата данни.

Правите си една папка "scripts" и започвате да блъскате вътре някакви неща. Въпроса, е че вече сте свикнали с Active Record библиотеката на CodeIgniter и искате да продължите да си я ползвате вместо омразните - mysql_query(), mysql_fetch_object() и т.н.
Оказа се, че това става доста лесно :

// set paths
$current_path = __DIR__;
$current_path = str_replace("\\", '/', $current_path); // w32 paths
// тук може би ще ви трябва още малко оправяне на пътищата :)

define(PROJPATH, $current_path . "/");
define(BASEPATH, $current_path . "/system/");
define(APPPATH, PROJPATH . 'application/');
define(EXT, '.php');

// load active record DB
include(BASEPATH . 'codeigniter/Common.php');
include(BASEPATH . 'database/DB.php');
$db =& DB();



Това е. Вече имате променлива $db и можете да си ползвате любимия $db->get() :)

Уточнение: Ако пътищата ви се струват странни: при мен system и application папките са на едно равнище във файловата структура и за това съм си дефинирал константа PROJPATH която е един вид ../system и ../application.
структурата е нещо като :
/project
//application
//system
//scripts
При този начин на зареждане Active Record ще ползва стандартните настройки за връзка с базата данни в /application/config/database.php, тоест няма нужда ръчно да задавате отново username, pass и db.

сряда, юни 23, 2010

iTunes или ... какво съм изпускал толкова много време

Преди няколко дни получих писмо от Apple писмо, в което ме уведомяват, че като регистриран Apple developer (аз съм само регистриран, без другите 2 думички), мога да гледам безплатно сесиите от Apple Worldwide Developer Conference 2010.

Обещават интересни презентации за HTML 5, какво ново се е случило с Apple и т.н.
Искат iTunes, в добро настроение съм така че го слагам, въпреки че не ми е ясно точно за какво ми е.

Пуснах го, добавих си музиката, сканира я прилично бързо и пуснах някакви хора, които крещят на фона на електрически китари и бързи барабани. Естествено след 15-тина минути се сетих какво щях да правя, та пуснах store-a.

Най-якото нещо, което съм виждал скоро, честно. Не мога да повярвам, че съм изпускал нещо такова толкова много време.
Когато за пръв път си сложих iTunes ми се стори гаден бъглив музикален плеър и даже не съм подозирал какво още може.
В магазина има всичко и готиното е че има адски много безплатни подкасти, за които дори можеш да се абонираш и да се свалят автоматично. Не че не мога да го направя с други плеъри, но пък никога нямаше да ги намеря точно тези. Намерих си супер яки безплатни видеа от конференции - TedTalks, AllThingsD и т.н., subscribe-нах се за доста и съм зверски доволен. Имам какво да гледам постоянно.
За сега нямам намерение да си регистрирам кредитната карта и да плащам за каквото и да било, но като видях какви групи имат, май ще се наложи. Става въпрос за групи, които не просто не мога да намеря в България, трудно се намират дори по разни пиратски брегове или път търсачи на души. :)

Restrictive ?
За сега не ми трябва порно, имам си podcasts :P