Björnström ska lära sig PHP - dags för kurs!

Tråden skapades och har fått 34 svar. Det senaste inlägget skrevs .

Jag har bokat in mig på en PHP utbildning här nere i Melbourne. Det har börjat bli dags att ta sista steget när jag kan så pass mycket annat inom webbutveckling och drift.

Bokade in mig på dessa:

Grundutbildning 4 dagar:
PHP Training | PHP Course | Sydney Melbourne Brisbane Canberra Perth Adelaide

Fortsättningskurs 3 dagar:
PHP Training | PHP Course | Sydney Melbourne Brisbane Canberra Perth Adelaide

Tänkte skriva lite i denna tråd i takt med att jag lär mig lite nya grejer!

Lycka till. Ska inte vara så svårt.

  • Medlem
  • Skövde
  • 2008-06-04 15:35

Va bra, då kan du ju börja skriva coola moduler till 99.se

Kursen börjar tisdag! Blir kul!

Sitter på kursen nu och tänkte göra lite live-referat!

1. Kom till kurslokalen som är jättefin, trevlig lärare. Vi är sju personer och kör tyvärr Windowsdatorer. Folk från IBM och någon lokal webbyrå är här. Jag berättar att MySQL kommer från Sverige och läraren säger "precis som ABBA och alla skrattar".

2. Vi använder denna bok: PHP Solutions—Contents

3. Kursen börjar med att installera Apache/PHP/MySQL i XAMPP för Windows.

Jag har ju rätt mycket erfarenhet av serveradministration och Apache etc så än så länge är allt busenkelt. Däremot tror jag inte alla hänger med i allt snack om servrar, portar osv.

Läraren berättar: En webbprogramerare måste klara många språk samtidigt (multilingual):
HTML / CSS / JAVASCRIPT / SQL / PHP / XML

Ska köpa detta bokpaket från Amazon:
Amazon.com: JavaScript and Ajax Wrox Box: Professional JavaScript for Web Developers, Professional Ajax, Pro Web 2.0, Pro Rich Internet Applications: Nicholas C. Zakas, Jeremy McPeak, Joe Fawcett, Eric van der Vlist, Danny Ayers, Erik Bruchez, Alessa

Vi har börjat titta närmare på servertjänster & teknologier (SSL, SSI, CGI, FTP, SMTP).

Tittar lite på phpinfo.php för att se vilka phpmoduler som är installerade.

Nu börjar vi med PHP:
Variabler & korrekt php syntax. Kommentering, arrays, case etc. Nu ska vi skriva kod!

Första PHP scriptet blev ett enkelt "Hello World" som skrev ut dagens datum. Nu är vi på väg!

Min första array!

Vi är inne på kapitel fyra av boken och gör dynamiska menyer. Istället för att handknacka adresserna använder vi PHP och skapar en array.

<ul id="nav">

<?php
	$currentpage = basename($_SERVER['SCRIPT_NAME']);

	$menu=array('Home'=>'index.php',
				'Journal'=>'journal.php',
				'Gallery'=>'gallery.php',
				'Contact'=>'contact.php');
	foreach($menu as $text=>$page)	{
		print "<li><a href=\"$page\"".
		(($currentpage==$page)?" id=\"here\"":"")
		.">$text</a></li>";
	}
?> 

	</ul>

För någon som kan PHP är ovanstående superenkelt men det tog en stund för mig att förstå några grejer.

Kort sagt vad scriptet gör är att skapa en array bestående av dom fyra sidor som sajten innehåller. Sen görs en "for each" som går igenom denna array och skapar fyra länkar. Längst upp finns en variabel som heter currentpage som håller koll på vilken sida som besöks just nu.

Länkarna har en slags IF sats som kollar vilken sida som är laddad och lägger till en tagg: id="here" som markerar vilken länk som är aktiv just nu.

Det tog ett tag för mig att förstå kommandot "." (punkt) som slår ihop två variabler och att man använder ? (frågetecken) istället för IF i conditional formatting. Men när det gick in i huvudet greppade jag syntaxen.

Vi är tillbaka från lunchen nu och rullar vidare. Det blir rätt långa dagar känner jag!

Enkelt sätt att slumpa ut bilder från en array:

// Skapa en array med namn på bilderna. Slumpa sen en bild.

<?php
	$images=explode(' ','kinkakuji maiko maiko_phone monk fountains ryoanji menu basin');
	$i=rand(0,count($images)-1);
	$src="images/$images[$i].jpg";
?>

// Visa bilden
<img src="<?php print $src ?>"

Fortfarande knepigt att hålla koll på syntaxen och alla dessa kommandon.

<?php
	$images=explode(' ','kinkakuji maiko maiko_phone monk fountains ryoanji menu basin');
	$i=rand(0,count($images)-1);
	$src="images/$images[$i].jpg";

// Använd getimagesize för att få fram bredd, höjd, bildtyp och storlek.

	list($w, $h, $type, $size)=getimagesize($src);
	
// Använd switch för att döpa om bildtypen till GIF eller JPEG

	switch ($type) {
		case 1:
			$type="GIF";
			break;
		case 2:
			$type="JPG";
			break;
	}

