duminică, 8 decembrie 2013

Note personale privind Yii

Yii este un cadru de programare [en. framework] pentru dezvoltarea aplicațiilor web folosind limbajul PHP. O caracteristică importantă a Yii este filosofia simplă din spatele cadrului ceea ce implică ușurința (rapiditatea) de asmilare (învățare) a acestuia.

Numele Yii este o prescurtare de la „Yes it is!”.

În cele ce urmează prezint notele mele privind soluțiile la problemele cu care m-am ciocnit la prima încercare de a folosi Yii.

Adrese „prietenoase”. 
Implicit o aplicaţie web creată cu Yii nu foloseşte facilităţile de rescriere a adreselor oferite Apache sau Nginx. Activarea acestei opţiuni nu este un lucru complicat. Ansamblul de acţiuni pentru activare este descris mai jos.
  1. In fișierul protected/config/main.php trebuie de scos comentariile de la  blocul care începe cu 'urlManager'=>array(.
  2. Pentru a exclude șirul index.php din adresele generate în blocul decomentat mai sus trebuie de modificat sau de adăugat, în caz că nu există, rîndul: 'showScriptName'=>false,.
  3. În final, dacă în calitate de web server se folosește Apache, în dosarul rădăcină a aplicației trebuie de creat fișierul .htaccess cu următorul conținut:
RewriteEngine on

# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# otherwise forward it to index.php
RewriteRule . index.php

Algoritmul de mai sus va avea efectul scontat doar dacă aplicația se află într-un dosar pe nivelul I al serverului Apache. În celelate cazuri trebuie de făcut o schimbare în continutul fișierului .htaccess. În cazul meu aplicația era disponibilă la adresa http://localhost/~vundicind/app/, iar conținului fișierului .htacces a trebuit să fie:

RewriteEngine on

RewriteBase /~vundicind/app/

# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# otherwise forward it to index.php
RewriteRule . index.php

Și ultima, în configurarea Apache, dosarul în care stau fișierele aplicației trebuie să aibă AllowOverride FileInfo.

Niciun comentariu:

Trimiteți un comentariu