Da bi Phalcon framework ispravno radio potrebno je definirati nekoliko osnovnih postavki.
Directory stuktura
Za jednostavne aplikacije sa jednim modulom potrebno kreirati directory strukturu kao na slici.
.htaccess fajlovi
Potrebno je staviti dva .htaccess fajla:
- svaki URL prosljeđuje u public/ odnosno public/index.php
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^$ public/ [L]
RewriteRule (.*) public/$1 [L]
</IfModule>
AddDefaultCharset UTF-8
<IfModule mod_rewrite.c>
RewriteEngine On
### NICE URLS ###
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?_url=/$1 [QSA,L]
</IfModule>
Bootstrap index.php fajl
Također je potrebno postaviti /public/index.php fajl koji služi kao bootstrap fajl. U njemu su definirane osnovne postavke frameworka kao npr. direktoriji za controller, model i view fajlove. Preko njega se pokreće cijeli framework.
<?php
try {
//REGISTER AUTOLOADERS
$loader = new \Phalcon\Loader();
$loader->registerDirs(array(
'../app/controllers/',
'../app/models/'
))->register();
//REGISTER SERVICES
//Create a DI (Dependency Injection)
$di = new Phalcon\DI\FactoryDefault();
//Setup the view component
$di->set('view', function(){
$view = new \Phalcon\Mvc\View();
$view->setViewsDir('../app/views/');
return $view;
});
//Setup a base URI
$di->set('url', function(){
$url = new \Phalcon\Mvc\Url();
$url->setBaseUri('/');
return $url;
});
//HANDLE THE REQUEST
$application = new \Phalcon\Mvc\Application($di);
echo $application->handle()->getContent();
} catch(\Phalcon\Exception $e) {
echo "PhalconException: ", $e->getMessage();
}
Ako promotrimo izraz
$application = new \Phalcon\Mvc\Application($di);
vidimo da će naša aplikacija ovisiti o Dependancy Injection $di.
Ustvari, $di je objekt koji sadrži neke početne objekte bez kojih aplikacija
ne može raditi. Ti početni objekti su 'view' i 'url', a koji se u
Phalconu još nazivju i servisi.