PHP: Använda sig av ett ramverk?

Permalänk
Medlem

PHP: Använda sig av ett ramverk?

Hej hej!

Sitter och skissar lite på en idé om en "community" jag har haft ett tag och har börjat kolla upp lite mer information när det kommer till själva kodningsarbetet. Tanken är väl att jag ska koda det mesta på egen hand då jag också behöver utveckla mina kunskaper inom PHP. Hade tänkt koda bit för bit från grunden men hittade en artikel om ramverket 'Zend'.

Har någon erfarenhet av att arbeta med ramverk i PHP? Vinner man mycket tid om sätter sig in i det? Vilket nackdelar finns?
Just Zend-ramverket verkade vara objektorienterat vilket passar mig perfekt.

Nåväl, frågorna har ni ovan!

Tack på förhand!

PS. Bonusfråga: Någon som har erfarenhet av Zend som ramverk?

Permalänk
Medlem

Det är väl en god idé att man använder MVC när man ska göra ett “community”. De allra flesta (typ alla) ramverk till php använder MVC. Det finns flera olika bra ramverk till php och det är mest en smaksak vilket som man vill arbeta med. Jag skulle gissa att de flesta rekommenderar det ramverket som de har erfarenhet av (även om de aldrig har testat ett annat, konstiga människor).

Här kan du se en snabb överblick av skillnaderna mellan olika ramverk: http://www.phpframeworks.com/ och på samma sida kan du även få ett hum om vilka som är populära. Sedan är det bara att googla skillnaderna och läsa argumenten för de olika ramverken.

Visa signatur

citera!

Permalänk
Medlem
Skrivet av Dosshell:

Det är väl en god idé att man använder MVC när man ska göra ett “community”. De allra flesta (typ alla) ramverk till php använder MVC. Det finns flera olika bra ramverk till php och det är mest en smaksak vilket som man vill arbeta med. Jag skulle gissa att de flesta rekommenderar det ramverket som de har erfarenhet av (även om de aldrig har testat ett annat, konstiga människor).

Här kan du se en snabb överblick av skillnaderna mellan olika ramverk: http://www.phpframeworks.com/ och på samma sida kan du även få ett hum om vilka som är populära. Sedan är det bara att googla skillnaderna och läsa argumenten för de olika ramverken.

Tackar så ödmjukast för ett bra och utförligt svar!
Ska kolla närmare på ett par stycken ramverk och jämföra dessa!

Tack igen!

Permalänk
Medlem
Skrivet av SuitUp:

Har någon erfarenhet av att arbeta med ramverk i PHP?

Ja.

Skrivet av SuitUp:

Vinner man mycket tid om sätter sig in i det?

Om du ska bygga något mindre spelar det inte så stor roll hur du gör, det är ganska svårt att misslyckas med mindre saker. Men om du ska bygga en större webbplats, som kanske ska underhållas under någon längre tid, är det bra med ett ramverk. Speciellt om du inte byggt något större tidigare, så är kan det vara bra att följa MVC-strukturen (som Dosshell nämnde) som typ alla ramverk implementerar, för att inte i slutet ha en ostrukturerad och oförståelig röra.

Vad ett ramverk gör, och hur lång tid det kommer att ta innan du kan börja skriva själva webbplatsen, skiljer sig åt mellan ramverken (så klart). Från att erbjuda en samling löst sammanhängde komponenter utan att tvinga någon speciell struktur (t.ex. Zend går att använda så, men samtidigt kanske dessa bör kallas för bibliotek snarare än ramverk), till att göra raka motsatsen, d.v.s. att inte ha någon direkt komponentsamling men istället erbjuda ett sätt att strukturera upp webbplatsen på (ofta, som sagt någon form av MVC, t.ex. HMVC).

Vanligen finns de tre delarna från MVC med, någon form av routing (t.ex. mappa adressen http://example.org/user/show till klassen user och anropa metoden action_show på den eller något sådant), möjligen någon idé om hur fel ska hanteras (t.ex. någon Exception-uppsättning eller så), möjligen något templatespråk (som gör det enklare/renare att blanda HTML och PHP), möjligen någon form av formulärhanterings- och valideringsstöd, möjligen någon ORM som mappar objekt i PHP-världen till en bakomliggande databas av något slag, kanske någon cache-hantering, och så vidare. Vilka komponenter som finns, vad de kallas, hur de fungerar, och vilka dess uppgifter är skiljer sig mellan ramverk.

Ramverken skiljer sig p.g.a. ovanstående i storlek, det finns de större som t.ex. Zend och Symfony till de något mindre så som CodeIgniter, Kohana och Fuel, till de minimala så som t.ex. Slim (som jag inte vet något om, tog bara något som kallade sig för "microframework" typ).

De mer kända tenderar (inte helt oväntat) att ha bättre dokumentation, se t.ex. The Quick Tour för Symfony.

Skrivet av SuitUp:

Vilket nackdelar finns?

Det är väl att det tar längre tid att komma igång än om du inte använt ramverket innan, men för större projekt är förhoppningen att du tjänar ihop denna tid senare. Om du får för dig att göra något ramverket inte är tänkt för, eller vill göra något på ett sätt som skiljer sig från det vanliga sättet att gå tillväga med ramverket kan det ibland bli onödigt besvärligt.

Skrivet av SuitUp:

PS. Bonusfråga: Någon som har erfarenhet av Zend som ramverk?

Jag har använt Zend, men dock bara som ett bibliotek snarare än ett ramverk, d.v.s. jag har bara använt delar av det, så som t.ex. Zend_Date, Zend_Form, och så vidare. Zend har väldigt många (oftast väldesignade) komponenter och ganska mycket dokumentation i referensform, någon lika bra hur-det-är-tänkt-att-användas-som-helhet som t.ex. den innan länkade Symfony-introduktionen har jag dock inte sett (men har samtidigt inte lagt allt för mycket energi på att kolla efter någon sådan).

Permalänk
Medlem
Skrivet av cic:

Ja.

Om du ska bygga något mindre spelar det inte så stor roll hur du gör, det är ganska svårt att misslyckas med mindre saker. Men om du ska bygga en större webbplats, som kanske ska underhållas under någon längre tid, är det bra med ett ramverk. Speciellt om du inte byggt något större tidigare, så är kan det vara bra att följa MVC-strukturen (som Dosshell nämnde) som typ alla ramverk implementerar, för att inte i slutet ha en ostrukturerad och oförståelig röra.

Vad ett ramverk gör, och hur lång tid det kommer att ta innan du kan börja skriva själva webbplatsen, skiljer sig åt mellan ramverken (så klart). Från att erbjuda en samling löst sammanhängde komponenter utan att tvinga någon speciell struktur (t.ex. Zend går att använda så, men samtidigt kanske dessa bör kallas för bibliotek snarare än ramverk), till att göra raka motsatsen, d.v.s. att inte ha någon direkt komponentsamling men istället erbjuda ett sätt att strukturera upp webbplatsen på (ofta, som sagt någon form av MVC, t.ex. HMVC).

Vanligen finns de tre delarna från MVC med, någon form av routing (t.ex. mappa adressen http://example.org/user/show till klassen user och anropa metoden action_show på den eller något sådant), möjligen någon idé om hur fel ska hanteras (t.ex. någon Exception-uppsättning eller så), möjligen något templatespråk (som gör det enklare/renare att blanda HTML och PHP), möjligen någon form av formulärhanterings- och valideringsstöd, möjligen någon ORM som mappar objekt i PHP-världen till en bakomliggande databas av något slag, kanske någon cache-hantering, och så vidare. Vilka komponenter som finns, vad de kallas, hur de fungerar, och vilka dess uppgifter är skiljer sig mellan ramverk.

Ramverken skiljer sig p.g.a. ovanstående i storlek, det finns de större som t.ex. Zend och Symfony till de något mindre så som CodeIgniter, Kohana och Fuel, till de minimala så som t.ex. Slim (som jag inte vet något om, tog bara något som kallade sig för "microframework" typ).

De mer kända tenderar (inte helt oväntat) att ha bättre dokumentation, se t.ex. The Quick Tour för Symfony.

Det är väl att det tar längre tid att komma igång än om du inte använt ramverket innan, men för större projekt är förhoppningen att du tjänar ihop denna tid senare. Om du får för dig att göra något ramverket inte är tänkt för, eller vill göra något på ett sätt som skiljer sig från det vanliga sättet att gå tillväga med ramverket kan det ibland bli onödigt besvärligt.

Jag har använt Zend, men dock bara som ett bibliotek snarare än ett ramverk, d.v.s. jag har bara använt delar av det, så som t.ex. Zend_Date, Zend_Form, och så vidare. Zend har väldigt många (oftast väldesignade) komponenter och ganska mycket dokumentation i referensform, någon lika bra hur-det-är-tänkt-att-användas-som-helhet som t.ex. den innan länkade Symfony-introduktionen har jag dock inte sett (men har samtidigt inte lagt allt för mycket energi på att kolla efter någon sådan).

Ojoj, tack så hemskt mycket för att du tog dig tid att svara!

Webbplatsen kommer till större delen innehålla de funktioner som en vanlig social sajt idag, besökarna kan skapa en egen profil, kolla runt på andra användares profiler och så vidare. Sedan kommer jag dock att behöva skräddarsy ett par funktioner som ska hämta information från applikationer jag har skrivit i Actionscript.

Permalänk

Hej!

Jag håller på att lära mig metoden MVC. Jag har börjat använda Codeigniter som för mig passar mina ändamål bra. Bra guidning, lättförståeligt etc.

Men som sagt så är jag ny på det här med mvc (och sweclockers också för den delen) men ville bara ge ett tips:)

Rent rutinmässigt tror jag att det bästa man kan göra är att slänga sig in i lejonkulan för att på det sättet lösa de problem man råkar ut för under tidens gång. Börjar du tänka tror jag att det är lättare att säga "jag väntar" istället för att tänka "hur löser jag detta".

Ha de gott!

Permalänk
Inaktiv

Jag använder både CakePHP och CodeIgniter. Men har börjat gå över helt till CodeIgniter på grund av att det är snabbare, flexiblare, lätt att bygga ut och man behöver ingen databas.

Permalänk
Skrivet av Chrillemeter:

Jag använder både CakePHP och CodeIgniter. Men har börjat gå över helt till CodeIgniter på grund av att det är snabbare, flexiblare, lätt att bygga ut och man behöver ingen databas.

Värt att notera är ju att Codeigniter trots det har funktionerna för databaskoppling (sina egna tillvägagångssätt). Blir ju alltid så lätt med missförstånd.

Permalänk

Vill du ha en otroligt bra och fri miljö att programmera i så använder jag dessutom IDE 7. Har mycket att bjuda på

Permalänk
Medlem
Skrivet av Chrillemeter:

Jag använder både CakePHP och CodeIgniter. Men har börjat gå över helt till CodeIgniter på grund av att det är snabbare, flexiblare, lätt att bygga ut och man behöver ingen databas.

På vilket sätt behöver man ingen databas med CodeIgniter?

edit: såg carl-jonas svar nu

Permalänk
Inaktiv
Skrivet av carl-jonas:

Värt att notera är ju att Codeigniter trots det har funktionerna för databaskoppling (sina egna tillvägagångssätt). Blir ju alltid så lätt med missförstånd.

Jo, visst kan man använda databas med CodeIgniter, det var inte så att jag menade att CodeIgniter inte kan använda databas,
utan mer att man har möjlighet att använda CodeIgniter utan att blanda in en databas.

Permalänk
Skrivet av Chrillemeter:

Jo, visst kan man använda databas med CodeIgniter, det var inte så att jag menade att CodeIgniter inte kan använda databas,
utan mer att man har möjlighet att använda CodeIgniter utan att blanda in en databas.

- förstår detta. Ville bara förtydliga för trådskaparens skull då vissa kanske inte helt hänger med på vad MVC är och kan göra etc. Inget mot dig:)