// Ladda den slumpmässiga bilden med rätt storlek

<img src="<?php print $src; ?>" alt="Image from Japan" <?php print $size; ?> class="picBorder" />

// Skriv ut bildtyp GIF/JPEG och storleken i textformat

<br /><p>Image type: <?php print $type. " " . "Size" . " " . $size; ?></p></div>

?>

Nu börjar vi med formulär: POST/GET och snack om register globals.

Under en timme har vi testat olika formulär och testat skicka mail med PHP.

Rätt intressant hur vi bygger på variablen $message med mer och mer data genom att använda kommandot "." punkt. När man lägger till \n är det en radbrytning.

<?php 
	if(array_key_exists('send',$_POST)) {
		$to='me@example.com';
		$name=$_POST['name'];
		$from=$_POST['email'];
		$comments=$_POST['comments'];
		$message="Name: $name\n\n";
		$message.="Email: $from\n\n";
		$message.="Comments:\n\n$comments\n\n";
		//print "<pre>$message</pre>";
	}
?>
  • Medlem
  • Skövde
  • 2008-06-10 08:41

låter rätt kul. Jobbigt att det blir lite intensiv-kurs bara, men det kanske funkar för dig...

Ursprungligen av High|ander:

låter rätt kul. Jobbigt att det blir lite intensiv-kurs bara, men det kanske funkar för dig...

Första dagen är över. Pust. Det var rätt mycket att hålla koll på under sista timmen med flera arrays osv. Gäller att allt verkligen sätter sig i huvudet för det är massor med små grejer att tänka på och det blir skillnad när man sitter och kodar någon kväll.

Vänta bara tills du kommer till objektorientering, metaforerna kommer att hagla omkring dig.

Onsdag morgon och tillbaka i skolbänken.

Blev lite sent igår (jobbade med offert till 01) så jag är seg idag. Orkade inte gå till gymet innan kursen för när klockan ringde vid 06.45 var jag halvdöd.

Hursomhelst håller vi på med regular expressions nu.

Det är svårt att undgå tanken "ska det behöva vara så här komplicerat" och "helt sjukt vad kod det krävs för att göra smågrejer". Vi håller på att göra ett formulär som skickar ett mail och inklusive kontroller av inmatad adress etc är vi uppe i 65 rader kod!

Med tanke på att man måste lägga till CSS, javascript och helst lite AJAX för att det ska bli riktigt coolt är ju även smågrejer ett relativt stort projekt. Lägg till en kostnad på 700kr i timmen för jobbet... det är inte riktigt seriöst

Jag var lika skeptisk när jag började med UNIX så jag kör på och ger det en chans.

Man får respekt för duktiga programmerare när man börjar koda själv!

  • Medlem
  • Gävle
  • 2008-06-11 11:08
Ursprungligen av Björnström:

Det är svårt att undgå tanken "ska det behöva vara så här komplicerat" och "helt sjukt vad kod det krävs för att göra smågrejer". Vi håller på att göra ett formulär som skickar ett mail och inklusive kontroller av inmatad adress etc är vi uppe i 65 rader kod!

[...]

Man får respekt för duktiga programmerare när man börjar koda själv!

Roligt att du kommer till den slutsatsen. Dock kan du tänka på att hur mycket man måste skriva för att åstadkomma olika saker varierar från språk till språk. När jag kom till PHP från ASP så behövde jag skriva mindre kod än tidigare för att göra samma sak, och nu när jag pysslar med Ruby/Rails så behöver jag skriva en bråkdel av den kod jag skrev i PHP.

Hoppas du inte stannar vid PHP utan lär dig fler språk — när man väl har lärt sig ett och greppat "logiken" så är ytterligare språk jämförelsevis mycket enkla att ta till sig.

Ursprungligen av Jogin:

Roligt att du kommer till den slutsatsen. Dock kan du tänka på att hur mycket man måste skriva för att åstadkomma olika saker varierar från språk till språk.

Hoppas du inte stannar vid PHP utan lär dig fler språk — när man väl har lärt sig ett och greppat "logiken" så är ytterligare språk jämförelsevis mycket enkla att ta till sig.

Roligt att man måste koda många rader eller att man får respekt för duktiga kodare

I mitt första steg kommer jag satsa på PHP i grunden och koppla mot MySQL och sen komplettera med Javascript för front-end upplevelse. XHTML/CSS kommer med "på köpet" antar jag. Även om PHP blir det huvudsakliga serverbaserade skriptspråket finns det ju ändå rätt många "språk" att lära sig.

  • Medlem
  • Gävle
  • 2008-06-12 10:29
Ursprungligen av Björnström:

Roligt att man måste koda många rader eller att man får respekt för duktiga kodare

64 rader är inte många. Mitt senaste projekt låg på ca 4000 rader kod (ej inklusive html eller kod-i-html-mallar). Det är lite kod. Hade jag gjort samma projekt i PHP så hade det troligtvis tagit minst dubbelt så många rader, kanske tre ggr så många.

Ursprungligen av Björnström:

I mitt första steg kommer jag satsa på PHP i grunden och koppla mot MySQL och sen komplettera med Javascript för front-end upplevelse. XHTML/CSS kommer med "på köpet" antar jag. Även om PHP blir det huvudsakliga serverbaserade skriptspråket finns det ju ändå rätt många "språk" att lära sig.

PHP har sina fördelar, helt klart. Och du gör förmodligen rätt att lära dig PHP som första språk. Dock rekommenderar jag att du kollar på andra serverspråk i framtiden, för hur ska du möjligen kunna veta att PHP är rätt för dig om du inte känner till något annat?

PHPs största styrka är att det är så utspritt och finns tillgängligt överallt. Men detta är ju irrelevant för dig som förfogar över din egen servermiljö. Så varför stå ut med PHPs nackdelar när dess främsta fördel är irrelevant för dig? Jag säger bara att du bör kolla på andra språk när du väl har lärt dig grunderna i programmering, för det är rätt stor chans att något annat språk kommer att passa dig och dina behov bättre.

Ursprungligen av Björnström:

Det är svårt att undgå tanken "ska det behöva vara så här komplicerat" och "helt sjukt vad kod det krävs för att göra smågrejer". Vi håller på att göra ett formulär som skickar ett mail och inklusive kontroller av inmatad adress etc är vi uppe i 65 rader kod!

Lalalala!

http://www.99.se/utveckling/41732-n-sta-steg-i-hemsideproduktionen.html (Speciellt #12, #13, #31)

Nu går vi igenom skillnaderna mellan HTML / XML / XHTML. Har inte tänkt på att avsluta taggar på det sätt som XHTML föreskriver - exempelvis:

<input type"radio" name="newsletter" value="false" />
<br  />

Vi har testat ladda upp filer och skapa avancerade formulär.

Dags att börja koppla formuläret mot MySQL nu - först lunch.

Jag upptäckte precis att man kan sänka en windows server med en rad PHP:

rename("c:/windows/system.ini", "c:/windows/system.old");

Det GÅR att skriva och döpa om systemfiler med PHP på servern vi kör på i klassrummet.

  • Medlem
  • Skövde
  • 2008-06-11 11:08
Ursprungligen av Björnström:

Jag upptäckte precis att man kan sänka en windows server med en rad PHP:

rename("c:/windows/system.ini", "c:/windows/system.old");

Det GÅR att skriva och döpa om systemfiler med PHP på servern vi kör på i klassrummet.

Ja, då kan jag direkt säga att servern är rätt kass confad

system-kommandot är farligt ur rätt många synpunkter dock.

Tillbaka i skolbänken. Steg upp 06.40 och fick en timme i gymet innan havregrynsgröt och 10 minuters promenad till skolan.

Idag jobbar vi med sessioner!

Jag har byggt en inloggning med session, cookie och lösenordskoll mot en krypterad fil.

Nu sitter vi och pillar med PHP och MySQL. Första databasen skapad. Just MySQL har jag rätt mycket erfarenhet av så allt känns naturligt fortfarande.

  • Medlem
  • Skövde
  • 2008-06-12 09:51

MySQL är ju barnligt enkelt att förstå.

Det är när man börjar med avancerade frågor och administration som det blir jobbigare.

  • Medlem
  • Arvika
  • 2008-06-12 11:13

Inspirerande läsning! Blir lite sugen på att lära mig mer PHP. Lärde mig grunderna för ett tag sen men sen blev det krångligt och då orkade jag inte mer

Förstår 1 % av det du skriver Björnström men visst är det intressant för amatörer att se hur komplicerat det kan vara med datorprogrammering. Kan känna hur min hjärna skulle gå fullkomligt i spinn om jag skulle fokusera på alla de detaljerna !

  • Medlem
  • Skövde
  • 2008-06-12 17:00

PHP är ett bra språk då man både kan leka med det, och även göra avancerade saker. Just det faktum att du kan göra lite OO gör att du kan göra rätt stora grejer.

  • Medlem
  • Trollhättan
  • 2008-06-12 18:53

Php är det första språk jag lärde mig och det var en väldigt bra start!

Tillbaka i skolbänken igen - sista dagen på grundkursen. Vi har tittat lite på bra-att-ha-sajter när man utvecklar:

gotAPI/HTML - Instant search in HTML and other developer documentation
PHP: Hypertext Preprocessor
PEAR :: The PHP Extension and Application Repository

Vår lärare har sammanställt lite här:
Comparity Training Resources

Idag ska vi bygga ett litet webbgalleri där man kan ladda upp bilder som automatiskt skapar tumnaglar. MySQL är relativt smidigt att jobba med - antagligen för att jag redan har lite erfarenhet av det. MySQL Query Browser gillar jag som verktyg (en del av MySQL Tools och gratis).

En sak jag verkligen "gått igång på" är möjligheten att skapa moduler till vBulletin. Med andra ord - moduler som ger nya funktioner till 99.se! Det är ju en helt otrolig grund - en redan fungerande sajt byggd på PHP och MySQL på en jättesnabb server och med riktiga användare med riktiga behov som antagligen kommer kasta sig över det man bygger.

Nackdelen är väl att sajten är live och om man fuckar upp koden så får det konsekvenser

Bevaka tråden