![]() |
Hej,
Jag har hållt på i typ ett år nu och använt php men kör väldigt mycket klippa och klistra programmering. Jag har dessutom en sanslöst ineffektiv metodik för att testköra koden. I princip skriver jag koden i min fil, säg index.php, gör lite ändringar, skickar upp den på FTP till min webbserver. Reloadar sidan och ser resultatet. Ibland får jag felmeddelanden, ibland får jag rätt resultat, ibland blir det helt blankt (typ som när man glömmer ?> efter koden). En synnerligen ineffektiv metodik alltså. Att köra lokalt är ju förstås lite smidigare (vilket jag gör ibland också, men vill helst testa mot mina live-databaser) men det är inte FTP:andet som är jobbigt. Det är att jag programmerar mer eller mindre i blindo. Trial-and-error på hög nivå. Det MÅSTE finnas ett lättare sätt. Hur gör ni?? -Programvara med auto-complete? -Metodik? -Felsökning? Vi utgår ifrån ett exempel där index.php har lite blandat php-kod och html-kod och där lite av koden hämtar data från en mysql-databas (på nätet eller lokalt). |
Använder DreamWeaver med FTP stöd... Sen är det Trial and error som gäller....
|
PHPEclipse är ruskigt bra och har till viss del autokomplettering.
Men varför är det så svårt att installera t.ex. WAMP (Win, Apache, MySQL, PHP i en enda installation) och sedan köra lokalt? |
Jag kör WAMP och det fungerar utmärkt!
Har nog faktiskt ingenting att klaga på där |
|
Jag har nog tankat hem CakePHP fyra gånger eller något och aldrig börjat använda det.. Jag packar upp det och så precis när man gjort det så tänker man "vad ska jag göra nu då?". Jag har aldrig använt något annat framework heller och har egentligen ingen aning om hur man ska använda det osv. Är det så underbart att kunna använda ett framework?
Jag tycker CakePHP's manual är allmänt luddig, men om det verkligen är värt det så får man väl försöka bita sig igenom den. |
Har också börjat använda CakePHP och kan varmt rekommendera det.
Kaffe>> Har inte hittat någon bra dokumentation över bake kommandot. Något tips? |
Att köra php lokalt gör jag ibland. Just nu gör jag inte det, det är i princip inte det som är problemet (eller bara en liten del av problemet). Det är egentligen mest felsökningen.
Alltså, säg att jag skriver in en ny kodrad. Jag är inte helt säker på att jag har tolkat php-dokumentationen rätt och skriver ofta lite fel. För att felsöka och se om jag gjort rätt är det enda jag kan göra är att reloada filen i browsern och kolla om det funkade eller inte. Det är alltså true/false och knappt någon ledning alls, utom ibland när det står vilken rad felet är på. Det är det jag menar med metodik och debugging. Lägger ner otroligt mycket tid på att felsöka och eftersom jag inte kan php egentligen så gör det det hela lite svårare. |
Citat:
Om jag vore i din situation så skulle jag nog köpa mig en bra bok om php. De flesta har ett avsnitt om felsökning (debugging) och förklarar grundläggande språk-strukturer. Men du bör undvika böcker av typen php komplett på 3 veckor, snabbstart, kickstarta php, php på nolltid – dessa böcker kommer inte ge dig mycket mer än än fler exempel att klippa ihop. De tar lite tid men om du tänker efter så sitter du nog hellre en kvart om dagen på tunnelbanan (eller bussen eller spårvagnen) och läser små bitar än att frustreras timtals över exempel som inte fungerar. Annars, vad du kan göra, är att söka lite på php och felsökning, och försöka hitta sidor som grundligt går igenom php och kontrollstrukturer, när använder man foreach och när for, eller är det bättre att använda while, vad är det för skillnad på = och == och för den delen ===, vad finns i $_POST och $_SERVER, vad är OOP och för felsökning hur använder man var_dump och print_r. Du lär inte få några heltäckande svar förutom från en välskriven bok. (Jag förlitar mig på Core Web Application Development with PHP and MySQL som lägger stor vikt vid struktur, säkerhet och felsökning men den kan nog vara lite väl tung att ta till sig från "nybörjarnivå" – rekommenderar i alla fall varmt) |
Instämmer med Martine, och tipsar om en sjyst "kom igång" bok som heter MySql/PHP Applications (Av Jay Greenspan / Brad Bulger). :)
Mvh pa |
Jag använder Zend Studio. En mycket behändig programvara.
|
Jag ansluter med WINSCP3(scp/sftp) mot servern och öppnar php/css/html i UltraEdit genom winscp. Så när jag sparar så sparar den automatiskt på servern. Funkar smidigt för mig och mina andamål. Har sneglat lite mot zend studio det senaste men inte vågat ännu (är lite allergisk mot autocomplete trorjag ).
Metodiken jag använder mig av är att bryta ner problem med UML i klasser och funktioner (class-, use case diagram, och de diagram jag känner att jag behöver för just denna uppgiften) (UMLar på ett papper på skrivbordet). Visst det kanske känns dumt att sitta med uml ivissa fall men ofta är det ovärdeligt för mig. Delvis för att jag får mindre stycken kod att skriva delvis för att det är lättare att få en överblick. Vilket ger mig mindre att hålla i huvudet och jag kan fokusera på ett steg i taget utan att vara orolig att andra delar av koden. Sen är det otroligt smidigt med uml för att med andra kommunicera uppbygganden/motivera etc. Databaserna jag skapar måste alltid följa 3NF och det borde alla sträva efter. Det är lätt att rita upp på papper för att kommunicera och kommaihåg för sig själv. För mig är det som fungerar som ni kanske listat ut att försöka hålla så lite som möjligt i huvudet men ändå ha informationen om det lättåtkomligt. Ett skrivbord som är rensat på saker jag inte håller på med just nu är ett måste för mig med, och dom sakerna jag håller på med just nu får absolut inte ligga rörigt utan måste vara lättåtkomliga. ot: martine jag håller inte alls med dig! Är man en programmerare så klarar man sig LÄNGE LÄNGE med php.nets dokumentation (det ända som man får tänka extra på är säkerheten precis som du säger, men det finns det dokumenterat på php.net det med)! Visst det finns fördelar med att läsa en bok men det beror på vilken bakgrund och vilket syfte du har med det som skall utvecklas. |
Jag har två stycken skärmar (köpte nya 22" LCD till mig själv i julklapp).
Jag ahr Firefox på den vänstra skärmen och SSH (Secure CRT) på den högra, orsaken till att jag användr secure CRT är för att jag gillar att den har tabbar så jag kan ha 4-5 SSH connections öppna mot servern och arbeta i flera olika filer samtidigt. Jag skriver koden i SSH, trycker F5 i browser och ser resultatet, modifierar i SSH och trycker F5 igen.. Jag orkar inte ladda up och ner filer hela tiden. Jag har använt 2st skärmar sedan jag fick 2st på jobbet för 6 år sedan, numera kan jag knapt programera utan 2 skärmar.. man blir så lätt van vid det.. |
Många bra tips här. Jag har köpt en bok (tung jävel) som jag ska börja plugga på. Som Martine säger, troligtvis är den tiden spenderad med boken väl betald efteråt. Nu resonerar jag oftast som så att det är "obetald" tid att plugga på. Men jag lurar ju mig själv...
Att arbeta mer med klasser var ett bra tips. Jag kör med väldigt lite klasser just nu och skulle nog kunna få det lite enklare på så sätt. Arbeta direkt mot servern är ett enkelt och bra tips. Micke: Två skärmar är nog ingen dum idé. Inte att köra stationärt heller. Idag kör jag bara på en laptop. Nu står det säkert i min bok men...finns det inte nåt kommando i php för att få felmeddelanden etc att skrivas ut, antingen direkt på skärmen eller i en fil. Bara att få ta del av felmeddelanden skulle underlätta otroligt. Slutligen. Jag började göra hemsidor genom att bygga ett spel i php. Ett relativt avancerat (om än fortfarande inte komplett) spel... Det har hjälpt mig otroligt mycket när jag senare har gjort lite mer content-baserade sidor. Stort tack för alla svar! |
Använder också ZendStudio med zends debugger installerad på en debian server.
Helt oumbärligt om man vill stega genom programmet när det kör och se alla parametrar, och på det sättet se var det går fel på en gång. Rekommenderas varmt om man är nybörjare och vill lära sig vad som händer, och även oumbärligt när man gör avancerade lösningar. Zend Studio har dessutom ngt som kallas profiler vilket ger dig möjliheten att köra ett skript och se hur långt tid alla funktioner tar, för att hitta flaskhalsar. Kan lista upp en hel radda av bra funktioner, men säger bara testa själva, ni kommer inte ångra er! Det enda fel jag kan hitta är att miljön kan vara lite svårmanövrerad i början och att det är skrivet i java, vilket kan ge upplevelsen av att det laggar. |
vpn tunnel med samba tillsammans med valfri texteditor, det fungerar bra.
|
Jag kan också rekommendera CakePHP varmt. Det är en liten tröskel man måste ta sig över för att komma igång,
sedan flyter kodandet på som aldrig förr. Patek Philippe: Det finns ett par screencasts på CakePHP.org som visar bake skriptet in action, sedan kan man ju även ta en titt i api:n om man vill veta mer. |
½Q1§
|
Ungefär till vad använder ni dessa frameworks till? Är det till allt ni gör eller bara avancerade lösningar?
Vilka direkta fördelar får man av att använda dem? |
Kör en lokal webbserver med databas, använder en enkel texteditor med färgstöd för PHP och helt enkelt tänker först innan jag skriver koden, brukar fungerar utmärkt.
|
Citat:
1. Strukturera koden på ett bra sätt, ramverken "tvingar" ofta dig till det. Både Cake och Symfony bygger på MVC strukturen (Model-view-controller), vilket innebär att man separerar de olika lagren i koden. Så alla visuella saker hamnar i vyn, all databas logik i modellen och all applikations logik i controllern. Vad är fördelarna med detta då? Jo, genom att strukturera koden så är det möjligt att gå in och designa om hela sidan utan att behöva bry sig ett dyft om logiken i applikationen. Eller tvärt om, skriva om hela logiken utan att fronten påverkas. Detta går att uppnå även utan ramverk, men då krävs det mycket energi, tålamod och tid. 2. Slippa allt för person beroende system. Detta då genom punkt 1, genom att följa vissa "standard" strukturer kan någon annan relativt snabbt sätta sig in i applikationen och förstå hur den fungerar. 3. Minska produktions tiden! Man slipper otroligt mycket "dödkodande". Ramverket sköter det mesta åt dig. Du behöver till exempel inte fånga varenda mysql fråga eller skriva någon smart algoritm för språk hantering. Sedan kan man även använda sig utav de kod generatorer som de flesta större ramverk erbjuder. De kan t.ex genera ett admingränssnittet på sekunder! 4. Koden du skriver går ofta att använda om och om igen, du följer ju alltid samma struktur. 5. Det är enkelt att utöka applikationen med nya funktioner. Detta va då några utav fördelarna med att använda ramverk det finns säkert flera jag inte kommer på nu, återkommer i så fall :P Att använda ramverk är ändå mest fördelaktigt vid större projekt, vid små projekt kan det bli så att dt tar mer tid att använda ramverk än vad du sparar på det. |
Tar inte det egna lärandet skada om man bara tar "färdig kod" istället för att skriva den själv? Istället för att göra en egen algoritm så tar man en annan istället och behöver inte tänka alls. Jag kan förstå att det är fruktansvärt praktiskt, men är det att rekommendera för en som inte är riktigt fullärd?
Tack för ditt svar btw. |
Citat:
Sedan skulle jag nog inte hävda att ramverk är skadliga. .NET-plattformen är inte mer än ett ramverk och det är många programmerare som börjar där. Problemet med .NET är väl mest att det går att bygga en applikation nästan uteslutande genom drag 'n drop. PHP ramverken tvingar en förr eller senare att rulla upp ärmarna och faktiskt skriva kod. Det finns ju inget som säger att det ena utesluter det andra heller för den delen. Hittar du ett ramverk med bra dokumentation som du märker att "Oj, det här var ju lätt att jobba i" så kan du ju alltid börja rota under huven lite och kanske skriva dina egna komponenter. |
Citat:
men min erfarenhet är att man tendenserar att utan ramverk endå bara skriva enkel (query-fetch-echo) kod i slut ändan. Det är ju faktiskt väldigt sällan man gör något "nytt". Men om du nu vill skriva mkt kod själv så kan du precis som kaffe säger skriva egna komponenter och använda istället för ramverkets egna, det är upp till dig. Sedan om man ska skriva OO i PHP så är det v. 5 som gäller. |
Citat:
Men att bygga ett eget ramverk är ju antagligen den bästa övningen, så sett. Men det lär ju bli några versioner innan man blir klar ;) |
Mina bästa tips:
* Använd program med integrerad sftp/ftp stöd: - PDT - PHP Developer Toolki till Eclipse - Om inte ovan, gå över till Linux (rekommenderar Ubuntu) och använd Quanta+ * Använd en egen errorhandler som visar backtrace vid fel (Det finns fria sådana ErrorHandler-klasser) * Om du inte behöver ensamrätt till koden: Bygg gärna nya projekt på befintliga CMS-ramverk, exempelvis Joomla eller Drupal * Annars, använd ett ramverk som CakePHP, Symfony eller CodeIgniter (fråga mig inte vilken som är bäst - klurar på det själv men jag har valt CakePHP) |
Jag rekommenderar VERKLIGEN INTE program med inbyggt FTP/SFTP stöd. Problemet vi har där jag jobbar, är att Dreamweaver cache:ar filer och laddar upp dessa lite hur som (när de e i relation med den nedladdade filen) utan att kolla om de ändrats... Suger verkligen när man förstår någon annans arbete...
|
Vi har satt upp egna utvecklingsmiljöer på en Ubuntu burk. Sen använder jag WinSCP som direkt synkar upp mina ändringar till mitt konto. När jag sen är nöjd med ändringarna och testat att det fungerat så checkar jag in filerna via SVN. Väldigt smidigt att slippa ha Apache, MySQL mm på min dator. Och Ubuntuburken är väldigt mycket mer lik produktionsservern än om jag skulle köra det lokalt på min Windows dator.
|
Intressant tråd det här!
Själv använder jag mig inte av ramverk utan har under året byggt upp en hel del användbara klasser, som input-validation, image-hantering, db-hantering. Fördelen med det är väl att jag har full insikt på vad som sker under ytan vilket kan vara till stor hjälp vid optimering och felsökning av ett projekt. Nackdelen är väl, som andra framfört att mitt "Personliga ramverk" saknar någon utförligare dokumentation vilket gör den praktiskt taget oanvändbar för utomstående utvecklare. En annan nackdel var väl tiden det tog att utveckla sina egna klasser men så här i efterhand känns det bra att man lärt sig PHP genomgående. Använder dock vissa externa klasser som känns väldigt självklara och "onödiga" att duplicera. t.ex swiftmailer.org och htmlpurifier.org. Många kanske menar på att vilken klass som helst är onödigt att duplicera då det i princip redan finns allt, men jag gillar detaljer och ogillar överflödigt med kodrader och klasser :P Ang. utvecklingsmiljön sitter jag med ZEND studio(under xp) som syncar med hjälp av NetDrive direkt mot servern, känns något segt ibland. Vid trial->error testing så brukar jag hinna före med att trycka refresh i browsern innan den nya versionen finns på plats. Handlar bara om några sekunders fördröjningen men kan vara ack så irriterande ibland. Använder även ett program lokalt på datorn: HeidiSQL för hantering av mySQL databas då jag tröttnat på phpMyAdmin's otroliga seghet! |
Alla tider är GMT +2. Klockan är nu 14:08. |
Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson