PHP fejlesztői környezet kerestetik

Hi!
Nem mondhatnám, hogy kezdő programozó vagyok de a PHP -ban newbie. Keresgéltem de valahogy nem találok (vagy csak rosszul nézem/keresem) egy olyan PHP fejlesztő eszközt ami segítene, pl. a képernyők előállításában. Adatbázisokkal eddig leginkább egy RAD -ot használok, de az keményen csak windows (SoftVelocity Clarion), ráadásul az SQL támogatásától sem vagyok elragadtatva. Viszont rendkívül kényelmes és meggyorsítja a munkát. Az adatbázis megtervezésére összpontosít, miután egy speciális adatbázis tervező/szerkesztő/dokumentáló eszközzel leírod az adatbázist (benne minden kapcsolattal és akár a képi megjelenítés dolgaival) erre alapozva legenerál egy komplett adatbázis kezelő, megjelenítő programot browse, upate és report szemlélettel - ezt lehet tovább "szinezni".
Nem várom, hogy egy ilyen "csodát" kapjak ingyen, egy LAMP típusú fejlesztéshez, de kicsit több támogatás kellene mint egy szimpla HTML -t, PHP -t ismerő szinezős szövegszerkesztő.
A cél, pillanatnyilag néhány egyszerű adatbázis megjelenítés, de előbb - utóbb a grafikus ábrázolás is szükséges lessz (kisajtolják belőlem).
Tudtok valamit ajánlani? Ti mit használtok?

Hozzászólások

Én symfony segítségével fejlesztek. Szerintem LAMP környezetben nagyon jól megállja a helyét. Ez egy PHP5 keretrendszer, ami elég sok mindent tud. Nagyon jó dokumentáció és tutorial-ok vannak hozzá. MIT licensz alatt adják ki. Ismer egy rakás adatbázismotort. Az adatbázis séma alapján ORM-et (object-relational mapping) és egy komplett admin felszint is le tudsz generáltatni egy mozdulattal. Sőt, mindezt konfigurálni is tudod egy sor kódolás nélkül. Persze, ahová kell, mindenhová be tudod tenni a saját kódodat.

PHP Editornak meg Linux alatt a geany-t használom, mert ehhez szoktam. Ha meg kifejezetten IDE-t keresel, akkor állítólag az Eclipse PHP modulja is jó. Én még nem próbáltam.

Sok sikert:

- waiter -

Lásd bővebben itt:
http://www.symfony-project.org/book/1_0/01-Introducing-Symfony

Nekem nem lassú. Csak akkor kell újragenerálod az adatmodell réteget (ami egy adag PHP szkript), amikor változtatsz az adatbázis sémán. Ez csak a fejlesztés során változik. Utána már nem.

- waiter -

Geany +1

Az Eclipse-hez több PHP modul is van: PHPEclipse, és PDT. A PHPEclipse fejlesztése mintha megállt volna. A PDT meg jó, persze ha van elég RAM... Bár nálam kb 3 hónapig gond nélkül ment, majd elkezdett fura dolgokat művelni, de ez lehet hogy nem az Eclipse hibája, de nem jöttem rá hogy mi baja volt. Ekkor tértem át a Geany-ra.

Ezen kívül ami szerintem használható (és ismerem is):
Komodo IDE
Zend Studio

Hu.
Épp kezdtem megijedni, hogy marad az editor.
Úgy tudom az eclipse (azonkívül hogy java, C/C++ és C# fejlesztői ide) alapvetően java -ban íródott - nem lassú a munkához? Milyen erős gép kell hozzá?

* Én egy indián vagyok. Minden indián hazudik.

Hm, alig vannak előítéleteid... ;)
Egyébként nekem (core2duo 1.8GHz procival+1 giga rammal) nem lassú, mindenféle bekapcsolt kütyü mellett sem. (pl a forrás auto. rebuildje minden mentésnél) PHP-hoz értelemszerűen pl. ilyesmire nem lesz szükséged.
Csak egy böngészőre meg egy webszerverre...
De próbáld ki, már majdnem 5 percig is tart, mire felpakolod. :)

