Luettu Code Igniterin user guiden introductio. Haettu 1.5.2 version zippi.
mkdir /data/www/frameworks
cd /data/www/frameworks
unzip ~/Desktop/CodeIgniter_1.5.2.zip
Luotu kopio kannasta. Sekä apassille konfiguraatiotiedosto:Alias /frameworks /data/www/frameworks<Directory /data/www/frameworks>
Options All
AllowOverride All</Directory>
Igniterin asennusohjeessa kohdassa kaksi ja kolme viitataan tiedostoihin, jotka löytyvät systems-hakemiston alihakemistoista. Luettu user-guiden general-topics ja herää kysymys, että onko tästä kehyksestä oikeasti minulle mitään iloa? Aika äkkiä pääsin pisteeseen, missä sain scaffoldingilla luotua sivun, joka kyllä näyttää recordit, mutta ei anna lisätä, poistaa tai muokata niitä. Todennäköisesti ominaisuutta ei ole testattu PHP5:lla ja uudemmalla Postgresql:llä. Ainoat virheilmoitukset ovat catalogista syntyvät, varsinaista virheilmoitusta ei tule kannan tai apachen logeihin saati ruudulle. Ei hyvä.
Olennainen kysymys on, kuinka helppoa olisi luoda näkymä, joka näyttää vaikka ensimmäisen domainin. Oletellaan rajusti, että tarvitaan kolme tiedostoa: domain-kontrolleri, domain-modeli ja domain-view. Katseltu molemmat opetusvideot ja lueskeltu lisää userguidea. Derek Allardin video. Derekin video oli mielenkiintoinen, mutta jätti pari avointa kysymystä, toinen on skriptan latautuminen headerista muuttujalla ja toinen on base_url-muuttuja itse skriptassa. Joten täytyy vielä hakea Derekin koodi ja lukea sieltä.
Molemmat ratkeavat view-tiedostosta head.php, jossa on:
<script type="text/javascript">
//<![CDATA[
base_url = '<?= base_url();?>index.php/';
//]]></script>
Joka luo javascript-muuttujan base_url, jossa on sovelluksen polku. Tätä käytetään ahkerasti videon javascripteissa. Toinen ihmettelemäni kohta on samassa paikassa:
<?php
if (isset($extraHeadContent)) {
echo $extraHeadContent;
}
?>
Scriptaculouksen kamat ladataan aina headerista suoraan. Toinen merkittävä opetus on, miten Derek lataa toisen näkymän käyttöönsä. Se tapahtuu itse näkymästä pätkällä:
<?php
$this->load->view("header");
?>