PHP programozóként melyik framework-öt használod?

Címkék

Yii
1% (4 szavazat)
CodeIgniter
4% (14 szavazat)
CakePHP
6% (18 szavazat)
PHPDevShell
1% (2 szavazat)
Akelos
1% (3 szavazat)
Symfony
9% (29 szavazat)
Prado
1% (3 szavazat)
Zend
20% (64 szavazat)
ZooP
0% (1 szavazat)
QPHP
0% (0 szavazat)
Egyéb, leírom a hozzászólásban
58% (188 szavazat)
Összes szavazat: 326

Hozzászólások

(forrás: http://php.dzone.com/news/top-10-php-frameworks)

Első hup szavazásom. Lehet, hogy nem megfelelő hazai viszonylatban a lista, és rakás FW hiányzik belőle, de itt az a kérdés, hogy a dzone.com alapján összeállított, nem feltétlenül jó listából mit használnak a PHP fejlesztők.

Egyeb: Sapphire (illetve olyan nagyon nem hasznalom, de ez van a Silverstripe alatt, neha matatok benne)

Ahogy nézem kellett volna egy csak az eredmény érdekel gomb, mert már 13 ember kattintott az utolsó lehetőségre és csak 3 hozzászólás van :D:D:D

neha ha nincs mas mint php, akkor Kohana. Ez a Codeigniter egy forkja. Kozosseg fejleszti

PHP programozóként nem használok semmilyen frameworkot.

gedit, vagy ha unatkozom, és mintegy játszani is szeretnék a programmal, akkor bluefish, de az télleg nem erre való. Gedit kiváló.

Egyéb: nem vagyok PHP programozó és/vagy csak az eredményre voltam kiváncsi

Miért kéne a szavazásba belevenni, hogy csak az eredmény érdekel, miközben van egy ilyen fül is a szavazás fölött?

csak úgy kíváncsiságból belenéztem, hogy néznek ki ezek a dolgok:

$("#myform").populate(<?php echo $json; ?>);

gyonyolú :)
szerintem.

Szerintem meg kifejezetten szép és olvasható a php (...ha csak a funkciói 10%-át használod) :-)
Én pl mindig igyekszem C stílusban kódolni, a gyakorlat azt mutatta így tudott a legtöbb ember később hozzányúlni.

(Tényleg, még támogatja az if: endif-et, vagy azért azt már kiszedték belőle?)

egyéb: PHP programozó vagyok, de kezdő, és egyenlőre a saját egyszerű frameworkjeimet használtam, mivel azok voltak legalkalmasabb a célra, és időm meg volt megírni bőven.

Nagy Péter
www.konquer.org

+1
de csak azért mert lusta voltam megtanulni a Zendet. Felhasználókezelés, különböző webformok, képfeltöltés, mappakezelés stb mind mind saját kód. Ha kell készíteni az új oldalt, akkor ez folyamatosan bővül, ha találok egy hibát akkor javítom, stb, de erősen filózok rajta, hogy egy unalmas négynapos hétvégén nekileselgedek a Zendnek.

Kár ezzel a felmérést bomlasztani. Persze, lehet erről teoretikus vitát nyitni, de itt, és ez ki is emeltem, egy dzone-os lista a kiindulási alap, amiben a Drupal nem szerepel, és a többi ilyen jellegű összesítésben sem. Ez nem a minőségére utal, hanem, ahogy te is írtad, több, mint egy framework, és nem is jellemző, hogy a cms része nélkül csak úgy önállóan használják; bár ez utóbbi inkább csak feltételezés.

Bevallom nyájasan és őszintén, én ilyenhez nem értek, csak kíváncsi vagyok.
Szóval mit kell érteni ilyen esetben framework alatt?

Előre definiált adatszerkezetek és függvények gyűjteménye, ami az adott feladat megvalósítását könnyíti meg, esetleg teszi átláthatóbbá. Pl egy webes keretrendszernél a leggyakrabban használt megoldások előre le vannak programozva, úgy mint egy felhasználókezelés, tartalomkezelés vagy akár egy egyszerű form megjelenítése. Előnye, hogy gyors fejlesztést tesz lehetővé (általában) biztonságos megoldásokkal. Hátránya, hogy sokszor időigényes átlátni a készítők gondolatmenetét, ha igazán el szeretnénk mélyedni az adott keretrendszer használatában.

--
return 0;