Üdv,
kl223
(szerk: 1.5ös vagy 1.6os javat használj)

Szerintem meg rettenetesen nézőpont kérdése hogy mennyire lassú... Mert ha nem hasonlítom semmihez, akkor tényleg nem olyan gáz, hónapokig egész jól elvoltam vele. De ha összehasonlítom mondjuk az Anjutával, vagy más, nem Java-ban íródott IDE-vel, akkor rettenet. :)

hát, nekem egyszer használt a designer dreamweavert úgy, hogy az volt a policy, hogy ő összerakja a html kódot vele, én meg beleheggesztem a php-t; anyáztam rendesen, eléggé vacak kódot tud generálni

quanta-ban is csak a forrásszerkesztőt használtam, a VPS-t soha

---------
"Ha igazat mondasz azt végig unják, ha feldíszíted azt jól meg dugják"
szerény blogom -- új címen!

vim és syntax on :)
ennyi bőven elég....még sok is :)

ez majd rákényszerít, hogy megtanuld a html és a php nyelvet is és ne valami grafikus RAD fekéliában pakolj össze sehol sem működő kódot.

Azt sem értem, hogy miféle képernyő generálásról van szó. Van a html nyelv és annak vannak elemei. Mindjuk a div, vagy a table, meg az összes többi. Papíron lerajzolod mit akarsz, aztán egyszerűen leírod a tag-okat. A php oldalán meg beírod a keresőbe hogy Xsql és már ki is dobja hozzá az összes függvényt.
Egyébbként ha meg csak adatbázist akarsz lekérdezni meg updatelni, akkor ott a phpXadmin, amihez szépen beállítod a felhasználókat és jogosultságokat és nem kell semmit fejleszteni.
Nálam is van olyan rendszer, ahova gizike belép és csak select joga van bizonyos táblákra. Ennyi...

Szerintem nem ilyen dreamweaver szintű szarokra gondolt, ahol összekattingatod az oldalt a program meg legenerál valami hányadék kódot, hanem egy szimpla fejlesztői környezetre.

Egyébként windowson én a php designer-t ajánlom, csak kár, hogy fizetős. Ez folyamatosan ellenőrzi a kódot. Ha nincs escapeelve egy idézőjel már pofázik, vagy ha lemarad egy pontosvessző vagy akármilyen apró hibát észrevesz. Sok időt meg lehet spórolni vele. Linuxon próbáltam a bluefisht meg a quanta-t, de egyik se jött be igazán.

Ezt csinálja a vim is.
Csak egyszerűbben, gyorsabban, hatékonyabban.

Nekem viszont az jött le, hogy valami adatbázis mahinátor rendszert kellene neki írnia. Erre írtam, hogy egy megfelelően beállított phpmyadmin, phppgadmin, vagy amit akarsz meg egy jó kis jogosultság beállítás az adatbázisban tökéletes erre. És nem kell programozni.

Ha programozni kell, akkor továbbra is a vim a legjobb. Én C-re, Html/javascript/PHP-re azt használom. Kb. ötször gyorsabb vele a fejlesztés, mint a GUI-s dolgokkal. Hozáteszem, hogy többször próbáltam őket, de tovább tartott volna megtanulni őket, mint négy-öt projectet végigvinni. Csak a Java fejlesztésekhez használok eclipset, mert fejből nem nyomom az osztályhiearhiát (na jó a sokat használtakat igen).

Szeretném megkérdezni, hogy
- debuggolni mivel fogsz?
- kódkiegészítés van-e? (nem csak a gyári PHP függvényekre, a sajátokra is, úgy, hogy ráadásul ajánja hozzá a függvény/osztály/akármi elé beírt PHPDoc kommentekből is szedi a dolgokat?)
- Valami áttekintő nézet arról, hogy milyen osztályaim vannak, abban milyen metódusok, esetleg miből hogyan van származtatva, stb.?
- Esetleg refactoring?

Szimpa szövegszerkesztésnél kicsit túlhaladtak már a mai fejlesztőeszközök a syntax highlightingnél és a real time syntax hibák keresésénél.

Topicindító kérdésre: Eclipse + PDT. Sebességben csalódtam egy kellemeset. Régen, mikor néztem, elég szörnyű volt, pár hete kipróbáltam egész korrekt. Egy 3000+-s Sempronon (1800 Mhz, de többnyire csak 800 Mhz-n megy) 768 mega rammal XP-n próbáltam úgy, hogy futott mellete elég sokminden, korrekt sebessége volt. Első indítás lassú, utána normális. Meg merem kockáztatni, hogy az asztali gépemen (indítást leszámítva) gyorsabban fut, mint a Borland Developer Studio (X2 3800+, 4G ram, XP)

Igen, kódkiegészítés van. Igen, a saját függvényekre is (hint: ctags, cscope). Valamint vannak olyan kiegészítések, amelyek olyan IDE-vé teszik a vim-et, amilyenekre gondolsz. Bevallom, sose használtam még ilyeneket, igaz, nincsenek is olyan nagy "prodzsekteim" se ;)
Azért ezt esetleg nézd meg:
http://www.koch.ro/blog/index.php?/archives/63-VIM-an-a-PHP-IDE.html

Pedig az is jó mulatság :) Amikor unod a programozást, akkor azzal foglalkozol. Ne mondd, hogy nem ez minden álmod :D
(egyébként csak egyszer kell összeszerelni, utána megy az, mint az ágyba... izé, karikacsapás)
Hidd el, ha egyszer szánsz rá egy kis időt, meglátod, hogy nem olyan rossz az, mint amilyennek tűnik. (annál sokkal rosszabb:))

Az a kicsi ido igen kellemetlenul meg tud nyulni, pl amikor az jEdit kodjaban kell szarra matatnod hogy miert nem talal meg bizonyos tageket ;) Hosszu orak mentek el a bugvadaszattal es a tobbivel. A vegen persze trivialis volt a problema megoldasa, de a raforditott ido hatarozottan NEM erte meg :) ctags cscope amugy is mind best effort parsing, sz'al kenheted a hajadra.

- debuggolni mivel fogsz?

En a vim phpdebug pluginjevel szoktam, bar amennyit en debuggolok, ahhoz annyira nem kell (rutinos roka vagyok, tudni szoktam mit b.tam el)

- kódkiegészítés van-e? (nem csak a gyári PHP függvényekre, a sajátokra is, úgy, hogy ráadásul ajánja hozzá a függvény/osztály/akármi elé beírt PHPDoc kommentekből is szedi a dolgokat?)

ctrl-n, gyari beepitett (ctrl-x o, az a fancy phpdocbol kiszedegetos valami, elobb rakd fel a plugint), aktualisan nyitvalevo ablakok tartalmaban keres.

- Valami áttekintő nézet arról, hogy milyen osztályaim vannak, abban milyen metódusok, esetleg miből hogyan van származtatva, stb.?

Igen, ls, meg doxygen. Tudom, hogy hulyen hangzik, de en egyszeruen nyomok egy :!grep -rl fuggvenynevet, es kesz, nem kell nekem fa.

- Esetleg refactoring?

Abban a vim verhetetlen, leven gyorsabban makrozod mint az eclipse-et, es nem csak az alap 5-ot lehet elkepzelni innentol, hanem domain es codebase-specifikus refactor is szobajohet. Ehhez picit meg kell tanulni hasznalni de nem veszes.

(Egy dolog uti a vimet szamomra refactoringban, az IntelliJ IDEA, de ahhoz meg ugye statikus tipusozasu nyelv kell, tipikusan java)

"Azt sem értem, hogy miféle képernyő generálásról van szó"
Jó, kicsit elnagyoltam :)
A RAD egy adatbáziskezelőnél elég kellemes tud lenni. Az adatbázis kezelés tuljadonképpen áll browse, insert/update/modify és report procedúrákból. Na most, ha ezeknek kell egy képernyő - azaz valamiféle ésszerű elrendezése a rekord(ok)ban található adatokra azt régebben, szinte pozícióbol pozicióra ki kellett számolni - esetleg kockás papír. Nagyon nyűves munka. A RAD egy wisiwig elvű képernyőszerkesztőt ad a popsid alá, úgy hogy az egész csak "kattintgató" fejlesztésnek hívom. Végül is az adatbázisnál ez a kuli munka.
"... sehol sem működő kódot" Evvel a cuccal olyan programokat írtam ami pont egy évtizede a nap 24 órájából 24 órát működik - persze ha nem hullik ki alóla a rendszer. Nagyon meggyorsította a munkát.
Most viszont szeretnék a WEB és az SQL felé tendálni, de ha nemtalálok jó eszközt akkor kénytelen leszek megin ehhez nyúlni.

UI: ha egyébként ilyen harcoisa vagy a dolognak akkor miért használsz kész eljárásokat, kezd azzal hogy visszatérsz a CGI -hez, és illetve megirod a libc -t - de standard library -tól ám!

* Én egy indián vagyok. Minden indián hazudik.

CRUD alatt általában azt a tipikus négy tevékenységet értik (create read update delete), amely szinte minden programban előfordulhat, emiatt sok terhet levesz a programozó válláról az az eszköz, mely ezt hatékonyan megcsinálja helyette, vagy legalábbis nagyon besegít (ld. vizuális ide-k).

Scaffolding alatt sokkal inkább egy ideiglenes összehozott, kvázi prototípus jellegű dolgot értenek sokan, pl. annak idején Ruby on Rails eléggé ismertté tette (aztán sokan hivatkoztak rá, hogy ők is tudják ezt, pl. CakePhp) ezt a fajta lehetőséget.

A kettőt csak azért nem mosnám össze, mert utóbbi esetén tényleg fontos az ideiglenes, gyorsan összedobált jelleg (pl. ügyfélnek megmutatható verzió, csapatmunkához bemutató stb.), előbbi viszont lehet a végleges termék része (az már más kérdés, hogy neten éppen ki hogyan hivatkozik rá...).

igazad van, nem teljesen azonos a ketto, de altalaban scaffolding is arrol szol, hogy a megadott speci alapjan egy crud feluletet biztosit:

Scaffolding is a meta-programming method of building database-backed software applications. It is a technique supported by some model-view-controller frameworks, in which the programmer may write a specification that describes how the application database may be used. The compiler uses this specification to generate code that the application can use to create, read, update and delete database entries, effectively treating the template as a "scaffold" on which to build a more powerful application.

Tyrael

A symfonyban amit itt ajanlottak ez ugy zajlik, hogy egy YAML nevu formatumban kell szovegfajlkent definalnod a tablakat meg mezotipust, es vannak parancsaid amivel UI-t general hozzajuk, meg minden mezotipushoz tartozik egy widget; ha mas widgetet szeretnel, megmondod a megfelelo yaml fajlban.

Szoval picit "spartai", de egy yaml kabe igy nez ki:

scheme:
tablanev:
mezoneve: string
masikmezoneve: datetime
talaldki:
type: int
min: 20
max: 42
masiktablanev:

Gondolkoztunk anno azon, hogy ext js-ben vagy masban csinalunk olyan dizajnert, ami vizualisan engedi cs.tetni, meg volt otlet netbeans pluginre is, de aztan maradtunk ennel a szokasos kezi megoldasnal

mint RAD-ot a CodeCharge-rol hallottam jokat, mint framework CodeIgniter-t hasznalom, editornak Pspad, ha valami featurerich-ebet akarsz akkor Eclipse+PDT vagy ZendStudio.

