Agil PHP med CodeIgniter

Tags:    php
Skrevet af Bruger #8223 @ 29.09.2009
Artikel filer

Object Oriented Programming
Du har næsten med garanti stødt på begrebet Objektorienteret Programmering, eller forkortet OOP, i dine google endeavours, og du har ganske sikkert også arbejdet i det. Hvis du ikke har, anbefales det at du læser op på det, da moderne programmering generelt og CodeIgniter specifikt, efterhånden er uhensigtsmæssigt/næsten umuligt, uden. CodeIgniter benytter sig dog af PHP3/4's objektmodel, for at have support for shared hosting servere der ikke er gået over til PHP5 endnu, hvilket giver en simplere syntax der er lettere at forstå for en OOP-begynder.

Agile Development
Agile development, eller “agil udvikling” som man siger på dansk, er en fremgangsmåde indenfor programmering der handler om at udvikle hurtigt og effektivt. Når man udvikler agilt fokuserer man på at udvikle de features der bliver vigtige at have med før andre features, istedet for at prøve at lave alle features på én gang. På den måde sparer man tid og kræfter man ville spilde på features, der måske viser sig irellevante når det første er på plads. Agil udvikling betyder naturligvis ikke at man ikke skal planlægge og tænke fremad, men fokus skal ligge på de mest presserende features. At udvikle agilt kan opnås ad forskellige stier, og at bruge et framework der fjerner dobbeltarbejdet er et godt skridt på vejen.

CodeIgniter
CodeIgniter er et open source framework, en samling færdiglavede klasser og funktioner, til agil udvikling af modulære PHP-applikationer. Det bliver vedligeholdt af firmaet EllisLab, og er i og for sig en klon af Ruby on Rails frameworket. Det er sammen med Zend Framework, Symfony og CakePHP meget populært blandt seriøse PHP-udviklere. KohanaPHP er et projekt afledt af CodeIgniter, med fokus på en mere decentraliseret udviklingsmodel end den firmabaserede man ser hos EllisLab. KoahanaPHP er sidenhen er blevet skrevet forfra fra bunden, men ligner stadig meget CodeIgniter.

Denne artikel vil give et indblik i hvordan man kommer igang med at udvikle opad CodeIgniter, men skal langt fra ses som en komplet bibel udi CI-udvikling. Til dette formål har CodeIgniter sin egen yderst velskrevne User Guide.

Lad os komme igang
Mindre snak, mere action. For at komme igang med CodeIgniter skal du bruge følgende:

  1. En fungerende webserver, enten egen server, et webhotel eller en lokal installation. Har du ingen af delene kan XAMPP, en færdigsamlet pakke af Apache-serveren, Mysql-databasen og PHP-sproget der kan køre lokalt, downloades fra http://www.apachefriends.org/en/xampp.html i varianter til både Linux, Windows og Mac.

  2. En kopi af CodeIgniter's kildekode. Den kan hentes fra CodeIgniter.com

  3. En teksteditor der kan gemme i UTF-8

  4. Hvis du bruger en ekstern server skal du også bruge en (S)FTP-klient eller tilsvarende for at overføre filerne.



Vedhæftede filer:
Hvad synes du om denne artikel? Giv din mening til kende ved at stemme via pilene til venstre og/eller lægge en kommentar herunder.

Del også gerne artiklen med dine Facebook venner:  

Kommentarer (10)

User
Bruger #1151 @ 29.09.09 21:52
Struktureret artikel med gode formulering. Jeg føler selv at jeg har fået noget ud af at læse den.
User
Bruger #6559 @ 04.10.09 15:34
Kanon god artikel. Jeg har selv længe holdt mig fra frameworks, da jeg ikke har kunne se det smarte i at benytte det frem for mine egne klasser. Men den store fordel er gået op for mig at jeg kan stadig bruge mine egne klasser, nu kan de komme nemmere over i MVC plus Codeigniter tilbyder noget security jeg har ikke selv har haft nogle smarte løsninger på. Thumbs up og en femmer herfra.
User
Bruger #8223 @ 05.10.09 12:58
Jeg takker mange gange for de rosende ord og den pæne rating :)
User
Bruger #15344 @ 12.01.10 22:41
Vil da lige give lidt feedback efter et par meget lærrige timers læsning :-)