Előfordul, hogy igen, de általában vagy a fw áltál létrehozott könyvtárakba és forrásokba dolgozunk, így eleve ,,össze vannak nőve'', illetve el is különülhetnek egymástól és hasonlóképp telepítve lehet a fw, mint maga a webszerver vagy az értelmező. Ilyenkor az alkalmazásunk rendszerkövetelménye mondjuk PHP 5 és Apache2 melett Zend 1.9.

--
return 0;

A framework es a lib kozott az a kulonbseg, hogy a framework altalaban korulolel (van benne egy inversion of control), mig a libeket csak siman felhasznalod.

Pl. egy MVC-frameworkben (a fentiek tobbsege az) az van, hogy fogod a frameworkot, ami akar kozpontilag lehet telepitve egy szerveren tobb hostot kiszolgalva, valahogy letrehozol egy uj instance-t belole (a legegyszerubb masolassal, kitomoritessel, de a kozpontiak mashogy mukodnek), es ez fogja kezelni a kereseidet.

Aztan beleraksz egy fajlt, ami leirja, milyen az adatbazis, beleraksz egy masikat, ami mondjuk a szajt dizajnjaval foglalkozik (HTML keret), egy harmadikat, ami leirja, egy urlapnak/tablazatnak milyen mezoi vannak, es utana controllereket irsz, amik az urlapok adatait minek feleltessuk meg a DB-ben (ez egy algoritmikus resze.) Aztan a controllereket joreszt gombokhoz, menupontokhoz rendeled.

A szep ebben az, hogy neked tenyleg csak a lenyegi reszt kell megirnod, az osszefuzest a framework vegzi.

Mindketto.

A Symfony inkabb egy RAD, ott rovid szoveges fajlokat szerkesztesz, majd ebbol parancssori toolokkal (amit bele lehet integralni editorokba is nyilvan) lehet mindenfelet generalni, es akkor annyibol, hogy:

pizza:
  feltetek: string
  ar: integer
megrendeles:
  vevo: user_id
  pizza: pizza_id
  idopont: datetime
  megjegyzes: string

(kb. igy nez ki egy symfony sema-fajl) egy komplett adminfeluletet general neked, igy:

symfony generate-models
symfony load-fixtures # peldaadatok, szinten egy txt-ben
symfony generate-admin admin pizza
symfony generate-admin admin megrendeles

A Zendet inkabb lehet libkent hasznalni, ott akar 1-1 osztalyt is kikaphatsz, nem kell az egesz hobelevancot hasznalnod (bar ma mar a symfonyt is szetszedtek ezer darabra, ez nem volt mindig igy.)

Marha valtozo: egyes projektjeimhez symfonyt, foleg, ha sok szolgaltatasa kell, masoknal zend, meg az kozelebb is all a PHP filozofiajahoz, erre 1-2 ev utan rajottem es neha mar banom, ha valami alatt symfony van, meg akkor is, ha egyebkent ugyes-okos.

A cegnel most epp ket framework van igazabol: az egyik a sajatunk, amit par nap alatt fejlesztettunk ki - http://www.adamnemeth.hu/2009/10/19/architect-dolgok-framework-napok-al… - a masik az ugyfel nem objektum-orientalt frameworkje, ami egy fokkal talan jobb, mint az OOP (ill. azt, behelyettesithetosege reven alapbol csereljuk a sajatunkra), de meg mindig tud kinszenvedes lenni.

CMS feladatokhoz nagyon sokat hasznaltunk Typo3 CMF-et, meg a wordpress is jo, csak nagyon tudni kell, mire. Mindig minden projektfuggo.

Egy ideje azon gondolkozok, hogy meg kellene szerezni a Zend Framework Certificatet. Szerintetek fizetés terén mennyit nyom a latba? Akár bel-, akár külföldön. (Természetesen Zend-re szavaztam).

Fizetés terén semmennyit, de ha hozzám jelentkeznél programozónak kevésbé lennék gyanakvó, hogy nem tudsz programozni. ;-)

Attól, hogy van egy ilyen "papírod", még lehet, hogy a gyakorlatban rosszul oldod meg a feladatokat.

Én azt mondom, hogy a működő referenciáknál nincs jobb oklevél.

--
laco

általában egy interjú alatt azért ki szokott derülni, hogy helyén van-e a tudás valakiben, és, hogy kellő rálátása van-e az egészre, vagy csak összetákolt mindenféle oldalakat.

Persze igen, pontosítok: működő referencia + betekintési lehetőség a forráskódba.

--
laco

Én erre néhány nyílt fejlesztést csináltam. Persze nem ingyen, hobbiból, hanem egy nagyobb, fizetős fejlesztés részeként és a lebutított verzióját GPL alatt kiadtam. Például ezt: http://wiki.eperpalanta.hu/projects:chartwidgetlibrary:start

Most készül egy nagyon ötletes fórum Railshez, az is ilyen lesz.

Ezeket lehet mutogatni, ha valaki kíváncsi arra, hogy milyen minőségben fejlesztek.

--
http://sandor.czettner.hu

kiherélt/lecsiszolt kohana 2.1.1, egyébre szavaztam.

Egyebre szavaztam: sajat/belso fejlesztes.

Jelenleg nem foglalkozom hivatasszeruen PHP-vel (desktop/telco vonalon vagyok). Korabban a ceges fejlesztesu fw-t hasznaltuk tobben, bar ahhoz hozza volt nove egy lightweight CMS is, de volt olyan hely, ahova csak par kivagott funkciot telepitettunk, a CMS nelkul.

Jelenleg PHP-ban csak sajat projectek futnak, ezek kozul tobb egy sajat framework-ot hasznal, de az pont nem webes. Gyakorlatilag egy programozhato webes robotrol van szo, ami timereket es esemenyeket hasznal, meg uzenetsorokat.
Letolt egy oldalt, az URL-re illeszkedo szabalyokat vegrehajtva az oldal forrasaban (regexp) vagy DOM-jaban (XPATH) mintakat keres, es a hozza tartozo fuggvenyeket elinditja. Ezek beallithatnak belso valtozokat, uj uzeneteket tehetnek be a varakozasi sorba, vagy (kozvetve vagy kozvetlenul) uj oldalletoltest generalhatnak.

Bonyolultan hangzik leirva, viszont nagyon egyszeru vele webes automatizalt feladatokat vegrehajtani, amire egy shell script mar kicsit keves lenne.
Pl. arfolyamletoltes, vizsgajelentkezes, bizonyos oldalakat tud figyelni, es valamilyen esemeny bekoveztekor szolni, a frissiteseket DB-be teszi, ilyesmi.

--
"You will have to look a long way before you find a bunch of scum-suckers more greedy, humourless and deserving of death than the suits in the music business." - Terry Pratchett

Egyéb, bár újabban messze kerülöm a PHP-t :)
Otthon/fusi/ilyenek: lisa framework, mivel saját fejlesztés
Melóhely: céges keretrendszer, mely kb egyidőben keletkezett az előbb említettel, így oda-vissza elég nagy a közös kódbázis

Sajat, + ceges a ceges melokhoz:)

"-Pedig vegetariánus vagyok; csak növényevő állatokat fogyasztok!"
azenoldalamponthu

Amint úgy gondolom, hogy rendesen megtanultam a PHP-t, akkor megpróbálom a CakePHP-t sok jót mondtak róla, addig viszont marad a saját, saját szívás, de legalább saját tanulás is :)

Ezzel a megközelítéssel nem értek egyet. Sokkal hamarabb leszel valóban produktív egy új környezetben, ha jól összerakott frameworköket használsz. Mivel sok jó nyílt forráskódú framework elérhető PHP-hez, sokat lehet tanulni a forráskódjaik tanulmányozásából.

Ráadásul így tudsz a valódi feladatra koncentrálni, és nem ezerszer megírt dolgokat találsz fel újra.

Egy másik hasznos mellékhatás, hogy sok framework olyan fogalmakat, megoldásokat használ, amelyek más nyelveknél / környezeteknél is elterjedtek. Tehát ha a PHP-s megfelelőt megismered, és utána más nyelven kell hasonló környezetben programoznod, akkor csak a különbségeket kell megtanulnod, nem pedig teljesen elölről.

Pl.:
Zend Framework = Az MVC része, vagy pl. (nagyon alap dolog) a logger komponense nagyon hasonló, mint sok más nyelvi környezetben.

Doctrine = ORM framework -- csodák itt sincsenek, ha ezt megismered, akkor más nyelveknél sem lesznek nagy problémáid.

És mivel így nem csak a PHP-s projekteket tudod gyorsabban elkészíteni, hanem más nyelvet használó projektben is könnyebben bevethető vagy, ezért a munkaerőpiacon is nő az értéked.

