Kohana 3.1RC1 och 3.0.9 släppt!

Fokus på utvecklingen av Kohana ligger just nu på Kohana 3.1 som från igår, 1 Januari finns tillgänglig genom en release candidate. Samtidigt släpptes även en uppdatering till den aktuella stabila versionen av Kohana 3 som då blir 3.0.9.  Här är det inte många nya funktioner som gäller utan främst bugghantering och smärre fel som rättats till och officiella listan på uppdateringar finns här.

Om du planerar att starta ett nytt projekt med Kohana rekommenderas då i skrivande stund 3.0.9.
Har du redan ett aktivt projekt är det lätt att uppdatera genom att skriva över din kohana/system-mapp med den nya, samt uppdatera eventuella standardmoduler.

Jag planerar flera nya tutorials om Kohana, men har många andra projekt också så det är svårt att lägga full fokus på detta projektet. Har du önskemål om vad vi kan ta upp så får du gärna kommentera och ge förslag, samt är du intresserad av att skriva egna genomgångar så kan vi såklart diskutera det med!

Gott nytt år från mig, Sebastian, här på kohana.se!

Tutorial: Hello World!

Hej och välkomna till den första handledningen i ramverket Kohana!

Mitt namn är Sebastian och jag kommer skriva ett par av dessa och jag hoppas att de kommer till nytta.
Till att börja med så förutsätter jag ett par saker direkt, det är bara att punkta upp dom!
  • Fungerande installerad webserver(t.ex. apache eller lighttpd) samt stöd för PHP5
  • Kunskap i PHP
  • Förståelse för främst objektorientering och gärna även MVC är att föredra.

Den sista punkten är väl lite flyktig då dessa båda går att snappa upp under tiden också.

Men då sätter vi igång då!
Det första vi ska göra och målet med dagens bloggpost är att göra en klassisk ‘Hello World’-sida med Kohana. Detta bara för att få upp och komma igång med en Kohana-installation.

Installation

Ladda ner senaste versionen av Kohana här.
I skrivande stund är det version 3.0.8 som gäller, men om du inte läser detta ett par år frammåt när det eventuellt är version 4 som gäller så borde allt den här gången funka ändå!

När du fått ner filen så packa upp den och spara mappen som innehåller index.php i din webservers webroot. Jag har av bekvämlighet döpt mappen till ‘hello_world’ och därför kommer alla anslutningar till denna Kohana-installation gå genom adressen http://localhost/hello_world/ förutsatt att din webserver också ligger på din lokala dator!
Gå sedan in på just http://localhost/hello_world/ så bör du bli automatiskt omdirigerad till en installations-fil som kollar att din webserver har alla viktiga moduler installerade för att kunna driva Kohana.

Du får då upp en fin sida som visar vad som är relevant för Kohana, vilka delar som fungerar och är igång och vad som eventuellt inte finns tillgängligt och det borde se ut såhär:
Install resultat

Det finns även en sektion som kallas ‘Optional Tests’ men huruvida dessa går igenom eller inte är ej relevant för denna handledningen så det struntar vi i just nu.
Om ni nu mot förmodan inte skulle gå igenom detta helt grönt så kan ni till exempel skriva en kommentar här tillsammans med eventuellt felmeddelande så kanske jag kan hjälpa till, eller så kan ni söka på internet själva och försöka lösa. Jag vågar nästan garantera att nån har råkat ut för samma problem någon gång, så ett bra ställe att kolla skulle kunna vara Kohanas officiella forum eller till och med skriva en fråga där själva.

När vi nu kan gå vidare härifrån så börjar vi med att ta bort filen install.php som ligger i sidans root, (webbserverns doc-root)/hello_world/install.php bör vara en relativ sökväg som gäller vad det än är för operativsystem och webserver som används. Jag har fått för mig att det kan vara bra att ha kvar install filen så jag brukar döpa om den bara, till exempel done_install.php bara för att klargöra att den är färdig.

Testa nu att ansluta till http://localhost/hello_world/ ännu en gång så får vi se om vi är igång!
Själv fick jag nu mitt första felmedellande! Men oroas inte, det fixar vi snart!
Första felet!

Utforska

Innan vi går vidare och styr upp detta fel vi fick så tänkte jag gå igenom några detaljer endast grundläggande.

Mappstrukturen kan vara bra att känna till och vad som är vad men vi börjar lätt:

  • application <- Det är här du kommer jobba
  • modules       <- Om du importerar externa moduler och bibliotek hamnar de antagligen här
  • system          <- Här ligger själva Kohana kan man säga, detta bör du låta bli om du inte vill göra modifikationer av själva systemet och behovet finns sällan då det finns andra vägar. Men såklart är det inte onödigt att läsa koden om man tycker att det är intressant!

Denna gång kommer vi bara använda oss av mappen ‘application’ alltså, vi kommer gå djupare in på hur detta fungerar sedan.

konfigurering

Jaha. Nu är det dags att göra de få konfigureringarna som behövs för att få igång en fungerande Kohana-baserad hemsida, förutsatt att man nu valt att lägga den i en undermapp till webserverns dokument-root. Är den direkt i dokument-root kanske inte ens detta behövs, men för mig som har många lokala projekt igång samtidigt är detta nästan ett måste och det är inte så mycket mer jobb ändå.

Öppna upp filen bootstrap.php som ligger direkt i mappen application och leta efter denna kodsnutt:

/**
 * Initialize Kohana, setting the default options.
 *
 * The following options are available:
 *
 * - string   base_url    path, and optionally domain, of your application   NULL
 * - string   index_file  name of your index file, usually "index.php"       index.php
 * - string   charset     internal character set used for input and output   utf-8
 * - string   cache_dir   set the internal cache directory                   APPPATH/cache
 * - boolean  errors      enable or disable error handling                   TRUE
 * - boolean  profile     enable or disable internal profiling               TRUE
 * - boolean  caching     enable or disable internal caching                 FALSE
 */
Kohana::init(array(
	'base_url'   => '/',
));

Ändra detta sedan till:

/**
 * Initialize Kohana, setting the default options.
 *
 * The following options are available:
 *
 * - string   base_url    path, and optionally domain, of your application   NULL
 * - string   index_file  name of your index file, usually "index.php"       index.php
 * - string   charset     internal character set used for input and output   utf-8
 * - string   cache_dir   set the internal cache directory                   APPPATH/cache
 * - boolean  errors      enable or disable error handling                   TRUE
 * - boolean  profile     enable or disable internal profiling               TRUE
 * - boolean  caching     enable or disable internal caching                 FALSE
 */
Kohana::init(array(
	'base_url'   => '/hello_world/',
));

Alternativt vad du nu valt att döpa sidan till.
Detta innebär helt enkelt att man förklarar för Kohana att det är i en undermapp med namnet ‘hello_world’ som installationen ligger i.
Om du valt att lägga den direkt i dokument-rooten bör du slippa röra detta helt.

Testa sedan att ansluta ännu en gång till http://localhost/hello_world/ så ska du få se på grejer!
Eftersom att Kohana har en förskapad sida så kan vi redan nu se orden ‘hello, world!’ i webläsaren, förutsatt att du inte fått något tråkigt fel.

Slutför projektet

För att inte slippa göra en “egen” ‘hello world’ så ska vi nu ge oss in i att modifiera detta såklart.

Detta är som sagt (med förkunskapskraven i början av sidan alltså) inte en kurs i MVC så förutsätter jag att du redan har viss förståelse i detta.
Nu ska vi alltså ge oss in på att lätt modifiera en controller som man kan säga är logik-komponenten i en MVC-baserad applikation.

Öppna filen application/classes/controller/welcome.php som bör innehålla detta:

class Controller_Welcome extends Controller { 	

    public function action_index() {
        $this->request->response = 'hello, world!';
    }

} // End Welcome

och ändra sedan detta till:

class Controller_Welcome extends Controller { 	

    public function action_index() {
        $this->request->response = 'hej, världen!';
    }

} // End Welcome

Om du nu ansluter igen till http://localhost/hello_world så borde du nu såklart se texten ‘hej, världen!’.
Men var detta inte lite väl enkelt att avsluta med? Jo det tycker jag verkligen, så vi ger oss redan in på att använda en ‘View’ som då relativt till en Controller istället är en presentativ kompontent vars syfte är att visa datan (med hjälp av (X)HTML, kanske CSS & Javascript) istället för att sköta logiken bakom den.

Ändra nu samma fil som vi precis modifierade lätt, så den istället ser ut såhär:

class Controller_Welcome extends Controller_Template {

	public $template = "layout";

	public function action_index()
	{
		$this->template->content = 'hej, världen!';
	}

} // End Welcome

Nu kommer detta inte fungera ännu, utan detta innebar bara att vi istället för att vara en simpel Controller, så ärver den här Controller-klassen från Controller_Template som är bättre anpassad för att mer automatiskt sköta vissa detaljer angående ‘Views’. Nu angav vi nämligen att den här Controller-klassen ska ha en specifik View i den publika variabeln $template som heter ‘layout’. I det här fallet så kommer den då kolla efter applications/views/layout.php, men den finns ännu inte så om du nu försöker ansluta kommer du att få ett felmeddelande.
Skapa filen vi precis skrev att Controllern kommer leta efter och den kan vi sedan fylla med HTML, och även skriva ut variabeln $content som vi i Controllern ger till denna View.
Det bör se ut såhär, ungefär:

<h1>
  <?php echo $content; ?>
</h1>

Om du nu ansluter igen så bör du se samma text som tidigare, men mycket större såklart eftersom den ligger i en <h1>-tagg!

Med detta är vi nu färdiga med första genomgången i PHP5-ramverket Kohana. Jag hoppas att detta verkade någorlunda intressant och planen är att fortsätta på samma kodbas i kommande genomgångar. (Fast jag kanske kan tillhandahålla den färdiga koden från tidigare för att vara snäll :) )
Nu är det dags att sova för mig, så på återseende!

/Sebastian

Kohana.se!

Välkommen till Kohana.se!

Nu har vi slagit upp portarna och syftet med denna sida är att skapa lättåtkomligare hjälpmedel på svenska för att komma igång med PHP5-ramverket Kohana!
Om du är intresserad av en djupare diskussion angående vad Kohana är och var det kommer ifrån så kommer det finnas här och även på projektets egna hemsida såklart.

Och för att förtydliga vad som gäller, så kommer vi att bland annat publicera nyheter om Kohana och steg-för-steg-handledningar för att gå igenom och lära sig specifika delar ur Kohana, ibland kanske även större projekt som då antagligen blir uppdelade i flera delar!
Krav för att följa handledningarna är för tillfället Kohana 3.x som gäller (i skrivande stund är den nyaste versionen 3.0.8) och PHP5.

Vi hoppas såklart att detta kommer hjälpa någon att komma till sin rätta tillsammans med Kohana och att det kommer leda till större spridning bland Sveriges PHP-utvecklare.

Ni som vill ladda ner och testa Kohana på en gång bör kunna hitta senaste versionen här.

Tack och hej så länge!