Side 4, afsnit 2 -
Du skriver: "Den ovenstående fil er meget, meget basisk" <--- så vidt jeg ved kan filer ikke være basiske ;-) basisk er noget man snakker om i kemi. Basal er det rette danske ord for det engelske 'basic'.

Side 6, første PHP kode -
du bruger $this->weblog_model->opret(); i koden, men betegner den $this->weblog_model->create() i teksten

Side 6, anden PHP kode -
jeg har problemer med empty(), da den ikke accepterer et function return som argument. Jeg valgte at bruge == "" i stedet.

Ellers vil jeg sige tak for en super guide :-) en 5'er fra mig.
User
Bruger #8223 @ 13.01.10 00:20
Tak for dine indspark Randi!

Basisk og opret/create havde jeg ikke lige set, tak for det. :)

Den med empty havde jeg godt spottet et stykke tid efter jeg uploadede den, men udvikleren.dk har ikke rigtigt nogen mulighed for at man kan redigere i sine artikler efter de er godkendt. Men det er iøvrigt slet ikke nødvendigt med det tjek. Funktionen returnerer nemlig boolean false hvis den er empty såvel som !isset, har jeg sidenhen erfaret.
User
Bruger #15344 @ 13.01.10 08:38
Oh, ja det var jo rart at vide ;-) det havde jeg ikke lige fået tjekket efter... Så er det jo ikke det store problem.
User
Bruger #8223 @ 13.01.10 13:18
Så, for at forklare for andre der ser det her, og ikke forstår hvad vi snakker om:

I artiklen står der nogle steder if(empty($this->input->post('noget')) - der kan I nøjes med if(!$this->input->post('noget')) :)
User
Bruger #15852 @ 13.02.11 17:08
Hej alle, ved godt det er over et år siden der sidst er skrevet kommentarer til denne artikel :) jeg faldt bare over den og læste den igennem, fandt så det CodeIgniter spændende og ville prøve det. :) Kunne så bare overhovedet ikke få det til at virke, og da jeg så selv kigger de filer igennem jeg har hentet fra Codeigniter kan jeg se at bla. Controlleren den kalder i starten: #
# class Welcome extends Controller {

hedder nu CI_Controller, det er bare en lidt træls fejl hvis folk ikke har prøvet rode med det før da den bare viser blank side, om der er andet der er galt har jeg ikke lige undersøgt :) Synes os bare jeg lige ville give heads up til andre der kaster sig ud i det.

Anyways super god artikel, godt skrevet og godt formuleret :)
User
Bruger #15852 @ 13.02.11 22:39
For lige at følge op på min tidligere post, har jeg efter at ha rodet en del rundt med det fundet ud af at den version jeg har hentet 2.0.0 Er ret så meget anderledes end den sidste tidligere 1.7.3.. Stortset alle guides osv. på nettet understøtter ikke rigtigt 2.0.0 så tror indtilvidere for nybegyndere at det ville være en fordel at hente den tidligere udgave, ihvertfald indtil der er mere hjælp at hente på den nye :)
User
Bruger #8223 @ 16.03.11 00:36
Ja, det er korrekt. Efter 2.0(en *længe* sukket efter udgivelse i miljøet) blev udgivet er der sket en del store omvæltninger.

For at få artiklen til at virke skulle det dog være nok at lave et lille hack:

En fil i application/core kaldet MY_Controller.php (extended core-controller) der indeholder følgende

Fold kodeboks ind/udKode 
Du skal være logget ind for at skrive en kommentar.
t