Üdv,
Gergely

Mondanam, hogy plusz egy, de teljesen mas okbol.

A baj az, hogy a sajat frameworkkel nem tanulod meg a PHP-t, es mast sem.

Egesz egyszeruen azert, mert az informatika tanulasi folyamata gyokeresen mas, mint ahogy azt nehany ember gondolja.

Azzal tudnal jol megtanulni PHP-ul, ha nagyon sok kulonbozo kodstilusu PHP-rendszerhez kellene igazodnod, sot, ezek lehetoleg jo minosegu forraskodok legyenek.

Azzal szerintem vitan felul egyetert mindenki, hogy azok a frameworkok amik itt topon vannak, minosegi forraskodok, megha a megkozelitesi modjukkal nem is feltetlenul ertunk egyet, vagy mas - teljesitmeny, stb - okok miatt a masikat preferaljuk.

A frameworkok kenyszerito jellege - hisz ok nem libek, hanem frameworkok, mint azt fentebb irtam - rakenyszeritenenek egyes mintak alkalmazasara, vagy miutan neha at kene nyalaznod a teljes oroklesi fat (ez pl. engem lassit symfonyban, de biztos van ra plugin masnak), igy megismerkednel programozasi megkozelitesekkel.

Ezen kivul a forumjaikon, doksijaikban rengeteg peldakodot talalsz, magyarazattal, mindennel.

Persze, nekem is van sajat frameworkom (fent irtam), ill. pontosabban ceges, egesz egyszeruen azert, mert kellett egy hasznalhato rendszer, ami a kapott kodkaosszal kompatibilis (ha az ugyfel programozoi nyulnak hozza, nem tunik fel), ugyanakkor gyors fejlesztest tesz lehetove. De a megirasa mogott ott van 2-3 framework hasznalata eveken at, es nem azert hasznaljuk ezt, mert mi ugyis jobbak vagyunk, hanem mert PHP4-ben kellett dolgozni, ahol a fentiek joreszt nem mukodnek. Most lehet, atall az ugyfel PHP5-re, es lehet, ekkor bucsut intunk a sajatunknak is, helyette Zend lesz.

De ha gondolatban vegig akarod jarni az utat a 70-es evektol napjainkig, ahogy a rendszerek folyamatosan fejlodtek (OOP - 60-as evek vege, MVC - 79, Design Patterns - 94...) akkor hajra, csak ha mindenre ra is jossz, eleg oreg leszel addigra, mert egyedul - plane egyfos projektek eseten - nagyjabol ugyanannyi ido.

+0.5 :)

A saját framework-el pontosan az a célom, hogy mindig, amikor egy problémát gördítek magam elé akkor azt meg bírjam normálisan oldani. A jó pap holtig tanul, így sosem lesz senki tökéletes programozó így a gondolkodást is javítja.

Azonban teljesen igazad van abban, hogy nem kell[ene] megint feltalálni a kereket hanem a mások találmányaiból tanulva dolgozni tovább.

Fura, hogy a YII-t ilyen kevesen használják, pedig nagyon ígéretes projekt, mindenhol dicsérik. Én még csak most kezdek el barátkozni vele, de nekem is nagyon szimpatikus.

Jelenleg semmi frameworkot nem használok, igaz olyan igen nagy programozónak se mondhatom magam. Azonban szívesen megtanulnék egyet, csak nem igazán tudom hol induljak el. A symphony-val szemezgettem korábban, de valahogy mindig egyszerűbbnek tűnt leülni, és leprogramozni amit szeretnék, mint rászánni x időt megtanulni valamit. Aztán most hogy megláttam ezt a témát, gyorsan megnyitottam néhány zend tutorialt, de erre szimplán a neve miatt esett a választásom (mivel gyakran hallani).

Szerintetek hol érdemes elindulni? Tudnátok tanácsot adni?

Közben elkezdtem a Yii-vel foglalkozni. Nagyon megtetszett, bár van egykét dolga amire nagyon nem tudok rájönni, pl hogy magyarítsam anélkül hogy áttúrnám a core fájlokat. Az mindenesetre látszik rajta hogy még fiatal, viszont gyorsan lehet vele programozni :)

Lehet kipróbálom később a többit is, de egyelőre örülök, hogy ezt kezdem megszokni :)