Tyrael

nekem a gvim a bejövős :]
------------
Van egy másik könyv is, a címme ööö nem jut az eszembe, de az egyik szerzõje én vagyok, az biztos...

Nekem az a tapasztalatom, hogy legjobban a rapid prototyping jön be, azaz csinálsz egy HTML vázat, amit lehet klikkelni, majd azt finomítod. Sajnos az előre szépen megtervezés azért nem játszik, mert a követelmények szoktak változni a kész alkalmazás (vagy prototípus) láttán. Szóval a "megjelenítő eszköz" a sitebuilder munkája. Adott esetben játszhatsz UML-lel, de ahogy én elnézem a PHP-t, tökfelejtő mert több bugot kell megkerülnöd mint amennyit PHP-ben le tudsz képezni. Adatbázis tekintetében (ha Windowst használsz) MySQL Workbench játszhat még...

Feljesztőkörnyezet tekintetében Eclipse + PDT + Subversive + Mylin integration (Trac), minden fejlesztő gépén külön Apache, PHP, MySQL + Xdebug telepítve, subversion szerver autocheckout (postcommit hook) a közös fejlesztő szerverre.

Őszintén szólva, annak köszönhetően hogy a PHP minden oldallekérésnél külön betöltődik, nem ad sok lehetőséget arra, hogy nagy OOP-s keretrendszert gyárts hozzá. Próbálkozni lehet, de nagyon gyorsan nagyon lassú lesz a kiszolgálásod.

"Őszintén szólva, annak köszönhetően hogy a PHP minden oldallekérésnél külön betöltődik, nem ad sok lehetőséget arra, hogy nagy OOP-s keretrendszert gyárts hozzá. Próbálkozni lehet, de nagyon gyorsan nagyon lassú lesz a kiszolgálásod."
Bennem is sokszor van a dilemma, mert egyes esetekben mire legyártom az összes osztályt meg megtervezem a kommunikációjukat egy csomót gépelek, de nem egy oldalas projecteknél kényelmesebb egy OOP-s kóddal és keretrendszerrel dolgozni.

szerintem azert erdemes frameworkot hasznalni.
manapsag olcsobb a nagyobb vas/meg1 gep a clusterbe, mint a fejlesztok munkabere.
szoval ha az xy frameworkkel 2szer olyan gyorsan lehet fejleszteni (plusz jol dokumentalt, konnyen talalni fejlesztot, aki kesobb hozza tud nyulni, stb.) de 5szor olyan lassan fut mint egy egyedi, csak erre a projectre irt motor, meg mindig a framework gazdasagosabb.

Tyrael

Ha mondjuk a kézzel gyártott változat elfut 10db 1 millió forintos vason és a frameworkös változat 5x lassabb, akkor röpke 40 millió forintot tapsoltunk el úgy hirtelen? Hány fejlesztőt is lehet ebből mennyi ideig fizetni? És akkor az üzemeltetési költségekről nem is beszéltünk.

Arról nem is beszélve, hogy vannak bizonyos terheléssel összefüggő problémák, amiket nem tudsz rábízni a framework-re, pl agresszív cachelés, vagy az, hogy 1-1 oldal felépítéséhez ha nem kell, ne nyúljon az adatbázishoz, egészen addig hogy master-slave kapcsolódást támogasson.

Nem mindig egyértelmű az, hogy a framework el tudja látni a azt, amit szeretnél pontosan azért, mert a framework egy széles közönségnek készült, amíg a Te igényeid lehet, hogy nagyon messze vannak az átlagtól. Szóval mérlegelni kell.

Nyilván a fenti számpélda erősen sántít, de jól érzékelteti a valóságot. Én addig jutottam el, hogy ha van egy egyszerű MVC model, amiben lehet dolgozni, akkor az már elég lehet. Gondolkozom még egy előfordító megalkotásán is, ami csak azokat a funkciókat teszi bele a projektbe a frameworkből, amikre feltétlenül szükség van, de ez részemről még a jövő zenéje.

nem kene belemenni, de az a 40 millio forint koltsegkent leirhato, afat visszaigenyelheted, amortizalodik, stb.
ha munkaberre koltened, akkor abbol nem tudnal 40 milla bruttot kifizetni, de ha ki is tudnal, akkor az kb. 2 munkaevre eleg.
ha mondjuk 5 munkaev alatt keszulne el a project sajat kodbazisbol 0-rol, es ehelyett valami normalis framework segitsegevel eleg ra a 2,5 munkaev, akkor mar megerte, es ugye ebbe nincsenek benne azok a tenyezok, hogy az uj munkatarsak betanitasa sokkal gyorsabban megy, nem vagy hozzakotve az eredeti fejlesztobrigadhoz, konyebben karbantarthato a kod, kissebb a ganyolas veszelye(egyseges interfacek, satobbi).
ha neked 10 darab 1 millas szerverre van szukseged (ami mar brand szerverekbol sem az alja) az adott projectre, akkor ott mar lennie kell ennyi tokenek, ami szerintem hosszu tavon megterul.
nem veletlen, hogy manapsag mar az assambly programozokat is max mikrovezerlok felprogramozasara keresnek, vagy realtime rendszerekhez, routergyartok ternek at linuxra, stb.
bocs, ha kicsit szetszort vagyok, keso van, remelem atjon a mondandom azert.

Tyrael

persze, lehet olyan specialis eset, amikor ez ellenjavalt: pl. vannak olyan matematikai/fizikai szimulaciok, amiben a kodot megirni rovid ido, es utana nagyon sokaig fut a program, ilyenkor egyertelmu, hogy a tenyleges munkanak mennyire kis resze a programozas, ergo megeri a leheto legjobban optimalizalni a kodot, de altalaban webes projecteknel nem ez a jellemzo.

Tyrael

Őszintén szólva, annak köszönhetően hogy a PHP minden oldallekérésnél külön betöltődik, nem ad sok lehetőséget arra, hogy nagy OOP-s keretrendszert gyárts hozzá. Próbálkozni lehet, de nagyon gyorsan nagyon lassú lesz a kiszolgálásod.

Nem kene bekapcsolnod az eAccelerator-t meg a fastcgi-t valahol a szervereden?:)

Meg rakj meg fel egy memcache-t, es akkor kb. nyugi van.

(Az, hogy NagyZ leragadt a PHP-ban a 90-es evekben, az egy dolog, mert nem vele dolgozik; Azert en lattam mar nagyon nagy PHP-s keretrendszereket eleg gyorsan reagalni, okosan megoldva nyilvan, nem kell mindig a fel vilagot betolteni ha van cache-elt valtozat)

php-hez nekem a SciTe jött be.
Kiváló segítség a kódszínezése.

Jó még a gedit is, főleg a töredékkezelés miatt.

Én Eclipse-t használok php fejlesztésre. (Bár mostanában nem nagyon teszek ilyet)
pdt, és aptana pluginok kellenek hozzá oszt kalap.

szerk: igazából minden fejlesztéshez Eclipse-t használok :)

------------------------------------------------------
Aki utoljára nevet, annak van 56k-s modeme.

bocs, ez nem ide... kerem toroljetek...

Én évek óta Zend Studio-t használok fejlesztésre, illetve mostanában Zend Platformot debuggolásra. Érdemes kipróbálni. Fizetős, de megéri.
--
kövi

Régen én is Zend Studiot használtam és annak a színeit nagyon megszerettem. Most viszont áttértem az Aptana 3-ra, ami okos, ügyes, meg minden, de kódszínező téren nem találtam benne szimpatikusat.
Tud esetleg valaki Aptana 3-hoz letölthető Zend Studio szín sémát? (Google nem volt barát :) )